Enhancing software, elevating teams.

What’s new?
Your codebase is a commons

Your codebase is a commons

Your codebase degrades the same way shared resources do: not from malice, but from missing governance. Elinor Ostrom proved the commons can survive. Her principles map to software teams with uncomfortable precision.

"Good news, I built it in Lovable.": an engineer's guide to surviving that sentence

"Good news, I built it in Lovable.": an engineer's guide to surviving that sentence

Business users love Lovable. Engineers tend to panic. A real-world case study of how to wrap an AI builder in guardrails so non-technical teams can move fast without quietly rewriting the systems that give your product its edge.

We're not a normal company

We're not a normal company

Every software company claims to be different. The "we don't need X because we have culture" exemption is special pleading. The four phrases that reveal it, and the questions that break them open.

Featured posts Previous posts
The CTO as prisoner

The CTO as prisoner

CTOs who built their company's survival by doing everything can't escape that role by scheduling a holiday. Moving from doing to enabling is a skill and identity shift at once. One thing handed off permanently is where the exit starts.

Python as the new Latin

Python as the new Latin

I used to teach people to code. And looking back, I was teaching students to write it by hand while the tools that write it for them were getting better every single month. So what should a coding classroom actually look like now?

Your codebase is a palimpsest

Your codebase is a palimpsest

Every legacy codebase is a palimpsest: layers of decisions written on top of each other, none fully erased. Geoffrey Dhuyvetters argues that what looks like technical debt is often stratigraphy, and you read it before you rewrite it.

Customer support in the AI era

Customer support in the AI era

Most AI-powered customer support is optimised for deflection, not resolution. The problem isn’t bad agents, it’s architecture: no shared context, no real permissions, no escalation path that works.

Mental capacity is a bottleneck

Mental capacity is a bottleneck

AI removes bottlenecks until it reaches the one that doesn’t move: human cognition. The faster AI makes your system, the more your team’s mental capacity becomes the constraint. You can’t add more of it.

Parallelise yourself with Git worktrees

Parallelise yourself with Git worktrees

The claude -w flag spins up an isolated git worktree in seconds, so you can keep coding while a long-running task occupies your main session. No conflicts, no context pollution, no waiting.

You might also like
We're not a normal company

We're not a normal company

The CTO as prisoner

The CTO as prisoner

Customer support in the AI era

Customer support in the AI era

The cost of the quick fix

The cost of the quick fix

Agentic engineering is a bottleneck

Agentic engineering is a bottleneck

You’ve successfully subscribed to madewithlove
Welcome back! You’ve successfully signed in.
Great! You’ve successfully signed up.
Success! Your email is updated.
Your link has expired
Success! Check your email for magic link to sign-in.