The number one question
The number one question from candidates talking to our team for the first time is, "What's your tech stack?" To preempt that question, I'm going to break it down here for you, and provide some history or reasons why.
Top to bottom
I like to answer this question by starting at the bottom of the stack, and working my way up the top.
We run on Google Cloud Platform. I've grown up with this cloud native platform since a year after it started, and I love the simple pricing as wall as the breadth of the platform. Google certainly had a lot of work to do in order to catch up to AWS and Microsoft, and it is squarely in 3rd place with a $11 billion in annual revenue run rate. The $100k in start-up credits certainly helped seal the deal!
We run Docker and Kubernetes (Google Kubernetes Engine - GKE) for our containers and container orchestration, along with Google Container Registry to store our container images. We also leverage Istio for our service mesh.
To enable infrastructure as code, we use Terraform and Helm charts (for GKE configuration). Continuous Integration and Continuous Deployment is handled by CircleCI and Harness, respectively.
The key areas of storage for us are Cloud SQL (Postgres), BigQuery, and Google Cloud Storage (GCS). Love the ease of setting up these databases, having encryption at rest and intransit for all of our data, regular backups for disaster recovery, and replication to separate our transactional datastore (Cloud SQL) from our reporting and analytics data warehouse (BigQuery)
Integration is a critical requirement in Supply Chains. We leverage Boomi for ETL between EDI, APIs and our normalized JSON data models – both into and out of our application. Kafka handles our asynchronous communications between services and between the core application and our integration layer. We use Confluent Cloud for managing our Kafka Clusters.
We develop in Elixir (and use the MVC framework: Phoenix) on the backend, and React with Typescript on the front-end. Team has a number of Ruby developers, and when we took our MVP application far enough, and started rebuilding our platform starting in Jan 2020, we made the move to Elixir, which is a pretty natural migration for Ruby developers.
Both the integration layer and the front-end interact with our application over RESTful APIs that use the JSON:API specification for the request/response data structures.
We utilize a microservices architectural pattern because building platform to handle an end-to-end Cloud Supply Chain is far to complex and vast to do as a monolith.
Ready to help us build a Cloud Supply Chain?
We have a great team and we are making great strides. We are also experiencing triple digit, year-over-year growth due the acceleration of ecommerce by COVID. Having a Cloud Supply Chain gives companies key business capabilities – speed, flexibility, and cost savings. Please checkout our careers page to see how you can help us!