As we launch new B2B SaaS companies at High Alpha, our goal is to make early decisions that de-risk our approach and provide a foundation to build on top of that will both be easy to work with and will make scaling as simple as possible.
Each company that we launch is unique and necessitates different technologies, but there are a few common threads. These are the common technical choices that we’re leveraging in 2020 and why.
Node & Golang
We’ve standardized around Node.js for most back end development. Node provides a steady foundation to build upon, and it’s a familiar language for engineers who may have focused more time on front end development. On small teams, it’s beneficial to have everyone on the team able to contribute across the entire codebase.
For data-intensive applications or services, we rely on Go. Go’s developer-friendly tooling and active community allow us to kick-start our efforts in a big way. Go’s code and libraries tend to be performance-focused, formatted consistently, and easily testable. Standardizing on Go is a benefit for software products that need to ingest large datasets with speed and confidence.
React has been and remains the go-to front-end framework — while others are emerging or evolving, the landscape hasn’t changed much as we’ve entered 2020. We leverage React for several reasons: it has a thriving developer community, there is a talent pool that wants to work with React, and a tool chain that prioritizes getting started quickly without making irreversible decisions.
Data Storage & Processing
Our choice to use Go may be surprising, but how we store our data shouldn’t be. We use Postgres since both Go and Node.js offer support for it. Postgres is an open platform, it scales well, and the syntax is familiar even to those coming from a MySQL, MSSQL, or an Oracle background.
We align our initial architectures with data pipelines that will serve our in-house data science team. To achieve that, we’ve standardized on Google Cloud Platform’s BigQuery and Cloud Storage. This allows us to set our new portfolio companies up for success once they have enough data to train models.
We also often need an intermediary data store for data that we retrieve or check frequently, such as session tokens and user permission sets. For this purpose, we use Redis. Redis, much like Go and React, has a vibrant community, and is flexible enough to meet the shifting demands of a startup.
Public Cloud Providers
All of this code has to run somewhere — and luckily, there are several great options to pick from. We put both Google Cloud Platform and Amazon Web Services to use. Both offer startup credits through VC or incubator affiliation, and they have similar features and capabilities.
Choosing AWS sets our companies up with a large talent pool with transferable experience as we hire the initial team. GCP, on the other hand, has made great strides in the past few years and maintains a consistent developer experience. The GCP Console, API, and SDKs make it easy to spin up services.
Containers and Orchestration: Docker & Kubernetes
As a startup grows, product-market fit can happen without a lot of warning. When this happens, systems become strained and performance can suffer. To counter this, we leverage containerization and orchestration tools like Docker and managed Kubernetes. We build up the infrastructure declaratively (infrastructure-as-code) instead of imperatively (a series of steps). This gives the future CTO and engineers control over when and how their services scale.
We also use services that help decouple systems, such as publish-subscribe messaging solutions (Cloud Pub/Sub in GCP and SNS in AWS) and serverless functions (Cloud Functions in GCP and Lambda in AWS). Serverless functions in particular are very cost-effective, but they can introduce complexity relating to startup times. To prevent too much complexity, we’re intentional about which parts of our architectures we write as serverless components.
Productivity and Growth
The theme across all of our technical choices is to facilitate company growth without constraining developer productivity. We look for tools that are easy to start with, that come with a community of potential hires, and that scale well once the product has found its market. As we launch companies in 2020 and beyond from High Alpha’s venture studio, we believe that the most successful SaaS companies tend to have developers who have the best tools at their disposal and are unencumbered by hard-to-change technical debt.