Experience
Personal Sabbatical, December 2022 - Present
Assembly (now Pacvue) laid off the majority of staff at Refersion, including me.
I decided to take some time for health and personal development. I also learned
NextJS and TypeScript, completed an online course in distributed systems, and refreshed my
basics. (Remember union-find?) I'm now looking forward to taking on my next opportunity.
Manager of Technical Operations, Refersion, November 2021 - November 2022
Refersion offers an influencer and affiliate marketing tool as part of
the Assembly SaaS platform.
The stack is PHP, MySQL, Node.js, and React, built on an AWS backend.
The Technical Operations team is responsible for tooling, developer
experience, and other cross-cutting engineering concerns. We managed
the team's tooling, local environments, and backend admin tools. We
also filled in on product work when necessary. I designed and planned
the projects for the team, mentored the individual contributors, did
code reviews and paired refactors with them, and worked within the team
as an IC. My direct contributions included:
- Designed and implemented a Github repo to consolidate 50+ existing repos for our Lambdas, including deployment via Github Actions, and migration script.
- Integrated and expanded Phinx for database migration automation.
- Maintained and updated CircleCI testing envrionment for all our repos.
- Refactored old admin panel, fix bugs, and add new functionality.
- Created and managed docker images for local development environments.
COVID Hiatus, May 2020 - November 2021
I was laid off with 25% of the engineering team following the
outbreak of COVID-19. Like many people, I used that time to connect
with and care for family and friends. Later I worked on personal
projects, including a dieting website and a book.
Lead Software Engineer, Greenhouse Software, March 2015 - April 2020
Greenhouse Software produces a suite of SaaS products to facilitate businesses' hiring processes.
The main stack is based on Ruby on Rails and PostgreSQL, served from AWS.
The following is a sample of some of the work I did there:
- Designed and implemented the system by which Greenhouse was able to horizontally scale its Recruiting product.
- Designed and built an email-parsing scheduling system that integrates with Google Calendar and
Microsoft Outlook.
- Designed and built a reporting system supporting independent, user-selected
row and column types, as well as numerous filters.
- Added many features and fixes to the main Recruiting application
- Added new endpoints to the Harvest and Assessment APIs.
- Implemented API rate-limiting in Elixir, using memcached and custom business logic.
- Refactored much legacy code.
- Mentored multiple junior engineers, and taught coding skills to some engineering-adjacent non-programmers.
Software Engineer, Newgrounds, April 2008 - November 2013
Newgrounds is an entertainment portal built on the LAMP stack,
serving user-submitted games and animated shorts. Newgrounds is a
high-traffic site with over one million registered users, and thus
requires scalable code and diligent attention to database efficiency. My
major projects there included:
- The creation of a custom PHP framework that could be used
piecemeal, without requiring changes to the existing legacy
codebase or data model. This framework includes a flexible
object-relational mapping, a concise configuration system, code
generators, and a modular system for separating view and controller
logic. Both the store and the art portal were built on this
framework.
- The Art Portal, a place
for users to showcase their art work and receive feedback from other
users. This includes file uploading and thumbnail creation, voting,
reviews, user management, moderation tools, as well as an AJAX-based
browsing application, which among other things includes back-button
safe, bookmarkable AJAX states.
- The Newgrounds store (defunct),
with cart management, secure credit card processing, and, on
the backend, a complete set of tools for product management, inventory,
and shipping.
- Leading the development team in a redesign of the site code,
including the separation of legacy code into model, view, and controller
components, and a rewrite of almost all the JavaScript on the site.
- Migration of the source tree into version control, namely Subversion.
- Various maintenance tasks.
Freelancer, 2005 - 2008
Various clients.