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.