Getting testing right is the only investment that has the potential to double your engineering velocity
Prior to Meticulous.ai I spent ten years at Palantir helping lead engineering for Palantir’s main frontend. Through this we learnt how to test frontends effectively, the hard way.
With dozens of apps, 100s of developers, and millions of lines of TypeScript we were able to try different approaches, study the root causes behind each bug that made it to production, iterate and learn. We combined our own experiences with talking with other tech leaders – and reading the best materials we could find out there. Our learnings over those years are something I’ve never been able to find somewhere else. This post distills the most critical three.
There’s a lot to FE stability beyond just testing (monitoring & alerting, incremental metric-dependent rollout, fast or auto rollback etc.). Here we concentrate just on testing. Here’s why:
The main determinant of the impact of an engineering org is building the right product†: prioritising the investments & experiments that give you maximal information on product/market fit, and iterating on a daily or weekly cycle with your users.
Manually testing the code as you write it
Testing at PR stage, testing again after addressing PR comments, and sometimes testing again at release stage
Triaging, repro’ing, root causing and fixing issues that occur in the field
… and all the context switching in-between