summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2022-03-19 14:58:55 -0400
committerJesse Luehrs <doy@tozt.net>2022-03-19 14:58:55 -0400
commitf48629d071cd39229e425ebc3a32f7287d6b12df (patch)
tree6cf1b73ee5c67eef938f71a453a993cbcc84ac31
parent418fb6db228249719585901a34963c25e9a325f6 (diff)
downloadresume-f48629d071cd39229e425ebc3a32f7287d6b12df.tar.gz
resume-f48629d071cd39229e425ebc3a32f7287d6b12df.zip
also update the text form
-rw-r--r--resume.tex2
-rw-r--r--resume.txt262
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