Career Profile

I am a software developer that enjoys designing, building, and operating large-scale software systems. I’ve primarily worked in Python, but am happy working in all sorts of tech stacks. I’m not afraid of the frontend, but backend development is where my skills truly shine.

When I’m not writing code, I am an enabler in every sense of the word, acting as a force multiplier for the people around me. I tear through political blockers, and anything else in the way, to allow people around me to solve real problems.

Experiences

Principal Software Engineer

2017 - Present
Oath

  • Delivering infrastructure.

Project Team Lead and Core Reviewer

2014 - Present
OpenStack Ironic

  • Served as Project Team Lead (PTL) for Mitaka, Newton, and Ocata development cycles. Set roadmap and priorities. Team increased commit frequency by 20% from Mitaka to Newton, and 60% from Newton to Ocata.
  • Served as core reviewer, approving code since summer 2014.
  • Managed code releases since Liberty cycle, and changed release model from “every 6 months” to “when there’s good code to release”, typically 1-2 months.
  • Led architecture of multi-tenant networking features, giving users private networking capabilities and integration with software networking systems.
  • Led development and integration for the “agent” deploy driver, offering a more scalable and less error-prone deployment method.
  • Developed high availability capabilities for the Ironic driver running in the nova-compute service.
  • Worked with the Nova team to improve how scheduling works for Ironic instances.
  • Repaired broken relationships with the Nova project team, leading to better collaboration between the teams.

Senior Software Engineer

2017
FarmLogs

  • Built a grain marketing feature from scratch that allows farmers to optimize how they sell their crops.
  • Drove change to make the engineering team remote-first, leading to better collaboration, hiring more talent, and happier engineers.
  • Built a crop planner feature that helps farmers plan their year ahead of time and optimize expenses and activities.
  • Helped plan and roll out a new architecture for our CI/CD pipeline based on Kubernetes and Helm, to enable deployments for every commit for every microservice.
  • Re-worked how our auth service handles email and rabbit connections, making many actions less fragile.

Senior Software Developer

2013 - 2017
Rackspace Hosting

  • Worked primarily upstream on OpenStack Ironic as Project Team Lead and core reviewer.
  • Served as Tech Lead for the Ironic project within the OpenStack Innovation Center, leading planning efforts and guiding other team members.
  • Built and operated OnMetal, one of the first public cloud bare metal provisioning products. OnMetal provisions servers in minutes, thousands of times every day.
  • Planned, architected, built, and operated OnMetal v2, adding software networking features, storage connections, Windows support, and RAID 1 boot devices to OnMetal.
  • Implemented zero-downtime upgrades for the OnMetal products, allowing our team to go from monthly deploys to multiple deploys per week.
  • Mentored teammates to help them grow as engineers.
  • Jumped in to help other teams with technical problems when needed.

Software Engineer

2013
ZeroCater

  • Full-stack web development.
  • Django, Postgres, Angular, AWS.
  • Led planning of a new menu system to enable meal planners to more easily select the right meal for clients, and enable vendor management to more easily modify menus.
  • Re-wrote the scheduling application from scratch to improve account manager efficiency.
  • Built a number of small features to help our account managers make sure their clients were happily fed.

Software Engineer

2012 - 2013
drchrono

  • Full-stack web development.
  • Django, JQuery, MySQL, Rackspace Cloud.
  • Completely re-wrote the medical billing system, fixing how we interact with insurance companies and making sure doctors got paid.
  • Wrote a certified electronic prescription service, allowing doctors to directly submit a patient’s prescriptions to their preferred pharmacy, reducing errors and fake prescriptions.

Software Engineer

2011 - 2012
General Motors

  • Built software to improve workflow and efficiency in the hybrid battery systems lab test engineering group.
  • Wrote a JSON API frontend for the lab’s monitoring software with periodic polling and caching of data. This allowed developers to avoid using an XSLT-based API that often took minutes to load.
  • Built a responsive web interface to allow mobile users to monitor the lab as a whole, individual tests, and active alarms.
  • Moved the test software team from using copies of source code with dates to mercurial.
  • Wrote deployment tooling to safely distribute updated test scripts to test machines, and restart when the system was idle.
  • Helped online new battery labs in Canada and China. Integrated new labs into central monitoring and deploy software, and assisted remote engineers with setup and problems.

Software Engineer Co-op Student

2009 - 2011
General Motors

  • Built life-cycle test scripts for the first-generation Chevy Volt battery. A two year test simulates 10 years of driving. Enabled the test to be easily restarted to provide for software updates.
  • Wrote software to pull data from Volt life-cycle test machines, aggregate the data, and build visualizations. This helped highlight anomalies and issues early, while giving management a 10,000 foot view of the progress and results.
  • Contributed features and bug fixes to common test script code, including hardware device controllers and generic test blocks.
  • Began effort to refactor code from test scripts for various battery models into common code.
  • Made a prototype Android app to monitor and control basic functionality for test machines.

Projects

My open source work is primarily around OpenStack, in a few different projects.

Ironic - Ironic’s mission is to produce an OpenStack service and associated libraries capable of managing and provisioning physical machines, and to do this in a security-aware and fault-tolerant manner.
Nova - Nova’s mission is to implement services and associated libraries to provide massively scalable, on demand, self service access to compute resources, including bare metal, virtual machines, and containers.