My previous post was about the things we do wrong
I should probably mention the things we're fucking awesome at.
1) Our "revenue per employee" is ahead of Amazon
2) Our "profit per employee" is bigger than Microsoft's.
Actually, I could've stopped right there, hahah
3) The company is 15 years old. Our flagship product is 12.
3a) We know how to test hypotheses and pivot quickly. Before focusing on our main product, we've launched 26 (twenty six) other, less successful apps.
4) The company is profitable from day one.
5) With zero investments.
6) All because of the things we do "wrong" and our tech stack is Boring As F.
In fact, it is high time for us, programmers, to understand that our spherical cows in a vacuum™ are rarely correlated with business results
7) We are committed to the Five whys and Keep it simple, stupid principles.
8) At the same time, we understand that a programmer's motivation can spike a lot from trying a new shiny object™ in the tech stack. Therefore, everyone on the team is allowed to poke any new technologies they like. In the end, let them hit the "Occam's razor" wall with their own head.
9) We have almost zero infrastructure costs. Our monthly AWS bill is less than 1k.
10) We have tons of tests. Front, back, unit tests, integration tests, API tests, UI tests via Selenium, load tests, benchmark tests - you name it
11) We also have all kinds of monitoring, both external and internal, right within the product. We have a profiler with telemetry that displays the slowest callstacks, once the CPU load suddenly bumps (and when it does, we get an SMS). We have scripts that run critical user scenarios on production every minute, and check the output. And if something breaks - everything beeps, blinks and vibrates.
12) No, we do not use an external product for these scripts, the one that takes 6 hours to set up a docker container and another 6 hours to write a ton of
weird-syntax.yaml files. Plain and simple code in a familiar language, right inside the monolith.
12a) Oh yeah, it's a monolith.
13) We are awesome at relational databases. Indexes, execution plans, storage and query optimization, step-by-step materialization, etc.
14) Our average "time to prod" for a feature request is 2 days.
15) "Time to prod" for a bug report is less than an hour. Sometimes just a couple of minutes.
16) Between writing code and deploying it to production - there's literally just one click of one button. Just like Joel "the Great" Spolsky has taught us. If you're getting anxious at this point - see paragraph #10.
17) We seem to be good at asynchronous I/O on the backend. I will probably write a separate post about this, because (judging by the job interviews) people do not really understand why async/await (and alternatives) are so damn awesome.
18) We love optimizing performance and we're good at it. Frontend, backend, code, database, "Lighthouse score", you name it. I recently spent 2 hours rewriting ineffective CSS selectors, just to accelerate the layout-rendering from 50ms to 38ms. No urgent tasks for today? Go see what you can speed up.
19) We practice "all hands support": doesn't matter if you're an HR or a system administrator - go ahead and respond to tickets from real customers once a week. Even if you are the CEO with a fancy business card and a long important email signature. Jeff Bezos does it - you do it. And this tradition of ours is the best cure for shiny objects™ and spherical cow™ syndromes for our developers.
20) We work remotely and we are all based in different countries, but that's not a huge deal especially during the pandemic...
21) If someone fucks things up (like, puts a production server down) - they have to order pizza for everyone else on the team
22) Last time we had this pizza was 4 years ago.