Experienced manager and engineer with nine years of work in modular software design, rapid iteration development, and professional mentorship. Well-versed in test-driven development, getting features to production quickly, and recruiting/retaining talent. Super-functional haircut. Naive but noble rube.
- Test-Driven & Functional Development
- Type Definitions & Code Documentation
- Backend API Design
- System Architecture
- Deployment Automation
- Agile Development Processes
- UND SMHS — Grand Forks, ND | Neuropharmacology, 2008-2011
- University of North Dakota — Grand Forks, ND | Computer Science & Biology, 2002-2008
MEDIAVINE (Ad management for 7500+ publishers) — Remote
Director & Full-Stack Software Developer, May 2017 to Nov 2020
- Created single-page applications (SPAs) for internal and customer products using React.js with integrations for Firebase and New Relic.
- Replaced legacy monolithic Rails codebase with microservice architecture primarily of Node.js services and React.js clients.
- Contributed to super-high-throughput ad auction systems with programmatic scaling and aggressive, flexible caching strategies
- Created sophisticated A/B testing, deployment, and rollback mechanisms used for multiple products at scale to monitor revenue and page actions between different builds
- Developed video player with support for programmatic ads, DASH/HLS streaming, captions, and VP9/HEVC-encoded media
- Integrated products with third-party APIs, such as Google Ad Manager and dozens of ad partners.
- Introduced better engineering standards and processes surrounding development sprints
- Engaged with developers to guide career trajectory, correct poor habits, and facilitate best results in a fully remote department
- Progressed from Individual Contributor to Director
- May 2017 to June 2019: Individual Contributor (Senior Engineer)
- June 2019 to Nov 2019: UI Team Lead
- Nov 2019 to Oct 2020: Director of Engineering
HELP.COM (Help desk and live chat software) — Austin, TX
Frontend Software Developer, March 2016 to May 2017
- Created/maintained React.js/Redux SPAs for the helpdesk and live chat products, with emphasis on performance and usability for 8+ hours per day.
- Co-created deployment pipeline to facilitate release of features with proper quality assurance environments. Included continuous integration, integration testing, development/staging/production environments.
- Participated in product planning meetings and developing weekly sprints to quickly find roadblocks and deliver features on schedule.
SPICEWORKS (Provides monitoring and community tools for IT professionals) — Austin, TX Full-Stack Software Developer, July 2015 to March 2017
- Created SPAs for the Spiceworks Community, a feature-rich forum for IT professional and service vendors, using Ember.js with a Ruby on Rails JSON API.
- Developed a Facebook-style news feed for the Spiceworks Community using Ember.js and Rails API with sophisticated message queue.
- Maintained legacy Rails codebase, and enhanced backend features with improved test coverage.
- Interacted with end-users in interviews to show early-stage features and collect feedback.
COSCHEDULE (Collaboration software for content marketing teams) — Bismarck, ND Full-Stack Software Developer, April 2013 to July 2015
- Created an editorial calendar application for content marketers. Included an Ember.js client application combined with a REST API developed in Node.js/Express.js.
- Developed a message queue system to improve scalability of the API and to facilitate scheduled communication with third-party APIs.
- Integrated with third-party APIs, including WordPress, Facebook, Twitter, LinkedIn, Google, Buffer, and Evernote.
- Supported customers during regular “developer on call” weeks.
NORTH DAKOTA ITD (Information Technology Dept. for State of ND) — Bismarck, ND Full-Stack Software Developer, November 2011 to April 2013
- Created web applications for state government agencies, from requirement definition to implementation and iteration, with Java/Struts.
- Maintained legacy applications and implemented tests and documentation for the aging codebase to improve its lifespan (often the case for underfunded departments).