What Photography Teaches Me About Building Software

Why I keep coming back to photography
Photography is one of the few things that reliably slows me down.
When I take a photo I have to look twice — once at the scene, and again at what actually matters inside it. The light can be good and the framing still wrong. The subject can be strong and the background still noisy. And if I rush it, the moment's just gone.
That discipline turns out to be useful in engineering. A product can have plenty of features and still feel unclear. A system can be technically impressive and still be miserable to use. A page can load fast and still leave someone unsure what to do next.
Framing matters
In photography, framing decides what you notice first. In software, structure does the same job.
Bury the most important action and people feel the friction even if they can't name it. Write generic copy and the whole thing feels distant. Make someone think too hard and they leave.
So I try to treat an interface the way I'd treat a composition:
- Keep the subject obvious.
- Cut anything that doesn't serve it.
- Use contrast to point.
- Let the important part breathe.
That's most of why I like simple layouts and plain language. The goal was never to add more. It's to make the right thing impossible to miss.
Patience beats speed alone
Photography also teaches patience, mostly by force.
Sometimes I'll take a dozen frames before one feels right, and that's just the cost of it. Code works the same way. The first version is rarely the good version — the clean implementation usually shows up after some editing, some deleting, and a hard look at what's still standing once the extra weight is gone.
It's why I'd rather work in small iterations. Build something, test it, cut what isn't earning its place, go again. Slower at the start. Better by the end.
What that means for the way I build
- Start with the real subject, not the decoration.
- Let it feel natural instead of overdesigned.
- Keep the important paths fast and obvious.
- Ship something that looks finished, not like a draft that ran out of time.
It's also why I like projects that mix technical work with an actual point of view. They're more honest. They sound like a person instead of a template.
Closing thought
Photography keeps reminding me that good work is mostly attention — not moving fast, but noticing what matters and leaving out what doesn't.
That's a useful lesson for software. Honestly, for most things worth building.
Keep it in mind and the code stays cleaner, the interfaces stay lighter, and the work ends up sounding like me.
