From Late-Night “What If…?” to AI Code Foundry
Why I’m launching a live, community-driven lab for coding with AI
Read the post →Frameworks, anti-patterns, and the recurring shapes I see when teams have stopped shipping at the rate their business needs. Updated as things come up.
Scared to deploy on Fridays? That fear signals deeper issues in your delivery system. Fix the root cause and make every day safe to ship.
AI is accelerating your engineers, but it’s also surfacing every flaw in your software delivery process – and the real skill now is building a team that can continuously find and fix the next bottleneck.
“Rational Astrology” shows how we adopt flawed security and dev practices that feel safe but aren’t actually effective.
How did Agile, Scrum, and tech debt go from helpful ideas to daily headaches? Discover why this happens and how incremental development can fix it.
Is your team constantly grumpy? That’s a key sign of overload. Other symptoms? Slow features, unfinished tasks, bugs, complaints. Fix the basics first.
Writing code is only half the battle. If it’s not shipped, tested, and performing in production, it’s not done. Value comes from delivery.
Constantly busy with your software project but seeing little progress? Focus on mastering iterations, quality, and scaling. Build momentum by fixing the real bottleneck.
Stuck with software headaches? Learn how to turn your tech team from a blocker into a competitive advantage with practical strategies.
Four reasons why platform team initiatives fail (and what you can do about it)
Finding your team or company limited by software development? How do you start getting unstuck?
Strategies on how to deal with this common objection on setting goals & targets.
The universe is out to get you, and entropy is your enemy. Things decay and change, and you must keep up with the world. Entropy will keep increasing on you. You have to construct the systems to hold everything together.
How to start making progress towards an effective software engineering team by focusing on incremental, consistent output.
I'm excited to share some news with you. I'm launching a brand new course called "Bottlenecks to Breakthroughs: Master Effective Software Delivery". This is a fresh adventure for me, and while I'm super thrilled, I won't lie, there's a bit of butterflies-in-the-stomach feeling too.
I'm back for another year of "Advent of Code" challenges! 🌟 If you haven't heard of it, it's a month-long coding frenzy where people tackle a fresh two-part problem every day. The thrill? Competing against your friends (or peers worldwide) for the speediest solution and bragging rights. 🏁
If you're aiming for your teams to deliver value rapidly, fostering their autonomy is key. Consider this: frequent cross-team meetings and decision-making processes can hinder swift progress. A logical starting point involves examining fundamental constraints...
Ever heard these statements in your team meetings? ➢ “For this project, it makes sense to have a long running branch because…” ➢ “It does not make sense to have automated tests for this code, because…” ➢ “We need to deploy this service manually because…” ...
I upgraded some tooling yesterday, and since it affected the code writing process (very far “left”), I was ~50% faster to getting my code to be good with the new tooling. Which leaves me wondering why I didn’t do that sooner… 🤯
Technical debt is often likened to a credit card 💳: borrow now, pay back later. The key notion is that tech debt is something you eventually pay back. But here's the catch: it's rarely repaid. 😮💨
Understanding cognitive load is crucial in software engineering, yet its impact is often neglected .
There is a paradox in planning, where the most crucial decisions often need to be made early when you possess the least amount of information. 👉 “Strategic Procrastination” thus can be a counterintuitive yet effective strategy. Here's how it can work for you...
In the realm of building scalable systems and architectures, a common focus is often on increasing transactions per second. However, this narrow perspective can occasionally lead us into a corner, especially when other dimensions of scalability demand attention.
I once owned a Cessna R182 🛩️ . It was a 4-seater plane, capable of 150 knots, equipped with countless knobs and switches. Flying it was a ton of fun, and it came with a myriad of checklists: preflight, run-up, take-off, climbing, landing, emergencies, and more.
I've been observing the rising trend of Low Code/No Code solutions in software development. While these tools hold promise for certain applications, I've grown increasingly cautious about their limitations, especially for anything beyond the simplest engineering tasks.
Once upon a time, in the midst of a sprint gone sideways, a debate arose 📣. One voice attributed the chaos to not having detailed enough specs. Another argued for tighter sprint acceptance criteria. 👉 But here's the thing: these are often just surface symptoms of deeper, more complex challenges.
Ever feel like writing documentation is a chore? Think again! It's a hidden gem in our workflow, and here's why...
📘 Every software engineer should read Kent Beck's new book, "Tidy First". Here's why...
While reviewing a pull request recently, I encountered an interesting scenario: The pull request seemed pretty routine...
Last time I was kiting, this past summer, my wetsuit legs were curling up and my legs were getting sunburned. It was a small problem, but it was there, nagging at the back of my mind. "If only this were fixed, everything would be just right."
Simplification isn't just a convenience in our intricate world; it's a necessity for tackling complex issues. Frameworks are the strategic tools that help us make sense of chaos. They're not just theoretical–they're practical, insightful, and incredibly adaptable. Here’s how...
In the tech industry, we pride ourselves on optimization, but let's face it: we might be optimizing for the wrong thing. While traditional industries repeat tried-and-tested templates, in software development, there's no template for innovation.
Discover productivity's open secret: WIP limits can elevate your team's efficiency to new levels. These limits aren't just about starting projects–they're about finishing them. 🛠
A bit cynical? That was my first thought too when I stumbled upon this saying in a recent podcast. It struck a chord, and though it made me wince initially, I couldn't shake it off. It kept buzzing in my head, demanding attention. 🦟
I'm writing this post with a heart full of gratitude and a mix of emotions, as I bid farewell to a place I've called my professional home for an incredible journey.
Wanted to post something truly scary on this spooky day, and what’s the most terrifying thing I could think of? A Gantt chart. 😱
Today, I find myself thinking about #ORMs (Object-Relational Mappers). It's a complicated relationship, to say the least – love them or hate them? - something akin to a roller coaster of emotions. 🎢
Thrilled to share my somewhat recent read - "Good Strategy, Bad Strategy" by Richard Rumelt: an insightful read that breaks down the intricacies of effective strategy formulation.
Embarking on the DevOps journey often brings many into contact with Westrum’s typology of organizational cultures–a compelling framework that sheds light on how different organizations respond to failure. The paper is a must-read and you can find it linked below.
A CMU professor of mine once asked our class: "Is McDonald's considered 'quality food'?" 🍔 Now, before we dive into the great burger debate, let’s unpack what he really meant by 'quality....
We write software for an uncertain world. From agile development to progressive delivery, we've built software delivery practices around the assumption that we'll build the wrong thing and we'll build it wrong. We optimize for fast feedback and adjust on the fly. But how do you architect a system...
Monoliths or Microservices? While there's no one-size-fits-all answer, countless articles and resources guide us in making that decision for our specific needs.
Ever felt that even two priorities can feel overwhelming? Setting priorities isn't just about listing what you're actively focusing on ✅. It's equally about recognizing and accepting what you're deliberately putting on hold ‼️.
While the critical path is fundamental, it's not the sole factor that can derail a project. In fact, there's a two more silent saboteurs: dependencies and focus.
I've developed a bit of an aversion to planning. A "five-year plan" seems laughable & even a one-year plan feels disconnected from reality. There are moments when looking ahead is necessary. How can we strike a balance? What are the strategies to navigate this challenge? Let's explore!
Ever heard the metaphor comparing software development to building a house? It's a common analogy, but here's my take on it:
Every coder worth their salt knows the sacred mantra: DRY - "Do Not Repeat Yourself". It's chanted in nearly every coding guide, textbook, and even by those bearded coding wizards in the corner cubicle. While it's hailed as a cardinal rule, can one ever overdose on such wisdom?
Tech debt is like a boat with water; you slow down bailing water (fixing bugs) and even more plugging holes (refactoring). Measure it using proxy metrics (defects, outages, velocity) and ensure the team understands this model for better prioritization.