From 558e08538e3fc68041368ed91a6dedc8f603c66c Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 19 Mar 2022 14:59:53 -0400 Subject: update resume --- static/resume.pdf | Bin 81195 -> 82457 bytes static/resume.tex | 282 +++++++++++++++++++++++++++++------------------------- static/resume.txt | 241 ++++++++++++++++++++++++++++------------------ 3 files changed, 300 insertions(+), 223 deletions(-) diff --git a/static/resume.pdf b/static/resume.pdf index 01fc5d5..94f593a 100644 Binary files a/static/resume.pdf and b/static/resume.pdf differ diff --git a/static/resume.tex b/static/resume.tex index 4edab96..fd5c66e 100644 --- a/static/resume.tex +++ b/static/resume.tex @@ -11,157 +11,177 @@ \documentclass[letterpaper]{article} \usepackage{jesse_resume} \hypersetup{hidelinks} -\setlength{\oddsidemargin}{-0.75in} -\setlength{\evensidemargin}{-0.75in} -\setlength{\textwidth}{8in} -\setlength{\topmargin}{-0.75in} -\setlength{\textheight}{10.5in} % }}} \begin{document} % Header {{{ \resheader{Jesse Luehrs} - {http://tozt.net/} + {https://tozt.net/} {doy@tozt.net\hspace{0.5in}} {(618) 616-6287} - {70 America St. \#1R} - {Providence, RI 02903} -% }}} -% Education {{{ -\resheading{Education} -\begin{itemize} - % Hacker School {{{ - \item \ressubheading{Hacker School}{New York, NY} - {Student}{September 2014--November 2014} - % }}} - % UIUC {{{ - \item \ressubheading{University of Illinois at Urbana-Champaign, College of Engineering}{Urbana, IL} - {Bachelor of Science in Computer Science with Minor in Mathematics}{August 2004--May 2008} - \begin{minipage}[t]{\textwidth/2-0.2in} - \begin{itemize} - \resitem{Overall GPA: 3.61, Technical GPA: 3.81}\vspace{-7pt} - \resitem{James Scholar in Engineering (2004--2005)}\vspace{4pt} - \end{itemize} - \end{minipage} - \begin{minipage}[t]{\textwidth/2-0.2in} - \begin{itemize} - \resitem{Dean's List (Fall 2004--Fall 2006)}\vspace{-7pt} - \resitem{Graduated with Honors}\vspace{4pt} - \end{itemize} - \end{minipage} - % }}} -\end{itemize} + {142 E 16th St. \#19D} + {New York, NY, 10003} % }}} % Work Experience {{{ \resheading{Work Experience} \begin{itemize} + % Stripe {{{ + \item \ressubheading{Stripe (\url{https://stripe.com/})}{Remote} + {Staff Engineer}{January 2015--June 2021} + \begin{itemize} + \item Moved our CI infrastructure from a proprietary system to + Jenkins. This included rewriting the testing infrastructure of + our main monolith to run tests in parallel with process + isolation to allow for better reproducibility and the ability + to scale out automatically to many worker machines. This was + able to reduce turnaround time for tests by over 80\%, and + provided a path to scaling out to more machines to keep test + times down. + \item Converted all of our internal infrastructure to use an + installation of Confidant + (\url{https://lyft.github.io/confidant/}) for secrets storage + and distribution, giving us much more control over which people + and machines had access to our secrets. + \item Implemented an authentication service which allowed users to + sign arbitrary data as their own identity in a way that + machines could independently verify. This allowed us to remove + almost all use of GPG at Stripe, which eliminated a large class + of tooling issues related to deployments. + \item Contributed to importing all of our low level infrastructure + which had originally been set up via custom tooling (or by + hand) into Terraform, allowing us to (mostly) automate creation + of new AWS accounts. + \item Contributed to our rollout of Envoy for service-to-service + communication, giving us automatic, transparent mutual TLS for + almost all internal traffic. Additionally, used features + provided by Envoy to implement a blue/green deploy mechanism + which greatly improved speed and reliability of deploys for our + critical services. + \item Implemented a fleetwide service in go for running maintenance + commands on servers (running puppet, restarting services, etc), + which reduced the time needed for running these types of + commands from several days in some cases to under 5 minutes. + Additionally, designed a secure protocol for these types of + actions which ensured that the end services would not perform + any actions without first ensuring that the request was logged + in a separate secure append-only logging system. + \end{itemize} + % }}} % Infinity Interactive {{{ - \item \ressubheading{Infinity Interactive (\url{http://iinteractive.com/})}{Manhasset, NY (telecommuting)} - {Senior Programmer}{February 2010--August 2014} \vspace{6pt} \linebreak - \small{I was in charge of a large, legacy codebase which handles employee - engagement survey registration and reporting, and I have also written - and deployed many smaller sites myself, mostly using Perl. Since we - relied heavily on open source software, a large portion of my time was - also devoted to maintaining various open source projects, as well as - developing new open source software that could be useful in the - future.}\normalsize + \item \ressubheading{Infinity Interactive (\url{https://iinteractive.com/})}{Remote} + {Senior Programmer}{February 2010--August 2014} + \begin{itemize} + \item Maintained a large, legacy codebase which handled employee + engagement survey registration and reporting for several large + companies. + \item Wrote and deployed many small websites for clients, using + Perl and Javascript. + \item Developed and maintained various open source projects used in + our client work, including Moose and Plack (see below). + \end{itemize} % }}} % UIUC Hydrogeology Lab {{{ - \item \ressubheading{UIUC Hydrogeology Lab (\url{http://www.gwb.com/})}{Urbana, IL} - {Visiting Research Programmer}{February 2006--February 2010} \vspace{6pt} \linebreak - \small{I worked on the Geochemists' Workbench, a geochemistry software suite - written in C++ and Tcl/Tk. I added support for several new image output - formats as well as adding font embedding support to the existing - PostScript format. I also helped add parallel processing support to - several scientific calculations, using OpenMP. I ported our calculation - applications from Windows to Linux, to allow them to be run on large - clusters. Finally, I implemented a testing framework for our calculation - applications using Perl's Test::More.}\normalsize + \item \ressubheading{UIUC Hydrogeology Lab (\url{https://www.gwb.com/})}{Urbana, IL} + {Visiting Research Programmer}{February 2006--February 2010} + \begin{itemize} + \item Worked on the Geochemists' Workbench, a geochemistry software + suite written in C++ and Tcl/Tk. + \item Added support for several new image output formats including + SVG and PDF, and added features to existing ones, including + adding font embedding support to our PostScript output. + \item Contributed to adding parallel processing support to several + scientific calculations, using OpenMP. + \item Ported our calculation applications from Windows to Linux, to + allow them to be run on large supercomputing clusters. + \item Implemented a testing framework for our calculation + applications, using Perl's Test::More. + \end{itemize} % }}} \end{itemize} % }}} -% Projects {{{ -\resheading{Projects} +% Open Source {{{ +\resheading{Open Source} -\small{A more complete list of my projects is on my website -(\url{https://tozt.net/projects.html}). All of my personal open source work is -also available on GitHub (\url{https://github.com/doy}), and my Perl open -source work is also available on the CPAN -(\url{https://metacpan.org/author/DOY}).}\normalsize\vspace{-3pt} +\small{A more complete list of my projects can be found on my website +(\url{https://tozt.net/projects.html} and \url{https://git.tozt.net/}). All of +my personal open source work is also available on GitHub +(\url{https://github.com/doy}), and you can also find my Rust open source work +on crates.io (\url{https://crates.io/users/doy}) and my Perl open source work +on MetaCPAN (\url{https://metacpan.org/author/DOY}).}\normalsize \begin{itemize} - % termcast {{{ - \item \resshortsubheading{Termcast (\url{https://github.com/doy/python-termcast-server})}{2014--present} \vspace{6pt} \linebreak - \small{I wrote a server and client to allow users to stream their terminal - sessions over the network for other people to watch.}\normalsize + % nbsh {{{ + \item \resshortsubheading{nbsh (\url{https://github.com/doy/nbsh})}{2021--present} \linebreak \linebreak + I am currently developing an advanced new shell using Rust and Tokio + which integrates aspects of terminal multiplexers to provide a user + experience more similar to notebooks (such as Jupyter) than traditional + shells. % }}} - % libvt100 {{{ - % \item \resshortsubheading{libvt100 (\url{https://github.com/doy/libvt100})}{2014--present} \vspace{6pt} \linebreak - % I am the author of libvt100, a terminal parsing library written in C - % and Lex. I am currently using it in the Termcast server and in Runes, a - % terminal emulator. - % }}} - % Text::Handlebars {{{ - % \item \resshortsubheading{Text::Handlebars (\url{https://github.com/doy/text-handlebars})}{2013--present} \vspace{6pt} \linebreak - % I am the author of Text::Handlebars, a port of the Handlebars.js - % templating language to Perl. It uses a custom parser on top of the - % Xslate template engine framework. It supports nearly the entire feature - % set of the JavaScript implementation, and we used it at Infinity - % Interactive to ease the transition of one of our large web applications - % from client side templates to server side templates. + % rbw {{{ + \item \resshortsubheading{rbw (\url{https://github.com/doy/rbw})}{2020--present} \linebreak \linebreak + I wrote and maintain rbw, an unofficial command-line client for the + Bitwarden password manager. rbw is written in Rust, and uses a + background agent (in a similar style to ssh-agent or gpg-agent) to keep + credentials persistently in memory. % }}} % Reply {{{ - % \item \resshortsubheading{Reply (\url{https://github.com/doy/reply})}{2013--present} \vspace{6pt} \linebreak - % \small{I wrote Reply, a lightweight and extensible REPL for Perl. It includes - % many useful features such as tab completion and history support.}\normalsize + \item \resshortsubheading{Reply (\url{https://github.com/doy/reply})}{2013--2016} \linebreak \linebreak + I wrote Reply, a lightweight and extensible REPL for Perl. It includes + many useful features such as tab completion and history support. % }}} % Dungeon Crawl Stone Soup {{{ - \item \resshortsubheading{Dungeon Crawl Stone Soup (\url{http://crawl.develz.org/})}{2009--present} \vspace{6pt} \linebreak - \small{I am a member of the development team for Dungeon Crawl Stone Soup, a + \item \resshortsubheading{Dungeon Crawl Stone Soup (\url{https://crawl.develz.org/})}{2009--2016} \linebreak \linebreak + I was a member of the development team for Dungeon Crawl Stone Soup, a roguelike game written in C++ and Lua. I contributed several features - to the game and was also the release manager for the 0.6 release.}\normalsize + to the game and was also the release manager for the 0.6 release. % }}} % Plack {{{ - % \item \resshortsubheading{Plack (\url{http://plackperl.org/})}{2012--2013} \vspace{6pt} \linebreak - % I am a member of the core development team for PSGI and Plack, the - % specification for Perl web server/application interaction (similar to - % Python's WSGI and Ruby's Rack). + \item \resshortsubheading{Plack (\url{https://plackperl.org/})}{2012--2013} \linebreak \linebreak + I was a member of the core development team for PSGI and Plack, the + specification for Perl web server/application interaction (similar to + Python's WSGI and Ruby's Rack). % }}} % Perl {{{ - \item \resshortsubheading{Perl (\url{http://www.perl.org/})}{2011--2013} \vspace{6pt} \linebreak - \small{I was the release manager for the 5.17.1 development release of Perl, - and I have also contributed many bug fixes. I have also been a lead - developer on the p5-mop project, a prototype of a new object system for - Perl.}\normalsize - % }}} - % OX {{{ - % \item \resshortsubheading{OX (\url{https://github.com/iinteractive/OX})}{2011--present} \vspace{6pt} \linebreak - % I am the lead author of OX, a web framework for Perl based on the PSGI - % specification, which uses the Bread::Board dependency injection system - % to manage application components. We have used it internally at - % Infinity Interactive for many client projects. In addition to writing - % most of the framework itself, I also wrote a series of advent calendar - % posts documenting it, which can be seen at - % \url{http://ox.iinteractive.com/advent/}. + \item \resshortsubheading{Perl (\url{https://www.perl.org/})}{2011--2013} \linebreak \linebreak + I was the release manager for the 5.17.1 development release of Perl, + and I have also contributed many bug fixes. I was also a lead developer + on the p5-mop project, a prototype of a new object system for Perl. % }}} % Moose {{{ - \item \resshortsubheading{Moose (\url{http://moose.perl.org/})}{2009--2013} \vspace{6pt} \linebreak - \small{I am a member of the development team for Moose, which provides + \item \resshortsubheading{Moose (\url{https://metacpan.org/dist/Moose})}{2009--2013} \linebreak \linebreak + I was a member of the development team for Moose, which provides advanced object orientation capabilities to Perl. I was also the - release manager from 2011--2012.}\normalsize + release manager from 2011--2012. % }}} % TAEB {{{ - \item \resshortsubheading{TAEB (\url{http://taeb.github.io/})}{2008--2011} \vspace{6pt} \linebreak - \small{I was one of the lead framework developers for TAEB, a Perl framework - for programmatic interaction with NetHack. I was also the primary - developer for the leading AI written for TAEB.}\normalsize + \item \resshortsubheading{TAEB (\url{https://taeb.github.io/})}{2008--2011} \linebreak \linebreak + I was one of the lead framework developers for TAEB, a Perl framework + for programmatic interaction with the game NetHack. I was also the + primary developer for the leading bot written with TAEB framework. + % }}} +\end{itemize} +% }}} +% Education {{{ +\resheading{Education} +\begin{itemize} + % Recurse Center {{{ + \item \ressubheading{Recurse Center (\url{https://recurse.com/})}{New York, NY} + {Student}{September 2014--November 2014} % }}} - % Volition {{{ - % \item \resshortsubheading{System for Defining, Documenting and Recording Game Events (\url{http://volition-inc.com/})}{2007--2008} \vspace{6pt} \linebreak - % This is a library written in C which can be added to games in order to - % track arbitrary events and report them to a remote server, for use in - % gameplay testing. This project was completed for Volition as my senior - % project, and was used as part of their testing process for Saints Row - % 2. + % UIUC {{{ + \item \ressubheading{University of Illinois at Urbana-Champaign, College of Engineering}{Urbana, IL} + {Bachelor of Science in Computer Science with Minor in Mathematics}{August 2004--May 2008} + \begin{minipage}[t]{\textwidth/2-0.2in} + \begin{itemize} + \resitem{Overall GPA: 3.61, Technical GPA: 3.81}\vspace{-7pt} + \resitem{James Scholar in Engineering (2004--2005)}\vspace{4pt} + \end{itemize} + \end{minipage} + \begin{minipage}[t]{\textwidth/2-0.2in} + \begin{itemize} + \resitem{Dean's List (Fall 2004--Fall 2006)}\vspace{-7pt} + \resitem{Graduated with Honors}\vspace{4pt} + \end{itemize} + \end{minipage} % }}} \end{itemize} % }}} @@ -169,30 +189,30 @@ source work is also available on the CPAN \resheading{Talks} \small{Slides and videos (where available) for these talks can be found at -\url{http://tozt.net/talks.html}.}\normalsize\vspace{-3pt} +\url{http://tozt.net/talks.html}.}\normalsize \begin{itemize} - \item \resshortsubheading{Introduction to Rust (50 min)}{YAPC::NA 2014} \vspace{6pt}\linebreak - \small{This talk describes the Rust programming language, touching on + \item \resshortsubheading{Introduction to Rust (50 min)}{YAPC::NA 2014} \linebreak \linebreak + This talk describes the Rust programming language, touching on its major features and design philosophies that make it - interesting.}\normalsize - \item \resshortsubheading{Dependency Injection with Bread::Board (50 min)}{YAPC::NA 2012, YAPC::EU 2012} \vspace{6pt}\linebreak - \small{This talk provides an overview of dependency injection, and - gives concrete examples of it using the Bread::Board module for Perl.}\normalsize - \item \resshortsubheading{OX - the hardest working two letters in Perl (50 min)}{YAPC::NA 2011} \vspace{6pt}\linebreak - \small{This talk describes the OX web framework for Perl, including a - conceptual overview and usage examples.}\normalsize - \item \resshortsubheading{Extending Moose (50 min)}{YAPC::NA 2010} \vspace{6pt}\linebreak - \small{This talk goes into detail describing Moose's meta object + interesting. + \item \resshortsubheading{Dependency Injection with Bread::Board (50 min)}{YAPC::NA 2012, YAPC::EU 2012} \linebreak \linebreak + This talk provides an overview of dependency injection, and + gives concrete examples of it using the Bread::Board module for Perl. + \item \resshortsubheading{OX - the hardest working two letters in Perl (50 min)}{YAPC::NA 2011} \linebreak \linebreak + This talk describes the OX web framework for Perl, including a + conceptual overview and usage examples. + \item \resshortsubheading{Extending Moose (50 min)}{YAPC::NA 2010} \linebreak \linebreak + This talk goes into detail describing Moose's meta object protocol, including what it is, how it works, and how you can extend - it.}\normalsize + it. \end{itemize} % }}} % Skills {{{ \resheading{Skills} \begin{description} - \item[Languages:] \small{I am fluent in C, C++, Perl, Lua, and shell, and I am also proficient in Python, JavaScript, HTML/CSS, Scala, Rust, and LaTeX.}\normalsize\vspace{-6pt} - \item[Tools:] \small{Make, vim, git, Firefox}\normalsize + \item[Languages:] I am fluent in Rust, Ruby, Go, C, Perl, Lua, and shell. + \item[Tools:] git, vim, make, Jenkins, Terraform, Puppet, Docker \end{description} % }}} \end{document} diff --git a/static/resume.txt b/static/resume.txt index 4c492eb..ea898c8 100644 --- a/static/resume.txt +++ b/static/resume.txt @@ -1,110 +1,167 @@ -Jesse P Luehrs -============== -Address: 702 W. Green St., Apt #2 - Urbana, IL 61801 +Jesse Luehrs +============ +Address: 142 E. 16th St. #19D + New York, NY, 10003 Phone: (618) 616-6287 Email: doy@tozt.net Website: http://tozt.net/ +=============== +Work Experience +=============== +Stripe (https://stripe.com/) +Remote +Staff Engineer +January 2015 - June 2021 +- Moved our CI infrastructure from a proprietary system to Jenkins. This + included rewriting the testing infrastructure of our main monolith to run + tests in parallel with process isolation to allow for better reproducibility + and the ability to scale out automatically to many worker machines. This was + able to reduce turnaround time for tests by over 80\%, and provided a path to + scaling out to more machines to keep test times down. +- Converted all of our internal infrastructure to use an installation of + Confidant (https://lyft.github.io/confidant/) for secrets storage and + distribution, giving us much more control over which people and machines had + access to our secrets. +- Implemented an authentication service which allowed users to sign arbitrary + data as their own identity in a way that machines could independently verify. + This allowed us to remove almost all use of GPG at Stripe, which eliminated a + large class of tooling issues related to deployments. +- Contributed to importing all of our low level infrastructure which had + originally been set up via custom tooling (or by hand) into Terraform, + allowing us to (mostly) automate creation of new AWS accounts. +- Contributed to our rollout of Envoy for service-to-service communication, + giving us automatic, transparent mutual TLS for almost all internal traffic. + Additionally, used features provided by Envoy to implement a blue/green + deploy mechanism which greatly improved speed and reliability of deploys for + our critical services. +- Implemented a fleetwide service in go for running maintenance commands on + servers (running puppet, restarting services, etc), which reduced the time + needed for running these types of commands from several days in some cases to + under 5 minutes. Additionally, designed a secure protocol for these types of + actions which ensured that the end services would not perform any actions + without first ensuring that the request was logged in a separate secure + append-only logging system. + +Infinity Interactive (https://iinteractive.com/) +Remote +Senior Programmer +February 2010 - August 2014 +- Maintained a large, legacy codebase which handled employee engagement survey + registration and reporting for several large companies. +- Wrote and deployed many small websites for clients, using Perl and + Javascript. +- Developed and maintained various open source projects used in our client + work, including Moose and Plack (see below). + +UIUC Hydrogeology Lab (https://www.gwb.com/) +Urbana, IL +Visiting Research Programmer +February 2006 - February 2010 +- Worked on the Geochemists' Workbench, a geochemistry software suite written + in C++ and Tcl/Tk. +- Added support for several new image output formats including SVG and PDF, and + added features to existing ones, including adding font embedding support to + our PostScript output. +- Contributed to adding parallel processing support to several scientific + calculations, using OpenMP. +- Ported our calculation applications from Windows to Linux, to allow them to + be run on large supercomputing clusters. +- Implemented a testing framework for our calculation applications, using + Perl's Test::More. + +=========== +Open Source +=========== +A more complete list of my projects can be found on my website +(https://tozt.net/projects.html and https://git.tozt.net/). All of my personal +open source work is also available on GitHub (https://github.com/doy), and you +can also find my Rust open source work on crates.io +(https://crates.io/users/doy) and my Perl open source work on MetaCPAN +(https://metacpan.org/author/DOY). + +nbsh (https://github.com/doy/nbsh): 2021 - present + I am currently developing an advanced new shell using Rust and Tokio which + integrates aspects of terminal multiplexers to provide a user experience + more similar to notebooks (such as Jupyter) than traditional shells. + +rbw (https://github.com/doy/rbw): 2020 - present + I wrote and maintain rbw, an unofficial command-line client for the + Bitwarden password manager. rbw is written in Rust, and uses a background + agent (in a similar style to ssh-agent or gpg-agent) to keep credentials + persistently in memory. + +Reply (https://github.com/doy/reply): 2013 - 2016 + I wrote Reply, a lightweight and extensible REPL for Perl. It includes many + useful features such as tab completion and history support. + +Dungeon Crawl Stone Soup (https://crawl.develz.org/): 2009 - 2016 + I was a member of the development team for Dungeon Crawl Stone Soup, a + roguelike game written in C++ and Lua. I contributed several features to + the game and was also the release manager for the 0.6 release. + +Plack (https://plackperl.org/): 2012 - 2013 + I was a member of the core development team for PSGI and Plack, the + specification for Perl web server/application interaction (similar to + Python's WSGI and Ruby's Rack). + +Perl (https://www.perl.org/): 2011 - 2013 + I was the release manager for the 5.17.1 development release of Perl, and I + have also contributed many bug fixes. I was also a lead developer on the + p5-mop project, a prototype of a new object system for Perl. + +Moose (https://metacpan.org/dist/Moose): 2009 - 2013 + I was a member of the development team for Moose, which provides advanced + object orientation capabilities to Perl. I was also the release manager + from 2011 - 2012. + +TAEB (https://taeb.github.io/): 2008 - 2011 + I was one of the lead framework developers for TAEB, a Perl framework for + programmatic interaction with the game NetHack. I was also the primary + developer for the leading bot written with TAEB framework. + ========= Education ========= +Recurse Center +New York, NY +Student +September 2014 - November 2014 + University of Illinois at Urbana-Champaign, College of Engineering Urbana, IL -Bachelor of Science in Computer Science -Aug. 2004 - May 2008 +Bachelor of Science in Computer Science with Minor in Mathematics +August 2004 - May 2008 - Overall GPA: 3.61, Technical GPA: 3.81 - James Scholar in Engineering (2004 - 2005) - Dean's List (Fall 2004 - Fall 2006) - Graduated with Honors -=============== -Work Experience -=============== -UIUC Hydrogeology Lab -Urbana, IL -Visiting Research Programmer -February 2006 - present -- Worked on the Geochemists' Workbench, a geochemistry software suite - written in C++ and Tcl/Tk. -- Added or enhanced support for several different image output formats - including PDF, SVG, and PostScript, including adding TrueType font - embedding to PDF and PostScript files. -- Helped add parallel processing support to several scientific - calculations, using OpenMP. -- Designed a new XML-based configuration file format for our - applications. -- Ported our calculation applications to Linux, to allow them to be run - on large clusters. -- Implemented a testing framework for our calculation applications in - Perl, using Test::More. - -Smile-A-While Amusements -Traveling, Illinois/Indiana/Missouri -Concessions manager -Summer 2004 and 2005 -- Managed several amusement games on the Luehrs' Ideal Rides carnival. - -======== -Projects -======== -Moose (http://moose.perl.org/): 2009 - Present -- Member of the Moose Cabal, the lead development team for Moose. -- Wrote several extensions for Moose, including MooseX::NonMoose, which - allows classes built with Moose to easily interoperate with other - types of classes, and MooseX::Aliases, which allows Moose attributes - to be referred to by different names. - -Bot::Games (http://github.com/doy/bot-games): 2009 - Present -- Bot::Games is an IRC bot framework written in Perl, designed for - multiplayer game moderation. -- Uses Moose extensively to provide a clean and extensible plugin system - for adding games. - -TAEB (http://taeb.sartak.org/): 2008 - Present -- TAEB is a Perl framework (using Moose) for programmatic interaction - with NetHack (http://nethack.org/). -- Primary developer for the leading AI written for TAEB. -- Developed several standalone Perl modules in the course of - development, including Graph::Implicit, which implements several - useful graph algorithms, and IO::Pty::Easy, which provides a simple - read/write interface for interacting with pseudo-terminals. - -Smithy (http://sourceforge.net/projects/smithy/): 2008 -- Smithy is a cross-platform map editor for the Aleph One engine - (http://marathon.sourceforge.net/), written in OCaml. -- Contributed several GUI improvements, including writing custom widgets - using LablGTK. - -System for Defining, Documenting and Recording Game Events - (http://volition-inc.com/): 2007 - 2008 -- This is a library written in C which can be added to games in order to - track arbitrary events and report them to a remote server, for use in - gameplay testing. - -LuaIRC (http://luaforge.net/projects/luairc/): 2006 - 2008 -- LuaIRC is a fully-featured IRC framework written in Lua. -- Supports all standard IRC functionality, including CTCP and DCC. +===== +Talks +===== +Slides and videos (where available) for these talks can be found at +http://tozt.net/talks.html. + +Introduction to Rust (50 min): YAPC::NA 2014 + This talk describes the Rust programming language, touching on its major + features and design philosophies that make it interesting. + +Dependency Injection with Bread::Board (50 min): YAPC::NA 2012, YAPC::EU 2012 + This talk provides an overview of dependency injection, and gives concrete + examples of it using the Bread::Board and Bread::Board::Declare Perl + modules. + +OX - the hardest working two letters in Perl (50 min): YAPC::NA 2011 + This talk describes the OX web framework for Perl (mentioned above in the + Projects section), including a conceptual overview and usage examples. + +Extending Moose (50 min): YAPC::NA 2010 + This talk goes into detail describing Moose's meta object protocol, + including what it is, how it works, and how you can extend it. ====== Skills ====== -Languages: -- Proficient in C, C++, Perl (CPAN id: DOY), Lua, Bash, OCaml -- Working knowledge of Ruby, Tcl/Tk, JavaScript, LaTeX, HTML/CSS, - PostScript, sed -Operating Systems: -- Linux (Arch, Debian, Gentoo) -- Windows (2000, XP) -Tools: -- Make, Vim, Microsoft Visual Studio, Cygwin, Darcs, Subversion, Git - -========== -Activities -========== -Inline Insomniacs: -- I was the webmaster for the Inline Insomniacs rollerblading club from - 2005 until 2007. -Falling Illini: -- I was a member of the Falling Illini skydiving club from 2007 until - 2008. +Languages: I am fluent in Rust, Ruby, Go, C, Perl, Lua, and shell. +Tools: git, vim, make, Jenkins, Terraform, Puppet, Docker -- cgit v1.2.3-54-g00ecf