login


Google Sign inLinkedIn Sign in

Don't have an account? 

Scaling Via APIs

Dev Processes
Scaling Team
Data team

25 April, 2018

Ole Dallerup discusses how he was able to help scale his company’s engineering team by moving from an monolith and implementing a microservices and APIs first architecture.

Problem

I started working for Trustpilot as an engineer when it was still a small startup. It didn't have any tech founders, so the first part of it was built by consultants, and then young, fairly inexperienced engineers, including me, were brought in to continue building code. We ended up with a big monolith, and as our company grew our services didn't scale. Just as bad, while the monolith continue grow bigger and more complex it became even more difficult to get new engineers onboarded.

Actions taken

We didn't have time to waste, we needed to hire, so we continued to hire aggressively. I started research to figure out how to solve the two problems, and eventually decided to start implementing microservices and APIs to a knowledge stack. We did this in an untraditional way. Usually, people start doing this by building a very flexible API. However, we decided to build one API to rule them all. It wasn't flexible, but was able to be built very quickly, and within a few months we had encapsulate our monolith with APIs. This then allowed us to tell of our teams to only use APIs to build new features while we set a few teams aside to migrate the old monolith out to microservices. As part of this we also set the foundation to be able to example re-write or re-plaform small pieces of the product without having to cover it all at ones. It enabled us to put focus on the areas that had the biggest problems first.

Lessons learned

Look for opportunities where you can solve organizational issues with architecture. By doing this, we were able to separate our codebase into smaller, more manageable services with less complexity. We managed to build a setup were engineers become productive faster, enabling us to grow with the demand and to have independent teams that had the control of the technology needed to for their services to work best. Note: Were I have seen it very effective combining architecture and organizational challenges, it's not the case when combining feareus and re-platforming/re-architecture. Properly the most important engineering principle in my book is never to combine adding features and re-platforming at the same time. Seperate those two I have experienced always to deliver faster.


Related stories

Some Useful Tips for Decoupling Releases and Deployments
30 June

Pierre Bergamin, VP of Engineering at Assignar, outlines some useful tips for decoupling releases from deployment and increasing deployments by a huge factor, speeding up reverts and planning releases in a better way.

Agile / Scrum
Dev Processes
Pierre Bergamin

Pierre Bergamin

VP of Engineering at Assignar

How to Identify Root Cause of an Application Failure
30 June

Murali Bala, Director, Software Engineering at Capital One, outlines how he applied a root cause analysis to fix a recurring outage of their website.

Dev Processes
Leadership
Productivity
Murali Bala

Murali Bala

Director, Software Engineering at Capital One

Challenges of Migrating Old Legacy Software
27 June

Tim Olshansky, EVP of Engineering at Zenput, explains all the challenges of migrating legacy software to the cloud emphasizing the importance of identifying the riskiest things first and applying small, incremental changes.

Dev Processes
Productivity
Tim Olshansky

Tim Olshansky

EVP Engineering at Zenput

Infrastructure: On-Site, Colocation, or the Cloud
19 May

Viacheslav Bessonov, Chief Technology Officer at Algalon Capital, describes the advantages and disadvantages of three different infrastructures and how he made the final decision on which one was best for his company.

Data team
Viacheslav Bessonov

Viacheslav Bessonov

Chief Technology Officer at Algalon Capital

How To Identify the Right Product To Build
19 May

Alessandro Pintaudi, Product Management Director at Payfit, talks about how teams need to focus more time on building the right things and how to keep doing it with scale.

OKR
Managing Expectations
Product Team
Product
Dev Processes
Internal Communication
Roadmap
Alessandro Pintaudi

Alessandro Pintaudi

Product Management Director at PayFit

You're a great engineer.
Become a great engineering leader.

Plato (platohq.com) is the world's biggest mentorship platform for engineering managers & product managers. We've curated a community of mentors who are the tech industry's best engineering & product leaders from companies like Facebook, Lyft, Slack, Airbnb, Gusto, and more.