Elon Musk and The Chamber of Secrets
Latest from Elon: micromanagement and firing Twitter engineers. Some of them in random batches of thousands, some of them after engaging in technical discussions over Twitter.
Elon launched spaceships and built electric cars, respect for that. But his management style (as well as his directors style – looking at you as a Tesla shareholder) is probably tiny bit questionable.
I mean, he is absolutely right that it is much better to have a high-performing team of 150 engineers, than a less-performing team of 3000 engineers. First of all, it is cheaper. However, there’re a few secrets he would need to uncover, when entering Twitter “chamber of secrets”.
One of those is a pretty obvious for an architect.
Web platforms unlike systems, which don’t have to scale through distribution, actually introduce tradeoffs. And the amount of those tradeoffs only grows with the size of the platforms.
One of the tradeoffs has to do with load. In pretty traditional analogies (thanks, Gregor Hohpe), if you’re running a coffee shop, a large number of people queuing up to pay for coffee should not affect the speed of coffee preparation. So this means, that if your place is really popular, you cannot have one person accepting payments and making coffee. Those things should happen in parallel, and this means that you need more people to build and support those services.
In architectural terms, it is necessary to distribute functionality among different services to ensure scalability and availability of those functionalities. Think about an authentication vs message feed. Or, even more granular: password authentication vs second factor authentication (not all users will have the latter enabled). And the more load the system expects, the smaller and more granular those functionalities should be mapped to services.
But why does Twitter have so “many” engineers? One of the questions Elon could ask. And the simple answer to that would be – scale and the way modern architectures work.
So the higher the load (bigger the scale), the more functional services there should be. The more functional services there are, the more people you need to support and maintain them. The more people you need, the more you have to make to pay them. Twitter was making around $677K/employee in 2021, which is 50% lower than high-performing internet companies.
Can you fire half of Twitter engineers? You can. Who’s going to be supporting all of that architecture is the biggest question.
It all comes down to the major secret, which Elon needs to uncover. And it is not how to re-engineer things, but rather how to create more revenue flows to support existing architecture.
Or re-architect things completely to make sure that all of Twitter runs from an infinitely-scalable single machine, which can be supported by a small bunch of engineers.