We are a small startup building a specialized search engine. When we started, the logic was simple: "Performance is our main feature, so we need C++."
Six months in, the runtime performance is amazing, but our iteration speed is absolutely tanking.
It feels like we are paying a massive tax on every single feature. Just yesterday, I wasted an entire afternoon fighting CMake just to link a library that would have been a one-line go get or npm install in any other ecosystem. We also constantly deal with phantom bugs that turn out to be subtle ABI mismatches between our M1 Macs and the Linux CI runners—issues that simply don't exist in modern toolchains.
It’s frustrating because our "slower" competitors are shipping features weekly while we are stuck debugging linker errors or waiting for 20-minute clean builds.
I'm starting to wonder if the "performance moat" is a trap. For those who recently started infra projects: did you stick with C++? Did you bail for Rust/Go? Or do you just accept that velocity will be terrible in exchange for raw speed?
our own design choices are usually the source of our pain, whether poorly-conceived or just poorly-executed
inspect your design, question all your choices, scrutinize the areas where your design choices have made evolution hard
blame your tools last