Never doubt that a small group of thoughtful, committed citizens can change the world; indeed, it's the only thing that ever has.
In 2014, WhatsApp was acquired for $19B with a team of 32 engineers out of 55 employees.
In 2012, Instagram was acquired for $1B with 13 employees, a core part of whom were engineers.
Elon Musk made a firm statement by reducing 90% of Twitter's headcount to under 1,000 employees in 2022. The company stayed afloat and delivered a remarkable amount of innovation since.
These companies serve as inspiring case studies that show that it doesn’t take a village to build a tech company. In this document, I will lay the foundation for understanding how the success of Instagram and WhatsApp can be achieved from an engineering perspective - how to build a billion-dollar company with just 10 engineers.
Many people believe that software engineering is hard and that building products is difficult.
This is a limiting belief, and it’s not true. The world is full of people who can build products end to end entirely by themselves. Mark Zuckerberg created Facebook in his dorm room. Marcus Persson single-handedly created the initial version of Minecraft. Tobias Lütke built the early version of Shopify to launch his snowboarding business. Patrick Collison created the early version of Stripe with his brother John as one of his side projects - an end-to-end working prototype processing payments.
Many stories of successful founders are about young people coding away in a garage, trying to create something beautiful. Only 1% of them became commercial successes. Others don’t fail because they couldn’t build a good product.
They fail because the idea they had didn’t work out. For every founder, successful or not, there are dozens of engineers who can build anything and have no ambition of starting a company. Those are the people you want to hire.
The first principle of why small terms outperform comes from the graph theory. Imagine your team as a network of people. A 3-person team only has 3 connections between them (a triangle). In a team of three, any decision can be made via a 3-way phone call. Conflicts are minimal, alignment is quick, and shared context is a given.
Adding one person to the mix increases complexity. A four-person team has 6 connections between them. The headcount increased by 1.3X while the communication complexity increased by 2X. Nonetheless, the four-person team is still efficient, and decisions are made quickly.
Doubling the team size to 9 people results in 36 connections between team members. While the team size increased by 2X, the complexity of communication grew by 6X. This increased complexity makes decision-making difficult. With 9 people, there is a greater need for process, decision-making guidelines, management, and alignment. It is unlikely that the team will reach a unanimous position on important topics. Not everyone will have the same knowledge and shared context. At least half of the time that a 4-person team used to spend coding will now be spent in alignment meetings.
It gets worse with increasing headcount beyond 10. Notice the near-exponential growth of complexity with the linear growth of headcount.
By the time an organization gets to 100 people, there are 4,950 connections between its members. Managing a 100-person organization requires managers to manage individual contributors. It also requires management to manage managers. Alignment at this scale becomes difficult. There are established conflicting positions and politics inside the company. Things can rarely be done by the end of the day because even the most simple decisions have dependencies on external teams. Making a change requires alignment meetings, context sharing, and relationship management. While many companies found their way to make it work, the question remains: Is this truly what’s necessary to build and grow the business?
Many founders confuse growth with headcount. Headcount doesn’t equal growth. Quality ideas and top-tier execution equals growth. The most efficient execution comes from doing it with the least feasible amount of people possible.
Growth ≠ Headcount.