summaryrefslogtreecommitdiffstats
path: root/resume.txt
blob: 339618b000848f992fb96c43ebf4cbbf445f051f (plain) (blame)
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
Jesse Luehrs
============
Address: 70 America St. #1R
         Providence, RI 02903
Phone:   (618) 616-6287
Email:   doy@tozt.net
Website: http://tozt.net/

=========
Education
=========
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
- 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
===============
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.

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: 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