In late 2016, Hatch was formed out of a previous business, Belly, a provider of loyalty programs to small and medium sized businesses (SMBs). In contrast to it's predecessor, the focus of the Hatch team was entirely on enterprise businesses. Having lead an initiative at Belly to adapt the SMB product to address the needs of enterprise businesses, I had unique insight into this problem space and was brought in to help guide the team through the process of building a platform that would directly address the needs of this target market.
Over the course of the next six months, I worked alongside and advised the Hatch team as they went through the process of evaluating architectural approaches, designing the system, and building an initial MVP of the platform that would eventually become an enterprise-grade loyalty program management system. While this process was not without its fair share of ups and downs, we were able to achieve a working version of the platform that fully addressed the needs of nationwide fuel and convenience businesses. Taking this product to market, we were able to attract and land a contract with one of the largest nationwide fuel chains, Murphy USA.
Over the course of the next two years, I continued to work with the Hatch engineering team, providing technical design, development, and devops support across a range of projects. The following are a few of the projects I helped deliver during this time frame:
Belly Acquisition: The Hatch team continued to operate the Belly platform as a source of revenue while building the new enterprise-centric Hatch platform from scratch. After launching the Hatch platform, they sought out an acquirer that would be able to fully leverage the SMB focused Belly platform. Early on in these discussions, I was brought in to serve as the technical point of contact for the Belly platform, allowing the Hatch engineering team to remain fully focused on their work in the new platform. I gathered the relevant documentation to support the diligence process, lead a number of technical review meetings, and helped the acquirer build comfort with their understanding of the platform, warts and all. The acquisition was eventually completed and I remained involved to help execute the technical hand-off of the platform, acting as a liaison between the two organizations.
HQ Metrics Dashboard: The Hatch platform included an administrative dashboard called HQ. This dashboard was initially set up to perform various member and offer management tasks related to running a loyalty program. I was tasked to add various reporting capabilities to this, designing and implementing the associated changes required in both the front-end application and backend services. The supported set of reports included time series charts for the membership, transaction, offer, and reward activity at daily and hourly resolutions, allowing the user to select the specified time range. It also exposed aggregate metrics for the transaction value, both average and cumulative, and the points awarded/spent over the time range.
Hatch Developer Hub: As the maintainers of a web-based software platform, we felt that having first-class API documentation would become increasingly important for our business, both for attracting prospective clients as well as for ensuring our active clients have a positive experience working with the platform. I was asked to design and develop a framework for managing and maintaining this documentation. By combining the API Blueprint specification, Middleman, Dredd, and a handful of other technologies, I developed a site to host and manage all of our API documentation. This included API reference documentation, which was generated directly from the programmatic specification of the API, a set of guides and tutorials, managed as markdown files that could be updated by non-technical team members, and an interactive, step-by-step, curl-based demo of the API.
Deployment Automation: The Hatch platform consisted of two backend services that were deployed to a set of Heroku-based environments dedicated to each customer. As the number of customers grew, the burden of managing our deployment process also grew. To address this I developed a deployment automation CLI tool that streamlined and standardized the process of preparing and executing the deployment of the platform to various customers/environments. In preparation for a release, the tool captured the necessary release artifacts in each of our Github repositories. It could then be used to execute the deployment of each application to the set of target customers and environments. This provided benefits in a number of areas, including saving countless hours of busy work for members of the engineering team and improving the consistency of the release artifacts captured for each deployment.
Backfill Management: As the Murphy USA program scaled up, the team began to uncover a pain point related to the validation and execution of large backfills within the system. In response to this, I developed a set of utilities to automate the process of running backfills and to simplify the process of testing each backfill. Specifically, I developed a framework for running backfills that decomposed the operation into individual batches and ran them sequentially as independent background jobs, rolling up the results into a single record for visibility and status tracking. I also developed a set of scripts for capturing a snapshot of a production database, scrubbing the data, and spinning it up in an isolated DB instances to allow developers to test each backfill against a real-world dataset.
End-to-End Demo Applications: As the system grew to become more full-featured, we started to notice that our internal development far outpaced our customer's ability to adopt these features. As a result we were unable to use real-world examples to show off the latest capabilities of the platform to prospective customers. To address this, I was asked to development an end-to-end demo application that would allow us to showcase the entire feature set of the platform. To achieve this I developed a site that simulated the member's mobile app experience, a site that simulated a cloud-based POS, and a backend service to simulate the capabilities provided by the customer's back office systems. This captured the complete breadth of functionality supported by the platform and immediately became a highly valuable tool for the sales team.
After scaling the Murphy USA program up to over 10 million members and over 200 million transactions, the Hatch business attracted an acquirer. I once again assisted in the diligence process for this acquisition and was retained by the acquirer, Stuzo, continuing to support the team in a variety of technical roles.