Contact me at email@example.com.
Team Lead, Senior Software Engineer, 2/2017 – 10/2021
- Led a team providing key backend services, including a key REST API for our SaaS product’s backend, using Go, Swagger, Postgres, and Kafka.
- Built services that ran on AWS with Docker, Kubernetes, and RDS.
- Improved team workflow by introducing code review, testing, and an ordered backlog of work.
- Provided mentoring for junior developers and interns.
- Worked closely with other teams and product management to understand user needs, write design docs, design our APIs, plan changes and rollouts, and address bugs and performance issues that affected the product.
- Led blame-free postmortems for outages and other severe incidents.
- Engaged in quarterly planning with the CTO, Director of Engineering, and product team to define my team’s OKRs and KPIs based on customer and company needs.
- Wrote significant engineering department documentation, including rewriting our FOSS usage and release policy with the CTO and CEO.
- Led technical hiring by helping define our hiring and onboarding processes for engineers while the company grew from approximately 15 to 55 staff.
Software Engineering Team Lead, 7/2011 – 1/2017
- Led the engineering team in the development of websites and REST APIs, queue processing systems, and build tools using Modern Perl, Go, RabbitMQ, and Postgres.
- Developed and supported new and old services receiving hundreds of requests per second.
- Provided technical leadership for the engineering team by defining our development workflow using agile tools, as well as our code review practices.
- Wrote the first unit tests at the company and later worked on integration tests as well our production simulation tools.
- Introduced continuous integration, initially with Jenkins and later with TeamCity.
- Benchmarked and optimized the test suite, bringing the run time from nearly an hour to about 15 minutes.
- Created a a parallelizable build system to implement the entire build process for our line of GeoIP2 databases.
- Created the C library for this file format, libmaxminddb, as well as the Perl library to write the format, MaxMind::DB::Writer, mostly written in C and XS.
- Developed and extended tools for our development environment, including Git hooks, linters, and tidiers.
- Led all hiring for technical staff, growing the engineering team from three to fifteen, including front-end and back-end developers, a sysadmin, and QA engineers.
- Created the resume screening and interview process used for all of these hires.
Consulting Software Engineer, 11/2007 – 4/2011
Senior Developer, 3/2007 – 11/2007
Senior Developer - Database Lead, 9/2004 – 3/2007
House Absolute Consulting
Sole Proprietor, 2/2002 – 9/2004
Too Old to List, 1995 – 2002
Do you really want to read about my TA position in Music Theory or my first programming jobs?
- I’ve created many FOSS projects. Here are a few highlights:
- detest is a test assertion library for Go.
- omegasort is a CLI tool for sorting text files written in Go.
- precious is a meta-linting code quality tool (a tool to run many linters and prettifiers) in Rust.
- ubi is a tool to install single-file binaries from GitHub releases, in Rust.
- I kicked off the Perl DateTime Project in the early 2000s, which developed a comprehensive suite of interoperating Perl libraries for dealing with dates and times. Distributions in the DateTime suite are under the DateTime namespace on CPAN
- My houseabsolute GitHub organization contains the vast majority of my projects.
- Management and Leadership: KPI and OKR creation, agile development, blame-free postmortems, development processes, technical hiring and onboarding, design docs, change/rollout planning
- Tools, Frameworks, and Protocols: React, Bootstrap, Tailwind, Swagger, GraphQL, GRPC
- Databases: Postgres, MySQL, Redis, RDS, AWS
- Services and Deployment: Docker, Kubernetes, Kafka, RabbitMQ, Prometheus, distributed tracing
- CI systems: GitHub Actions, CircleCI, Azure Pipelines, TeamCity, Jenkins
- Other: API design, Database schema design, benchmarking and profiling, date and time standards, I18N and L10N, email parsing, Hugo
Publications and Presentations
- LWN.net - Perl 5.16 and beyond - March 22, 2012
- For the Perl core, rewrote perlootut from scratch and completely revised perlobj for the Perl 5.16.0 release in 2012.
- Received a grant from The Perl Foundation to work on the Moose distribution documentation and revised all of the existing API docs, wrote new cookbook recipes, and wrote the Moose::Manual documentation from scratch.
- Co-authored Embedding Perl in HTML with Mason with Ken Williams from O’Reilly and Associates, published 10/2002. It is also freely available online.
- See my complete list of publications.
I’ve presented at conferences around the world, with presentations ranging from 5-minute lightning talks to all-day intensive classes.
Wow, you read this far? Amazing!
University of Minnesota, School of Music
1995 – 1997
Master of Arts in Music Composition
1991 – 1995
Bachelor of Arts in Music