Case Study: SaaS Software Architecture and Interim CTO
EvoSure is a Software-as-a-Service (SaaS) product focused on improving the interactions within the ever-changing space of commercial insurance. The system is composed of a marketplace for matching underwriters to brokers based on the risk profile. On the roadmap is an internal analytics engine that will provide deep insight into current and future marketplace trends. The two co-founders, Matt Foran and Brian Wood, each had over 10 years of experience in the industry and were looking for guidance in laying a great foundation for the software. After an initial meeting, both EvoSure and LaunchAny realized that this was a great fit. James Higginbotham, founder of LaunchAny, was then asked to assist in the architecture, development, and initial product management of their product as their interim CTO.
The Lean Startup Approach
The initial engagement started as an MVP to validate the market needs. While initially envisioned as a fully working application, it was decided to deploy a static prototype with minimal server-side functionality to validate some initial assumptions. The result was great feedback that required the team to reassess the initial go-to-market approach of the company. By identifying this early, we avoided an estimated $60-100k of wasted development effort (and months of calendar time).
While the vision remained the same, the tactics used to enter the market were then adjusted. A high fidelity wireframe was then created, with the first version of the product being released a few months later. The first version included a focus on data security and a resilient cloud infrastructure. A modern, intuitive user experience was also the primary focus of the first release. The result was that initial users, who had never seen the application before, began to perform searches and enter new profiles within the first few minutes of onboarding.
From the first meeting, it was apparent that the business was going to be data-driven. This required a data-focused approach to the software architecture and design, with up-front effort put into the selection of the datastore, data modeling, and data security.
The application was deployed to AWS and used the following services: CloudFormation, EC2, SQS, SNS, S3, and Route 53 DNS. Chef was used for server configuration management. A blue-green deployment strategy was used for upgrading the cloud infrastructure. The architecture was documented in a short, living document that helped capture key decisions, reasonings, and directions to avoid big decisions day-to-day and to enable easier onboarding of new developers.
Below is a screenshot of the first version (click to zoom):
Or, view a recent presentation at the Austin Homegrown API meetup, where James discussed the architecture in more detail: