Between perfect and done

Between perfect and done

Sometimes in my career, I’ve found it hard to balance my perfectionism with the need to actually deliver.

My instinct has always been to aim for perfect. Every feature should be crafted with care. Elegant code, spotless documentation, clean architecture, flawless UX. No detail too small, no use case too obscure. I want every line of code to have a purpose, every decision to make sense.

I wouldn’t call that a fault. It’s pride in your craft, the desire to put out something that truly represents you. But too often, the real world has a way of pulling you back down to earth.

Most of my career has been in agencies. Fast-paced, exciting, full of variety and people with wildly different skills. It’s a brilliant environment for growth, but one constant challenge is how often your perfectionism clashes with deadlines. Agencies live on deliverables. A client might not care that you renamed every variable or optimised your imports for future maintainability. They care that the project ships.

Getting clients to understand the long-term value of clean, scalable, future-proof code is tough. Sometimes you just have to compromise. And even if you hate it, there are moments when you’ll push that last-minute patch to production, knowing it’s not your proudest work, but it gets the job done.

That’s the trade-off of agency life: creativity and speed often outweigh polish.

In my new job, the pace is still fast, but the approach feels different. There’s more space for care and craftsmanship. I’m encouraged to explore edge cases, ask questions, and aim higher, without constantly justifying why it matters. I still work within deadlines and defined processes, but the culture here is built around reasoning, not rushing.

If something adds value to quality, maintainability, or user experience, it gets discussed seriously. That’s a huge shift from needing to “convince” a client. Here, it’s a conversation among peers.

Adapting to this mindset took time. At first, the structure and procedures felt foreign to me. But now, after a few months, I feel like they’ve started to click into place. I’m less obsessed with delivering everything as fast as possible, and more invested in doing it right. I enjoy talking through ideas, questioning patterns, and refining code as a collective process.

For the first time in years, honing my craft feels like a natural part of the job, not something I have to fight for.

Lots of companies talk about growth and improvement, but only a few truly make it part of their DNA. I think I’ve found one of those places, and I want to make the most of it.

Finding this balance, between perfectionism and practicality, pride and progress, is only the beginning. The next step is making that balance part of who I am, every day. And I have no intention of letting it go.

« What I Learned at My First Hackathon You've just read my latest post. Nothing after this!