The Benchmarks of a Ghost Ship: On Knowing When to Walk Away

Search for a command to run...

Well written, and just what I needed to read. Thank you.
Today we are deconstructing the 4-Star Dragon Ball shader (available on Shadertoy here). This shader is a good example of using 2D math to drive 3D optical effects. To understand it, we must reference

In Part 1, I talked about the high-level "magic" happening on your wrist. How Apple uses neural networks and math to guess your VO2Max even when you’re just walking around the block. But if you're lik
I am a data junkie. I track, measure, and optimize. So, when a severe ankle injury recently sidelined me, the hardest part wasn't the physical pain it was watching my hard earned fitness metrics plumm

In my previous post, I detailed how our move from the Android Emulator to standalone Android-x86 VHDX images gave us impressive cost saving wins for our fuzzing budget. With any infrastructure pivot,

When I was the head of Microsoft's Edge security for the US market, we ran into an infrastructure challenge that forced us to completely rethink how we fuzzed Android. The project we built no longer e
In the world of software engineering, we are raised on a diet of pure meritocracy. We believe that if our algorithms are faster, our latency lower, and our architecture more elegant, we win. We treat the codebase like a sanctuary where logic is the only law.
But I’ve spent my career building cathedrals in sinking cities, and if there is one thing I’ve learned, it’s that the most brilliant code in the world cannot save a product whose time has passed or one that never found its timing at all.
During my tenure on the Chakra JavaScript compiler team at Microsoft, we did the "impossible." We went toe-to-toe with Google’s V8 and, by the metrics of the Octane, jetstream, & sunspider benchmarks, we won.
We built a world-class engine a feat of JIT optimization and memory management that could have defined the next decade of the web. Chakra was ahead in ES6 conformance and had elegant security mitigations like MemGC that even got the praise of Google project zero :
"It is also interesting to observe the effect of MemGC, a use-after-free mitigation in Internet Explorer and Microsoft Edge. When this mitigation is disabled using the registry flag OverrideMemoryProtectionSetting, a lot more bugs appear. However, Microsoft considers these bugs strongly mitigated by MemGC and I agree with that assessment. Given that IE used to be plagued with use-after-free issues, MemGC is an example of a useful mitigation that results in a clear positive real-world impact. Kudos to Microsoft’s team behind it!"
But while we were winning the technical battle, the war was already over. Microsoft had split the browser’s soul in two, drifting between the legacy of Internet Explorer and the fresh start of Edge. We were optimizing a masterpiece while the gallery was being demolished. It didn’t matter that our tech was superior; the market had moved, the trust had eroded, and the remaining market share was evaporating.
The Lesson: You can be the best in the world at something that no longer matters.
I saw the same ghost appear again at Ionic Security. We weren’t just building another app; we were creating groundbreaking security infrastructure. I have the patents to prove it. I have tangible evidence of innovation in its purest form. We solved problems others hadn't even identified.
Yet, a startup is a race between discovery and exhaustion. We had the breakthrough, but we couldn't find the "problem-shaped hole" in the market to fit it into. We had a solution in search of a customer base that wasn't ready to change. Again, I found myself holding a piece of "superior" technology that was destined to sit on a shelf.
When you pour your life into a compiler or a startup, "giving up" feels like a betrayal of your own craft. We fall into the Sunk Cost Fallacy, believing that if we just optimize one more path or secure one more patent, the world will finally wake up and see the merit.
But there is a profound difference between failing and being a failure. Here is the framework I've adopted:
The hardest skill to learn in tech isn't a new language especially with LLMs these days; it’s the ability to look at a "perfect" piece of work and realize it’s time to walk away. We often stay too long because we want the world to validate our effort. We want the market share to reflect our IQ.
The world doesn't owe our code a living. When you realize the ship is split in two, or the customers aren't coming, the most logical thing you can do is take your tools and find a new shore.
You aren't abandoning your work. You are preserving your talent for a place where the wind is actually blowing. I have suffered from sticking around too long in the past. My rule for the last few years is give everything 18 months. If its still fun and you are seeing success stick with it. If you feel stuck move on.
First published 4/22/26 on blog.farzon.org