3 ms·
Yep. It's all about the codebase. Even if you know the codebase very well, its complexity can still constrain you significantly in terms of speed. For projects
by jongjong 1y ago
Yep. It's all about the codebase. Even if you know the codebase very well, its complexity can still constrain you significantly in terms of speed.
For projects which I've built from scratch, I move blazingly fast. I can get more done on the weekend one day per week on a complex project than I can get done at my full time day job 5 days per week on a simpler project.
The difference is that in my side project, there is 0 unnecessary complexity. All the difficulties I face are intrinsic, unavoidable barriers to solving the problem.
In my day job, 90% of the complexity is not intrinsic to the problem but are created by the code /architecture itself.
I've been saying this over and over for years but it just doesn't seem to register in people's heads just how important the foundations are. The word "technical debt" is a highly accurate way to describe the issue because the costs compound, just like real debt which is not serviced regularly.
If you join a project which has too much technical debt, you can easily end up in a situation where you have 100 engineers moving at the same pace as 1 engineer could working on their own project.
So the 10x or even 100x engineer is real but you can only discover them if they can work on their own codebase from scratch.
I've seen several times people who were very average developers working for a company who later became 10x devs working on their own startup. I've also seen people who were same speed everywhere; those aren't 10x devs. At best they're a 2x dev because maybe they can churn out buggy tech-debt-ridden code at twice the rate as a normal dev. I've worked with devs who could code at twice the speed (and sustained); large amounts of code but it had bugs and eventually, everyone on the team ended up working at half the speed... Requires twice the amount of code to implement the same feature with lower quality.
Also, sometimes a company may have one person on the team who comes across as highly knowledgeable, good communicator but maybe a bit slow and they don't seem like a 10x dev... But remove that person from the team and after a year or two the whole team is much slower and nobody can figure out why. 10x devs are team productivity multipliers. They make everyone around them approach 10x speed.