3 ms·
The one I’m working at right now! What made it great: the company is 7 years old, I work basically since inception, half year late. The codebase had some seri
by unkulunkulu 2y ago
The one I’m working at right now!
What made it great: the company is 7 years old, I work basically since inception, half year late.
The codebase had some serious problems due to migrating build systems, rapid team growth and lack of proper communication while developing important infrastructure tools, lack of foresight at the start of a crucial requirement for the whole system that became clear 3 years in.
Aaand… Due to unique sequence of events half a year ago we had to start everything from scratch! We could not use a line of code from the old repo !
This brought miracles out! We started designing the right things right. People started talking to each other on the global scale, without the code limiting them!
The old code not only had problems on the engineering level, but it held people and team responsibilities along suboptimal interface boundaries! This is the biggest magic! After the rewrite started, all the people in the team landed exactly where they wanted and their areas of responsibility became clear and highly efficient. Some people started shining like I could not imagine. Because their organizational and communication skills were limited by a huge suboptimal codebase.
Also, it is very empowering to design a system when your whole team has real experience 5 years into the future.
Also, everyone turned out to be caring about code simplicity and quality, I finally feel at home.
I could not wish for a better developer experience. The sexiest C++ coding time in my life :)
- pcatach 2y agoInteresting! Seems like you were uniquely well-positioned to tackle the infamous system rewrite in a way that worked out great. Fixing the interface boundaries is a strong case for it despite all of the downsides (mostly opportunity cost, I'm thinking).
- unkulunkulu 2y agoBut opportunity cost might not really turn out to be a real factor. Code is a liability, we only would like to think that our code is worth keeping, but the reality is it drags us down by definition: more code requires more manpower to support, this is objective truth. In the old system a lot of things were really slow. I know that now half year in we already have a couple of problems solved that required me and a small team’s half a year work to solve and right now Im working on a problem that almost was not solvable at all before, I’m planning it infractructurally solved by the end of the year. Other teams say they threw away a lot of grabage that grew with the old implementation and kept only “the good parts”. A lot of work done by the teams is now offloaded to the infrastrucutre. We have remote IDE for everyone from day one instead of build-inside-docker-do-what -you-want because old build system could not be and never was thrown away overnight. List goes on