I was lucky to be able to contribute to many features and experiences that affected Netlify’s massive user base. Here are some examples of things that I worked on. If this kind of work looks interesting to you, Netlify is a fantastic team to join: netlify.com/careers. Questions and comments can be sent via email or twitter.
After working on the Product team for slightly over a year, I switched to working on Netlify’s platform team. The team has a strong DevOps focus and maintains a redundant, highly available multi-cloud infrastructure on which Netlify and and all of its services run. My focus on the team is to maintain, develop, scale and improve various critical services and libraries. Below are some examples of larger projects I worked on.
One of my primary responsibilities upon joining the team is to maintain the Buildbot that all customer site builds run on. It is partially open-source so customers can explore the container in a more freeform matter locally.
- netlify/build-image - Docker file which defines the container builds run in.
- netlify/open-api/go - Go open-api client used in the bot.
Selectable build images
One of the first feature additions I launched for the Buidlbot was selectable build images. This project required adding the concept of additional build images to the API and UI and to develop an upgrade path allowing users to migrate their websites to the new build image image wile also allowing them to roll back to the old image if they needed more time to accommodate the update.
Additionally, I performed intake on a number of user contributed build-image additions and merged other various potential breaking changes within a development window before releasing. I also helped develop the changes to the Ruby on Rails API, additions to the React UI, as well as write the user documentation. It was widely cross cutting project.
I help maintain and further develop Netlify’s Open-API (aka Swagger) API definition, website and surrounding client ecosystem. While open-api can be cumbersome, it has been a decent way to synchronize projects written in different language ecosystems in a unified way.
Other platform projects I work on
- netlify/gotrue - Netlify's Identity service
- netlify/gocommerce - Netlify's Commerce service
- netlify/zip-it-and-ship-it - Netlify's Lambda function packaging algorithm
I worked on Neltify’s Product team for a bit over a year and completed many successful user facing projects. Here are just a few examples:
I was primary author on Netlify’s current CLI codebase.
- netlify/cli - Netlify's extensible CLI
- netlify/js-client - The API client used to make all API calls in the CLI
- netlify/cli-utils - A common utility class for loading and saving configuration from a CLI command
- bcomnes/netlify-lambda-builder - I wrote a CLI that packaged Netlify functions in a convenient manner in order to communicate the idea clearly as a possible direction to take.
I gave a talk on some ideas and concepts I came across working with Netlify’s platform and general JAMStack architecture at a local Portland JAMStack meetup.
I led the Netlify Domains project which allowed users to to add an existing live domain during site setup, or buy the domain if it is available. This feature enabled users to deploy a website from a git repo to a real live domain name with automatic https in a matter of minutes and has resulted in a nice stream of ever increasing AAR for the company.
Build Status Favicons
I helped lead and implement build status favicons, so you can put a build log into a tab, and monitor status from the tab bar.
I implemented the application UI for Netlify’s Lambda functions and logging infrastructure, and have continued to help design and improve the developer ergonomics of the Lambda functions feature set.
I helped architect and implement Netlify’s Identity widget.
I helped implement the UI for our site dashboard redesign.
Security Audit Log
I led the project to specify and implement the Audit Log for teams and identity instances.
I implemented the UI for Netlify’s split testing feature.