From f48629d071cd39229e425ebc3a32f7287d6b12df Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 19 Mar 2022 14:58:55 -0400 Subject: also update the text form --- resume.tex | 2 +- resume.txt | 262 +++++++++++++++++++++++++++++++------------------------------ 2 files changed, 135 insertions(+), 129 deletions(-) diff --git a/resume.tex b/resume.tex index fd5c66e..c9d41df 100644 --- a/resume.tex +++ b/resume.tex @@ -18,7 +18,7 @@ {https://tozt.net/} {doy@tozt.net\hspace{0.5in}} {(618) 616-6287} - {142 E 16th St. \#19D} + {142 E. 16th St. \#19D} {New York, NY, 10003} % }}} % Work Experience {{{ diff --git a/resume.txt b/resume.txt index 339618b..ea898c8 100644 --- a/resume.txt +++ b/resume.txt @@ -1,14 +1,133 @@ Jesse Luehrs ============ -Address: 70 America St. #1R - Providence, RI 02903 +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 with Minor in Mathematics @@ -18,144 +137,31 @@ August 2004 - May 2008 - Dean's List (Fall 2004 - Fall 2006) - Graduated with Honors -=============== -Work Experience -=============== -Infinity Interactive (http://iinteractive.com/) -Manhasset, NY (telecommuting) -Senior Programmer -February 2010 - present - I am 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 - rely heavily on open source software, a large portion of my time is - also devoted to maintaining various open source projects, as well as - developing new open source software that could be useful in the - future. For instance, I contributed to Moose, Plack, and Perl through - work, and developed OX, Text::Handlebars, and p5-mop for use in work. - These projects are described more fully below. - -UIUC Hydrogeology Lab (http://www.gwb.com/) -Urbana, IL -Visiting Research Programmer -February 2006 - February 2010 - 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, including PDF, SVG, and Adobe Illustrator, as well as - improving the existing PostScript support by adding the ability to - embed TrueType fonts. I also helped add parallel processing support to - several scientific calculations, using OpenMP. I designed a new - XML-based configuration file format for our applications and ported - our calculation applications 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. - -======== -Projects -======== -All of my personal open source work is available on GitHub -(https://github.com/doy). My Perl open source work is also available on -the CPAN (https://metacpan.org/author/DOY). - -Text::Handlebars (https://github.com/doy/text-handlebars): 2013 - present - 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. - -Reply (https://github.com/doy/reply): 2013 - present - I am the author of Reply, a customizable and lightweight REPL for - Perl. It provides features like pluggable tab completion, automatic - class loading and refreshing, history support, and (through the - Carp::Reply module) automatically launching a REPL when an exception - is thrown. It can be easily extended through a powerful plugin system. - -Plack (http://plackperl.org/): 2012 - present - I am a member of the core development team for Plack, the reference - implementation of the PSGI specification for Perl web - server/application interaction (similar to Python's WSGI and Ruby's - Rack). I have contributed to the design of PSGI, as well as - implementing my own PSGI-based web framework called OX (below). - -p5-mop (https://github.com/stevan/p5-mop-redux): 2011 - present - I am one of the lead developers for p5-mop, which is a prototype for a - new object system for the Perl core. It provides features such as - attribute declarations, method signatures, and roles to bring Perl up - to the level of other modern languages, but it also includes a fully - featured meta object protocol, for an added level of power and - customizability. - -Perl (http://www.perl.org/): 2011 - present - I was the release manager for the 5.17.1 development release of Perl, - and I have also contributed many bug fixes to the Perl core. I am - currently working on preparing the p5-mop project (above) for - integration into the Perl core. - -OX (https://github.com/iinteractive/OX): 2011 - present - 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 - http://ox.iinteractive.com/advent/. - -Moose (http://moose.perl.org/): 2009 - present - I am a member of the lead development team for Moose, a module which - provides advanced object orientation capabilities for Perl. I was also - the release manager from 2011--2012. I 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. - -TAEB (http://taeb.github.io/): 2008 - present - I am one of the lead framework developers for TAEB, a Perl framework - for programmatic interaction with NetHack. I am also the primary - developer for the leading AI written for TAEB. I developed several - standalone Perl modules, 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. - -Dungeon Crawl Stone Soup (http://crawl.develz.org/): 2009 - 2012 - I am a member of the development team for Dungeon Crawl Stone Soup, a - roguelike game written in C++ and Lua. I contributed several features - throughout the game, and I was also the release manager for the 0.6 - release. - -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. This project was completed for Volition as my senior - project, and was used as part of their testing process for Saints Row - 2. - ===== 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. + 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. + 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. + 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: I am fluent in C, C++, Perl, Lua, and shell, and I am - proficient in JavaScript, HTML/CSS, Scala, Rust, Tcl/Tk, and LaTeX. -Tools: Make, vim, git, Firefox +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