At Gousto we aim to make it as easy as possible for our customers to cook delicious meals at home. We offer customers the ability to choose up to 4 recipes for 2 or 4 people every week. We deliver all the ingredients needed in exact proportions with easy to follow, step-by-step recipe cards.
Technology is at the heart of our business and since starting in 2011 we have been developing a technology platform to drive the business forwards and provide the best possible experience to our customers. We haven’t spoken publicly about our technology before but we’d like that to change. We feel that we gain a huge amount from the transparency and openness of the tech community and we’d like to start contributing back to that community where we can.
So I hear what you’re thinking, “Another tech blog, why read this one?”
We have a large supply chain and physical operation to also support. We believe that this is what makes tech at Gousto so interesting. We don’t just have to worry about shifting 1s and 0s, we need to shift people’s dinner! From a technology perspective it means we’re dealing with a diverse set of requirements including sophisticated courier integrations, developing our own proprietary ERP systems and architecting warehouse automation systems to Auto Scale on AWS!
Our platform has evolved somewhat since its humble beginnings as a simple e-commerce website in 2011 and we are now just beginning a significant process of reengineering as we look to scale our business further this year. We feel that documenting this journey (both what worked, and what didn’t) will help folk at other high growth startups to learn from our successes (and our mistakes). Some of the major engineering projects we’ve recently completed or will be undertaking this year include:
- Introduction of agile methodologies – As we’ve scaled the development team we’ve needed to introduce methodologies to organize ourselves and provide predictable delivery to the business. We’re just at the start of our agile journey and will be evolving our processes as we continue to grow.
- Continuous delivery pipeline – We understand the value of moving fast and putting new features in front of our customers as quickly as possible. We’ve been busy over the last few months developing a repository driven approach to deployments and have seen huge benefits in developer productivity so far.
- Migration to a Microservices architecture – As we look to develop technology to help power all aspects of the business it’s become evident that a single monolithic codebase just isn’t suitable. We’re committed to a Microservices architecture and passionate about delivering it properly. For example, we’ve been busy building out an asynchronous messaging bus on AWS using SNS and SQS to reduce chained API calls between services, increase performance and reduce the brittleness of our systems.
- Managing our infrastructure as code – We’ve decided to deploy our Microservices onto separate, independent EC2 instances to ensure maximum flexibility and scalability going forwards. This means we need to manage a lot of infrastructure! We’re developing our own PaaS based on CloudFormation and Ansible that will enable new Microservices to be deployed using a standard infrastructure CloudFormation template with no additional work from the developer. Any changes to that infrastructure will be managed in GitHub and go through the same deployment process as the application code itself.
Of course this wouldn’t be a tech blog without a recruitment shout out! We’re always looking out for great people to join our growing team. So if you’re interested in some of the challenges I’ve mentioned above please head over to www.gousto.co.uk/jobs where we list our open positions
We really hope you enjoy reading the blog, we know we’ll enjoy writing it!