Expertise vs open-mindedness.
Sometimes it’s hard to tell if someone’s perspective is genuinely the best approach or if they’re just anchored in familiar thinking. What if they don’t even know what “awesome” could look like?
On the other hand, knowing when to hold your ground versus when to let things go can be even trickier. What if I don’t know what “awesome” feels like and am just comfortable with my usual approach?
Define who’s making the call before a debate starts.
That person takes in everyone’s input but in the end they own the final decision.
It cuts down on endless debates and helps the team align around a single direction—even if not everyone agrees at first.
A short post about unstoppable teams.
All teams will face this moment sooner or later.
Torpedoes hit and chaos erupts. This feels like the end.
You see those who freeze and are lost in analysis or despair. Others grab buckets, extinguish fires and patch the holes. Those who can’t handle the shitstorm often leave or, worse, switch off — but the team that stays learns.
Each crisis builds resilience and over time, the screams fade, the paralysis lessens and the team grows steady.
One day, the torpedo hits again but nobody panics. Everyone acts, shoulders the load and trusts each other to hold the line.
That’s the moment you know your team is unstoppable.
Sharing problems doesn’t mean solving them.
Early in a product management career, it’s tempting to package every problem with a solution. It feels efficient and helpful but it can limit your team’s creativity. Presenting ready-made answers shifts focus from understanding the problem to critiquing your idea. This shortcut skips the messy, collaborative process where the best solutions often emerge.
Teams thrive when they tackle challenges together. Give them the problem—leave space for their brilliance.
Agility is misunderstood. True agility adapts to change without succumbing to chaos. It’s never about rushing decisions.
The best teams balance flexibility and structure. Agility thrives on collaboration, iterative progress and responsiveness — anchored by clear direction. Without this balance, chaos replaces speed and quality falls victim to a mirage of progress.
Agile isn’t a strategy. It’s how strategies breathe.
Agile vs Strategy
Using no-reply emails puts up a barrier and can leave customers feeling ignored.
Instead, businesses should use email addresses that invite replies and ensure responses. It’s a simple way to build stronger relationships and gather valuable feedback.
When PMs and PDs overlap, clarity saves teams.
PMs and PDs often talk to customers, pitch ideas and think about UX. Overlap is natural but not all tasks require both voices. If PDs excel at crafting intuitive experiences, PMs should step back and refocus. Their time is better spent refining strategy and building cross-team alignment.
Stepping back isn’t losing control—it’s enabling brilliance.
Working at a small tech business shapes your career differently.
You’ll juggle strategy, customer service, product development and beyond. The small team demands versatility, immersing you in every aspect of the business. This hands-on experience accelerates learning and builds skills quicker than larger organisations ever could.
For ambitious minds craving growth and variety, nothing compares.
Not everything broken is yours to fix. But recognising and communicating the problem? That’s on you.
Taking responsibility doesn't mean solving every issue yourself. It means speaking up, sharing the truth and ensuring others are aware. Ignoring the cracks won't make them disappear.
You can't fix what you refuse to see—or refuse to say.
Dedicated QA creates more problems than it solves.
When a dev team owns quality, accountability stays in the right hands. Bugs are fewer, fixes are faster and processes tighten.
Introducing dedicated QA shifts that balance.
Developers grow complacent, relying on testers to catch mistakes. Tools diverge, creating inefficiencies. QA often duplicates what devs should already handle.
Quality isn’t a separate role. It’s a shared responsibility embedded in every line of code.