Asymmetry

Field note

What running a business taught me about writing software

I started ThinkFull Technologies expecting to learn about clients and invoices. It turned out to be the best software-engineering teacher I've had. Notes from a developer who chose business over a job.


I co-founded ThinkFull Technologies instead of taking a job. I assumed the hard new things to learn would be the business things, finding clients, scoping work, sending invoices. Those were hard. But the part that genuinely changed how I write code was the business itself. A few notes.

”Done” is defined by someone who isn’t you

As a developer, “done” used to mean the tests pass and the code is clean. Running a business, “done” means the client’s problem is gone. Those are not the same thing, and the gap between them is where most of the actual work lives. A beautiful pipeline that solves the wrong problem is just expensive art.

Boring technology is a feature

When you personally have to keep something running, at 11pm, on a weekend, while also doing five other things, you stop reaching for the clever stack. You reach for the one you can debug half-asleep. Most of what I ship now is deliberately boring: well-understood tools, the simplest thing that survives contact with real traffic. The novelty budget goes to the client’s problem, not the infrastructure.

Observability is self-defence

When the system is your responsibility and there’s no ops team behind you, you find out fast that a system you can’t see is a system you don’t control. Logs, dashboards, alerts, these stopped being nice-to-haves the first time something broke and I had no idea why. Now I build the dashboard before I need it.

Automation only counts when it’s unattended

I’ve used Python scraping and automation to bring in leads and do real client work. The lesson there: automation that needs you to babysit it isn’t automation, it’s a chore with extra steps. The value shows up only once it survives the edge cases and runs without you watching. Until then it’s a demo.

The meta-lesson

Writing software for a job optimises for the codebase. Writing software for a business optimises for the outcome, and once you’ve felt that difference, you can’t unfeel it. The constraints of running a small business turned out to be the best code review I’ve ever had.