1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
% vim:foldmethod=marker commentstring=%%%s
% license {{{
% This work is licensed under the Creative Commons
% Attribution-NonCommercial-ShareAlike License. To view a copy of this license,
% visit http://creativecommons.org/licenses/by-nc-sa/1.0/ or send a letter to
% Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
% This file is adapted from Todd Courtesan's resume, at
% http://www.courtesan.com/todd/resume.html
% }}}
% preamble {{{
\documentclass[letterpaper]{article}
\usepackage{jesse_resume}
\hypersetup{hidelinks}
% }}}
\begin{document}
% Header {{{
\resheader{Jesse Luehrs}
{https://tozt.net/}
{doy@tozt.net\hspace{0.5in}}
{(618) 616-6287}
{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{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{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}
% }}}
% Open Source {{{
\resheading{Open Source}
\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}
% 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.
% }}}
% 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--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{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.
% }}}
% Plack {{{
\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{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{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.
% }}}
% TAEB {{{
\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}
% }}}
% 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}
% }}}
% Talks {{{
\resheading{Talks}
\small{Slides and videos (where available) for these talks can be found at
\url{http://tozt.net/talks.html}.}\normalsize
\begin{itemize}
\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.
\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.
\end{itemize}
% }}}
% Skills {{{
\resheading{Skills}
\begin{description}
\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}
|