Principles
A few things I've learned the hard way.
I've been building software for about two decades, a lot of it embedded with the people who had to live with what we shipped. These are the handful of things I'd still argue for in a room full of people who disagree with me.
Context beats control
At Palantir I was a forward deployed engineer, which mostly meant sitting next to the people who actually had the problem and building alongside them. The thing that stuck: when people understand why a system works the way it does, they make good calls without you in the room. When they don't, you get either paralysis or a pile of well-meant decisions that quietly pull in different directions.
So as a leader I spend most of my effort making sure the "why" is written down and shared, not gatekeeping the "how". Architecture Decision Records are the cheapest version of this I've found — they're not ceremony, they're how the next person avoids re-litigating a decision you already made for good reasons.
Build one thin slice all the way through first
On the ASX CHESS replacement we were rebuilding the system that clears and settles trades for the entire Australian market. You can't bluff your way through that with a nice diagram. What worked was getting a single transaction to travel the full path — UI to backend to ledger and back — as early as possible, then widening it.
The failure mode I've watched more than once: teams build each layer horizontally, everything looks done, and then integration week arrives and none of the assumptions line up. A thin working thread tells you the truth about your architecture months before a component-by-component plan does.
Assume you'll be woken up at 3am
Building a neobank at Douugh changed how I think about "done". When it's someone's actual money and actual savings goals, a system you can't see into isn't finished — it's a liability you haven't been billed for yet.
I'm not precious about clever architecture. I'm precious about being able to answer "what is it doing right now?" in the middle of the night. Boring, observable, and recoverable has beaten elegant and opaque every time I've had to choose.