TyltGO is a white-label last mile delivery platform for independent e-commerce stores in Canada. Founded in 2018, TyltGO initially launched in the University of Waterloo to help students get local goods. In 2020, TyltGO’s revenue grew by 2,000% as the company expanded its operations outside Waterloo to the Greater Toronto Area where it continues to grow rapidly. TyltGO recently raised a seed round of 2.3M CAD from renowned VCs and angels, including Y Combinator. We interviewed Adnan Ali, TyltGO’s head of engineering, to take a deeper look at how TyltGO powers its same-day deliveries on Porter.
Inside TyltGO on Porter
TyltGO runs Porter on AWS, particularly on Elastic Container Service for Kubernetes (EKS). They host all of their four core services on Porter: the core API server, notifications service, website, and a worker, all written in Node.js. TyltGO also uses Porter’s Redis add-on as a message queue used by the core services.
Before moving onto Porter, TyltGO hosted all their services on Heroku. While the convenience of Heroku was great for them in the early stage, they quickly came to a conclusion that Heroku is not a platform that they can host on long-term because it locks users into its own ecosystem, not to mention the exorbitant cost that increased rapidly as they expanded operations. They had always planned to move to a cloud provider like AWS but did not have the bandwidth to make that migration for a while. For TyltGO, Porter was a platform that allowed them to seamlessly migrate onto AWS without losing the convenience of Heroku.
Upgrading to EKS with no DevOps work
In his previous job, Adnan set up and managed EC2 instances with Chef. While this setup did the job well enough, it required a team of DevOps engineers to manage the instances - DevOps was completely siloed away from the application developers, giving the developers very little visibility into their workloads in terms of logging and monitoring. When Adnan joined TyltGO in 2020 and spearheaded the efforts to move off Heroku into AWS, he initially planned to replicate the EC2 setup he had in his previous job.
For a fast moving startup, however, setting up EC2 instances with Chef was more DevOps work than necessary. And for a team accustomed to Heroku, managing Chef was not an appealing option that would have resulted in a similar DevOps silo. Porter was an option that captured the best of both worlds (i.e. flexibility of AWS and convenience of Heroku) and provided more robustness than EC2 instances with features like zero down-time deploys and autoscaling.
"AWS + Kubernetes is a behemoth to tackle by itself. It’s just not worth the time to figure it all out when we have Porter pretty much handling that behind the scenes. We want to always be working on providing value to the end users and wrestling with Kubernetes doesn’t provide much value to our end users." - Aaron Paul, Co-founder and CTO
Future on Porter
All of TyltGO’s core services are currently running on Porter, and Adnan plans to host all new components of their tech stack on Porter. Particularly, he is currently developing an ETL (Extract, Transform Load) pipeline that he plans to run using Porter’s first-class support of Jobs and Cron Jobs.
"We're excited and looking forward to growing along side the Porter platform. The Porter team continually adds features that improve peace of mind and ease of use. That's precisely what I'm looking for when managing production systems." - Adnan Ali, Head of Engineering