<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Micah Breedlove (druid628)</title>
    <description>The latest articles on DEV Community by Micah Breedlove (druid628) (@druid628).</description>
    <link>https://dev.to/druid628</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2849279%2F10202746-fcd7-4ef0-8709-d604e64feeb4.png</url>
      <title>DEV Community: Micah Breedlove (druid628)</title>
      <link>https://dev.to/druid628</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/druid628"/>
    <language>en</language>
    <item>
      <title>Archetype: The Gardener</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Tue, 23 Jun 2026 14:16:00 +0000</pubDate>
      <link>https://dev.to/druid628/archetype-the-gardener-1og8</link>
      <guid>https://dev.to/druid628/archetype-the-gardener-1og8</guid>
      <description>&lt;p&gt;Some engineers seem to come alive when they're handed a blank page.&lt;/p&gt;

&lt;p&gt;No legacy constraints, aging systems, or years of accumulated decisions. Just possibility.&lt;/p&gt;

&lt;p&gt;Where many engineers see uncertainty, the Gardener sees opportunity.&lt;/p&gt;

&lt;p&gt;They are often the first to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What if we tried this?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I wonder what would happen if we built it differently."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Gardeners are naturally drawn toward growth. Not growth in the organizational-chart sense. Growth in the sense of creating something that does not yet exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Engineers Who Cultivate Possibility
&lt;/h2&gt;

&lt;p&gt;Gardeners are often easy to recognize because they're constantly exploring possibilities.&lt;/p&gt;

&lt;p&gt;They're the people who walk away from a meeting and say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Oh, I have an idea."&lt;br&gt;
"Give me a couple days. I'll have you something."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A few days later they're back with a prototype, a proof of concept, or an entirely new way of looking at the problem.&lt;/p&gt;

&lt;p&gt;Not every idea succeeds.&lt;/p&gt;

&lt;p&gt;The Gardener understands that.&lt;/p&gt;

&lt;p&gt;They're simply willing to plant more seeds than most people.&lt;/p&gt;

&lt;p&gt;One of the easiest ways to recognize a Gardener is by their relationship with uncertainty.&lt;/p&gt;

&lt;p&gt;Many engineers become uncomfortable when requirements are vague. When nobody is entirely sure where they're headed or how they're going to get there, Gardeners often have the opposite reaction.&lt;/p&gt;

&lt;p&gt;Uncertainty feels like open ground. A place where experimentation is possible and where new ideas can take root.&lt;/p&gt;

&lt;p&gt;That doesn't mean Gardeners are reckless.&lt;/p&gt;

&lt;p&gt;The best Gardeners are thoughtful experimenters. They know not every seed will grow. They're simply willing to plant more of them than most people.&lt;/p&gt;

&lt;h2&gt;
  
  
  Growth Requires Cultivation
&lt;/h2&gt;

&lt;p&gt;People often imagine innovation as a lightning strike. A sudden moment of brilliance.&lt;/p&gt;

&lt;p&gt;In reality, most successful ideas emerge through cultivation.&lt;/p&gt;

&lt;p&gt;They begin as rough concepts.&lt;/p&gt;

&lt;p&gt;Then prototypes.&lt;/p&gt;

&lt;p&gt;Then experiments.&lt;/p&gt;

&lt;p&gt;Then small successes.&lt;/p&gt;

&lt;p&gt;Then larger wins.&lt;/p&gt;

&lt;p&gt;Gardeners thrive in this process.&lt;/p&gt;

&lt;p&gt;They enjoy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;exploration&lt;/li&gt;
&lt;li&gt;iteration&lt;/li&gt;
&lt;li&gt;discovery&lt;/li&gt;
&lt;li&gt;experimentation&lt;/li&gt;
&lt;li&gt;continuous refinement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What excites them isn't necessarily the finished product.&lt;/p&gt;

&lt;p&gt;It's watching something grow from an idea into a reality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gardeners Create Momentum
&lt;/h2&gt;

&lt;p&gt;One reason organizations need Gardeners is that growth rarely happens by accident.&lt;/p&gt;

&lt;p&gt;Someone has to be willing to venture into the unknown. Teams need someone to challenge assumptions.  There has to be someone who will ask whether there might be a better way.&lt;/p&gt;

&lt;p&gt;Gardeners create momentum.&lt;/p&gt;

&lt;p&gt;They push ideas forward.&lt;/p&gt;

&lt;p&gt;They discover opportunities.&lt;/p&gt;

&lt;p&gt;They help organizations avoid becoming trapped by their existing successes.&lt;/p&gt;

&lt;p&gt;Without Gardeners, many organizations become excellent at preserving what already exists and terrible at discovering what comes next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Growth Needs Foundations
&lt;/h2&gt;

&lt;p&gt;At first glance, Gardeners and Masons can look remarkably similar.&lt;/p&gt;

&lt;p&gt;Both are usually excited by what comes next.&lt;/p&gt;

&lt;p&gt;Both prefer creating over maintaining.&lt;/p&gt;

&lt;p&gt;Both spend much of their time thinking about the future.&lt;/p&gt;

&lt;p&gt;The difference lies in what they're trying to create. A Gardener cultivates growth while a Mason creates stability.&lt;/p&gt;

&lt;p&gt;A Gardener sees an empty field and imagines what could grow there.&lt;/p&gt;

&lt;p&gt;A Mason sees the same field and wonders whether the ground can support it.&lt;/p&gt;

&lt;p&gt;Neither perspective is sufficient on its own because growth without foundations becomes fragile.&lt;/p&gt;

&lt;p&gt;Foundations without growth become monuments to unrealized potential.&lt;/p&gt;

&lt;p&gt;The strongest organizations understand the importance of both.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Danger of Endless Planting
&lt;/h2&gt;

&lt;p&gt;Like every archetype, Gardeners have failure modes.&lt;/p&gt;

&lt;p&gt;A Gardener can become so excited about new possibilities that they lose interest in tending existing ones.&lt;/p&gt;

&lt;p&gt;The next idea is always more exciting than the current implementation.&lt;/p&gt;

&lt;p&gt;The next project is always more interesting than maintenance.&lt;/p&gt;

&lt;p&gt;The next experiment is always more appealing than refinement.&lt;/p&gt;

&lt;p&gt;Left unchecked, this can create organizations filled with unfinished initiatives and abandoned experiments.&lt;/p&gt;

&lt;p&gt;Healthy Gardeners understand that growth requires more than planting.&lt;/p&gt;

&lt;p&gt;It also requires cultivation.&lt;/p&gt;

&lt;p&gt;The goal isn't to start everything.&lt;/p&gt;

&lt;p&gt;The goal is to help the right things grow.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Future Doesn't Build Itself
&lt;/h2&gt;

&lt;p&gt;One reason I wanted to include the Gardener in this series is because growth-oriented engineers are often misunderstood.&lt;/p&gt;

&lt;p&gt;Organizations frequently celebrate outcomes while overlooking the people who discovered the opportunity in the first place.&lt;/p&gt;

&lt;p&gt;The product gets celebrated.&lt;/p&gt;

&lt;p&gt;The revenue gets celebrated.&lt;/p&gt;

&lt;p&gt;The success gets celebrated.&lt;/p&gt;

&lt;p&gt;What often goes unnoticed is the person who first looked at an empty patch of ground and imagined something growing there.&lt;/p&gt;

&lt;p&gt;Somewhere inside every successful organization, you'll usually find a few Gardeners.&lt;/p&gt;

&lt;p&gt;They're asking uncomfortable questions.&lt;/p&gt;

&lt;p&gt;Exploring uncertain paths.&lt;/p&gt;

&lt;p&gt;Planting ideas that may not bear fruit for months—or years.&lt;/p&gt;

&lt;p&gt;Most won't succeed.&lt;/p&gt;

&lt;p&gt;A few will change everything.&lt;/p&gt;

&lt;p&gt;In the next article, we'll look at The Blacksmith—the engineers who restore durability and strengthen systems that others might be ready to abandon.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>engineeringleadership</category>
      <category>engineeringculture</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Archetype: The Mason</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Wed, 17 Jun 2026 17:18:40 +0000</pubDate>
      <link>https://dev.to/druid628/archetype-the-mason-419b</link>
      <guid>https://dev.to/druid628/archetype-the-mason-419b</guid>
      <description>&lt;p&gt;Every successful structure begins with work most people will never notice.&lt;/p&gt;

&lt;p&gt;The foundation disappears beneath the building. The road disappears beneath the wagon. The bridge becomes so familiar that people forget it was ever built. Yet everything that comes later depends on those early decisions.&lt;/p&gt;

&lt;p&gt;Software is no different.&lt;/p&gt;

&lt;p&gt;Spend enough time around engineers, and you'll notice that people are naturally drawn toward different kinds of problems.&lt;/p&gt;

&lt;p&gt;Some enjoy building products.&lt;/p&gt;

&lt;p&gt;Others thrive on experimentation and growth.&lt;/p&gt;

&lt;p&gt;Masons, however, are fascinated by what sits underneath everything else.&lt;/p&gt;

&lt;p&gt;Their attention gravitates toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture&lt;/li&gt;
&lt;li&gt;platforms&lt;/li&gt;
&lt;li&gt;infrastructure&lt;/li&gt;
&lt;li&gt;domain models&lt;/li&gt;
&lt;li&gt;developer tooling&lt;/li&gt;
&lt;li&gt;foundational systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While others are thinking about what they're building, the Mason is often thinking about what future teams will build on top of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Engineers Who Build For What Comes Next
&lt;/h2&gt;

&lt;p&gt;One of the easiest ways to recognize a Mason is by the questions they ask.&lt;/p&gt;

&lt;p&gt;When a new initiative begins, most conversations revolve around features, timelines, and deliverables.&lt;/p&gt;

&lt;p&gt;Masons tend to drift somewhere else entirely.&lt;/p&gt;

&lt;p&gt;Rather than asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What are we building?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;they often find themselves asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What will everything else be built on?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That subtle shift in perspective is what pulls them toward frameworks, platforms, shared services, and architectural foundations.&lt;/p&gt;

&lt;p&gt;They're not ignoring the product.&lt;/p&gt;

&lt;p&gt;They're thinking a few layers beneath it.&lt;/p&gt;

&lt;p&gt;Long before the first feature is delivered, they're already considering what kind of structure will support the work that follows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Masons Create Leverage
&lt;/h2&gt;

&lt;p&gt;Foundation work can be difficult to appreciate because its value is rarely immediate.&lt;/p&gt;

&lt;p&gt;Most organizations know how to celebrate a product launch.&lt;/p&gt;

&lt;p&gt;They know how to celebrate a feature release.&lt;/p&gt;

&lt;p&gt;Customer feedback shows up on dashboards and in meetings.&lt;/p&gt;

&lt;p&gt;A well-designed platform, on the other hand, often disappears into the background.&lt;/p&gt;

&lt;p&gt;Ironically, that's usually a sign it is doing its job.&lt;/p&gt;

&lt;p&gt;The strongest Masons create leverage.&lt;/p&gt;

&lt;p&gt;They invest time in things that make future work easier, faster, safer, or more consistent.&lt;/p&gt;

&lt;p&gt;A deployment platform.&lt;/p&gt;

&lt;p&gt;A shared authentication system.&lt;/p&gt;

&lt;p&gt;An internal framework.&lt;/p&gt;

&lt;p&gt;A domain model that allows multiple teams to move in the same direction.&lt;/p&gt;

&lt;p&gt;At first, it can look like very little is happening.&lt;/p&gt;

&lt;p&gt;Then suddenly dozens of engineers are moving faster because the foundation is there.&lt;/p&gt;

&lt;p&gt;The Mason's work often appears expensive right up until everyone starts building on top of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenge of Building Ahead
&lt;/h2&gt;

&lt;p&gt;One challenge Masons often face is that foundation work can be difficult to justify before its benefits become visible.&lt;/p&gt;

&lt;p&gt;The value of a road becomes obvious once people are traveling on it.&lt;/p&gt;

&lt;p&gt;The value of a bridge becomes obvious once people are crossing it.&lt;/p&gt;

&lt;p&gt;Before then, all anyone sees is construction.&lt;/p&gt;

&lt;p&gt;This can create tension between Masons and the rest of an organization.&lt;/p&gt;

&lt;p&gt;While everyone else is focused on the next visible outcome, the Mason is often investing in capabilities that may not pay dividends for months—or even years.&lt;/p&gt;

&lt;p&gt;As a result, Masons sometimes find themselves answering the same question repeatedly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Why are we spending time building this?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The irony, of course, is that the best foundation work often becomes so successful that people eventually forget there was a debate in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  They Are Building for People They May Never Meet
&lt;/h2&gt;

&lt;p&gt;One of the things I admire most about strong Masons is that they are comfortable creating value they may never personally realize.&lt;/p&gt;

&lt;p&gt;Historically, a mason might spend years constructing roads, bridges, foundations, walls, aqueducts, or public buildings.&lt;/p&gt;

&lt;p&gt;The people who benefited most from that work often came later.&lt;/p&gt;

&lt;p&gt;Software Masons think similarly.&lt;/p&gt;

&lt;p&gt;Many derive satisfaction from knowing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Someone else will build something incredible on top of this."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That mindset often leads to a behavior that can seem unusual to other engineers.&lt;/p&gt;

&lt;p&gt;After spending months designing a platform, building a framework, or creating a shared service, many engineers naturally want to remain at the center of it.&lt;/p&gt;

&lt;p&gt;Masons are often different.&lt;/p&gt;

&lt;p&gt;Once the foundation is stable and future work has a place to stand, they're frequently happy to hand the work off and move on.&lt;/p&gt;

&lt;p&gt;Their satisfaction comes less from owning the structure and more from knowing the structure can now support others.&lt;/p&gt;

&lt;p&gt;In fact, some become restless if they stay too long.&lt;/p&gt;

&lt;p&gt;Their attention naturally drifts toward the next foundation, the next platform, or the next piece of infrastructure that doesn't exist yet.&lt;/p&gt;

&lt;p&gt;This isn't a lack of commitment.&lt;/p&gt;

&lt;p&gt;It's simply where they create the most value.&lt;/p&gt;

&lt;p&gt;The Mason's work was never the building itself.&lt;/p&gt;

&lt;p&gt;It was making the building possible.&lt;/p&gt;

&lt;p&gt;The reward is not ownership.&lt;/p&gt;

&lt;p&gt;The reward is enablement.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Danger of Building Forever
&lt;/h2&gt;

&lt;p&gt;Like every archetype, Masons have failure modes.&lt;/p&gt;

&lt;p&gt;A Mason can become so focused on future possibilities that they never reach the present.&lt;/p&gt;

&lt;p&gt;Every system can be made more flexible.&lt;/p&gt;

&lt;p&gt;Every platform can be made more extensible.&lt;/p&gt;

&lt;p&gt;Every foundation can be made stronger.&lt;/p&gt;

&lt;p&gt;At some point, however, something must be built on top of it.&lt;/p&gt;

&lt;p&gt;Organizations sometimes joke about engineers who spend six months building a framework to avoid writing a two-week feature.&lt;/p&gt;

&lt;p&gt;Every joke contains a warning.&lt;/p&gt;

&lt;p&gt;The goal of a foundation is not the foundation itself.&lt;/p&gt;

&lt;p&gt;The goal is what becomes possible because it exists.&lt;/p&gt;

&lt;p&gt;Healthy Masons understand this balance.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Builders Beneath the Builders
&lt;/h2&gt;

&lt;p&gt;One of the reasons I wanted to include the Mason in this series is because foundation work is often underappreciated.&lt;/p&gt;

&lt;p&gt;When products succeed, people celebrate the product.&lt;/p&gt;

&lt;p&gt;When teams move faster, people celebrate the velocity.&lt;/p&gt;

&lt;p&gt;When organizations scale, people celebrate the growth.&lt;/p&gt;

&lt;p&gt;Few people stop to ask what made those outcomes possible in the first place.&lt;/p&gt;

&lt;p&gt;But somewhere underneath every thriving technical organization, you'll usually find the work of a Mason.&lt;/p&gt;

&lt;p&gt;Perhaps not visible.&lt;/p&gt;

&lt;p&gt;Perhaps not celebrated.&lt;/p&gt;

&lt;p&gt;But supporting everything above it nonetheless.&lt;/p&gt;

&lt;p&gt;The most successful foundations are often invisible.&lt;/p&gt;

&lt;p&gt;We rarely notice the roads we travel, the bridges we cross, or the infrastructure that quietly supports our daily lives.&lt;/p&gt;

&lt;p&gt;Software is no different.&lt;/p&gt;

&lt;p&gt;In the next article, we'll look at The Gardener—the engineers who cultivate growth and help new ideas take root.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>engineeringleadership</category>
      <category>engineeringculture</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>The Five Engineering Archetypes</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Tue, 02 Jun 2026 20:51:34 +0000</pubDate>
      <link>https://dev.to/druid628/the-five-engineering-archetypes-290e</link>
      <guid>https://dev.to/druid628/the-five-engineering-archetypes-290e</guid>
      <description>&lt;p&gt;The software industry has a strange habit of pretending there is only one correct kind of engineer.&lt;/p&gt;

&lt;p&gt;Depending on the era, we call them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;rockstar&lt;/li&gt;
&lt;li&gt;ninjas&lt;/li&gt;
&lt;li&gt;10x developers&lt;/li&gt;
&lt;li&gt;staff-plus unicorns&lt;/li&gt;
&lt;li&gt;AI-native engineers&lt;/li&gt;
&lt;li&gt;or whatever the latest LinkedIn post insists will save civilization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But after more than two decades in software, I've become increasingly convinced that healthy engineering organizations are not built around a single ideal engineer.&lt;/p&gt;

&lt;p&gt;They are built around complementary strengths.&lt;/p&gt;

&lt;p&gt;Some engineers excel at building foundations.&lt;/p&gt;

&lt;p&gt;Some cultivate growth.&lt;/p&gt;

&lt;p&gt;Some restore aging systems.&lt;/p&gt;

&lt;p&gt;Some thrive during crises.&lt;/p&gt;

&lt;p&gt;Others bring order and cohesion to growing complexity.&lt;/p&gt;

&lt;p&gt;The longer I've worked in this industry, the more I've noticed that these engineers often resemble older craft archetypes more than modern corporate titles.&lt;/p&gt;

&lt;p&gt;Not because software engineering is "just like blacksmithing."&lt;/p&gt;

&lt;p&gt;But because civilizations have always depended on different kinds of specialists.&lt;/p&gt;

&lt;p&gt;Builders.&lt;/p&gt;

&lt;p&gt;Cultivators.&lt;/p&gt;

&lt;p&gt;Repairers.&lt;/p&gt;

&lt;p&gt;Protectors.&lt;/p&gt;

&lt;p&gt;Organizers.&lt;/p&gt;

&lt;p&gt;Modern software organizations are no different.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond the Mythical Engineer
&lt;/h2&gt;

&lt;p&gt;One of the recurring themes in engineering culture is the search for a mythical engineer.&lt;/p&gt;

&lt;p&gt;The person who can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;innovate&lt;/li&gt;
&lt;li&gt;architect&lt;/li&gt;
&lt;li&gt;modernize&lt;/li&gt;
&lt;li&gt;lead&lt;/li&gt;
&lt;li&gt;rescue failing systems&lt;/li&gt;
&lt;li&gt;coordinate teams&lt;/li&gt;
&lt;li&gt;mentor others&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and yet somehow do it all simultaneously&lt;/p&gt;

&lt;p&gt;The longer I stay in this profession, the less convinced I am that such people exist.&lt;/p&gt;

&lt;p&gt;At least not sustainably.&lt;/p&gt;

&lt;p&gt;What I do see are engineers who consistently create value in different ways.&lt;/p&gt;

&lt;p&gt;Not because they are better than their peers.&lt;/p&gt;

&lt;p&gt;Because they are drawn toward different kinds of problems.&lt;/p&gt;

&lt;p&gt;Over time, I found myself grouping many of those tendencies into five broad archetypes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Mason&lt;/li&gt;
&lt;li&gt;The Gardener&lt;/li&gt;
&lt;li&gt;The Blacksmith&lt;/li&gt;
&lt;li&gt;The Bear Killer&lt;/li&gt;
&lt;li&gt;The Chef&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are not personality types.&lt;/p&gt;

&lt;p&gt;They are not measures of seniority.&lt;/p&gt;

&lt;p&gt;And they are certainly not measures of worth.&lt;/p&gt;

&lt;p&gt;They are simply different ways engineers contribute to the health and survival of technical organizations.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Mason
&lt;/h2&gt;

&lt;p&gt;The Mason builds foundations.&lt;/p&gt;

&lt;p&gt;These engineers are often drawn toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;platforms&lt;/li&gt;
&lt;li&gt;frameworks&lt;/li&gt;
&lt;li&gt;domain models&lt;/li&gt;
&lt;li&gt;infrastructure&lt;/li&gt;
&lt;li&gt;architecture&lt;/li&gt;
&lt;li&gt;and foundational systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What makes them unique is that much of their work exists to support things that have not been built yet.&lt;/p&gt;

&lt;p&gt;A Mason may spend months building something that only becomes valuable when dozens of other engineers begin building on top of it.&lt;/p&gt;

&lt;p&gt;They think in terms of structure, stability, and permanence.&lt;/p&gt;

&lt;p&gt;Where others see a project, the Mason sees the ground beneath it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Gardener
&lt;/h2&gt;

&lt;p&gt;The Gardener cultivates growth.&lt;/p&gt;

&lt;p&gt;These engineers thrive in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;greenfield projects&lt;/li&gt;
&lt;li&gt;experimentation&lt;/li&gt;
&lt;li&gt;discovery&lt;/li&gt;
&lt;li&gt;iteration&lt;/li&gt;
&lt;li&gt;and possibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They are often the first to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What if we tried this?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Gardeners create conditions where new ideas can take root and grow.&lt;/p&gt;

&lt;p&gt;They are comfortable operating in uncertainty and often help organizations discover opportunities that were not obvious beforehand.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Blacksmith
&lt;/h2&gt;

&lt;p&gt;The Blacksmith restores durability.&lt;/p&gt;

&lt;p&gt;These engineers are often found working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;modernization efforts&lt;/li&gt;
&lt;li&gt;technical debt&lt;/li&gt;
&lt;li&gt;infrastructure improvements&lt;/li&gt;
&lt;li&gt;performance bottlenecks&lt;/li&gt;
&lt;li&gt;and aging systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where others see something outdated, the Blacksmith sees something worth repairing.&lt;/p&gt;

&lt;p&gt;They understand pressure, stress, and failure modes.&lt;/p&gt;

&lt;p&gt;More importantly, they understand how to strengthen systems so they can continue serving the people who depend on them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bear Killer
&lt;/h2&gt;

&lt;p&gt;The Bear Killer handles existential threats.&lt;/p&gt;

&lt;p&gt;Every organization eventually encounters problems that normal processes cannot solve.&lt;/p&gt;

&lt;p&gt;They come alive during: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Outages&lt;/li&gt;
&lt;li&gt;Critical failures&lt;/li&gt;
&lt;li&gt;Security incidents&lt;/li&gt;
&lt;li&gt;Impossible migrations&lt;/li&gt;
&lt;li&gt;High-pressure emergencies&lt;/li&gt;
&lt;li&gt;The problems no one can solve&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bear Killers are often the engineers who become calmer as pressure increases.&lt;/p&gt;

&lt;p&gt;They simplify chaos.&lt;br&gt;
Focus attention.&lt;br&gt;
Contain damage.&lt;br&gt;
And help organizations survive moments when everything feels uncertain.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Chef
&lt;/h2&gt;

&lt;p&gt;The Chef creates cohesion.&lt;/p&gt;

&lt;p&gt;As organizations grow, complexity grows with them.&lt;/p&gt;

&lt;p&gt;More teams.&lt;br&gt;
More systems.&lt;br&gt;
More dependencies.&lt;br&gt;
More moving pieces.&lt;/p&gt;

&lt;p&gt;The Chef understands how all those pieces fit together.&lt;/p&gt;

&lt;p&gt;They think in terms of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;timing&lt;/li&gt;
&lt;li&gt;coordination&lt;/li&gt;
&lt;li&gt;communication&lt;/li&gt;
&lt;li&gt;sequencing&lt;/li&gt;
&lt;li&gt;and flow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A Chef recognizes that successful systems require more than technical excellence.&lt;/p&gt;

&lt;p&gt;They require orchestration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Healthy Engineering Organizations Need All Five
&lt;/h2&gt;

&lt;p&gt;One of the mistakes engineering organizations often make is overvaluing whichever archetype happens to be fashionable at the moment.&lt;/p&gt;

&lt;p&gt;Startups often celebrate Gardeners.&lt;/p&gt;

&lt;p&gt;Large enterprises desperately need Blacksmiths.&lt;/p&gt;

&lt;p&gt;Crisis-heavy organizations become dependent on Bear Killers.&lt;/p&gt;

&lt;p&gt;Growing companies eventually discover the importance of Chefs.&lt;/p&gt;

&lt;p&gt;And many organizations fail to appreciate Masons until years after the foundations have already been laid.&lt;/p&gt;

&lt;p&gt;But healthy engineering cultures usually require all five.&lt;/p&gt;

&lt;p&gt;Because software systems are not static.&lt;/p&gt;

&lt;p&gt;They are born.&lt;br&gt;
They grow.&lt;br&gt;
They age.&lt;br&gt;
They fail.&lt;br&gt;
They evolve.&lt;/p&gt;

&lt;p&gt;And different engineers are naturally drawn toward different parts of that lifecycle.&lt;/p&gt;

&lt;p&gt;That diversity is not weakness.&lt;/p&gt;

&lt;p&gt;It is how technical civilizations survive.&lt;/p&gt;

&lt;p&gt;In the articles that follow, I want to explore each archetype individually, beginning with The Mason — the engineers who quietly build the foundations upon which entire technical organizations are constructed.&lt;/p&gt;

</description>
      <category>engineeringculture</category>
      <category>techleadership</category>
      <category>engineeringleadership</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>The Myth of the 10x Developer</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Wed, 27 May 2026 14:50:53 +0000</pubDate>
      <link>https://dev.to/druid628/the-myth-of-the-10x-developer-1ig5</link>
      <guid>https://dev.to/druid628/the-myth-of-the-10x-developer-1ig5</guid>
      <description>&lt;p&gt;The idea of the "10x developer" has been floating around the industry for years.&lt;/p&gt;

&lt;p&gt;Usually, it gets framed around speed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Someone who writes code faster.&lt;/li&gt;
&lt;li&gt;Ships more tickets.&lt;/li&gt;
&lt;li&gt;Pushes more commits.&lt;/li&gt;
&lt;li&gt;Produces more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Personally, I've never really liked that definition. &lt;/p&gt;

&lt;p&gt;Not because highly productive engineers don't exist. They absolutely do. But I think we've been measuring the wrong thing.&lt;/p&gt;

&lt;p&gt;The best engineers I've worked with were rarely the people writing the most code.&lt;/p&gt;

&lt;p&gt;In fact, sometimes they were writing less. Because a lot of their value came from preventing problems before they ever existed.&lt;/p&gt;

&lt;p&gt;They asked uncomfortable questions early and spotted assumptions no one else noticed. They challenged designs that "should probably be fine," and they saw downstream consequences before the rest of the room had even finished discussing the feature.&lt;/p&gt;

&lt;p&gt;And sometimes?&lt;/p&gt;

&lt;p&gt;They slowed things down.&lt;/p&gt;

&lt;p&gt;That part is important. Because speed and effectiveness are not always the same thing.&lt;/p&gt;

&lt;p&gt;I've seen engineers move incredibly fast, straight into bad decisions. I've seen teams optimize themselves directly into complexity.  &lt;/p&gt;

&lt;p&gt;I've even seen projects hit every sprint goal while quietly becoming increasingly hard to maintain.&lt;/p&gt;

&lt;p&gt;The best engineers I've worked with understood something deeper:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Working code is not the finish line.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A strong engineer thinks beyond:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Does this work?"&lt;/li&gt;
&lt;li&gt;"Did the tests pass?"&lt;/li&gt;
&lt;li&gt;"Can we ship it?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They think about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;maintainability&lt;/li&gt;
&lt;li&gt;operational cost&lt;/li&gt;
&lt;li&gt;onboarding friction&lt;/li&gt;
&lt;li&gt;future flexibility&lt;/li&gt;
&lt;li&gt;failure modes&lt;/li&gt;
&lt;li&gt;team comprehension&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They think in trade-offs.&lt;/p&gt;

&lt;p&gt;That's where the real multiplier effect comes from. Not typing speed. Not commit count. Not how quickly someone can scaffold a feature.&lt;/p&gt;

&lt;p&gt;The real multiplier is reducing future pain.&lt;/p&gt;

&lt;p&gt;Sometimes that looks like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;preventing a rewrite&lt;/li&gt;
&lt;li&gt;simplifying a design&lt;/li&gt;
&lt;li&gt;catching a scalability issue early&lt;/li&gt;
&lt;li&gt;asking the question no one else thought to ask&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And sometimes it looks like saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I think we're solving the wrong problem."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That kind of engineering value is hard to measure.&lt;/p&gt;

&lt;p&gt;Mostly because the best outcomes are often invisible.&lt;/p&gt;

&lt;p&gt;Nobody sees:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the outage that never happened&lt;/li&gt;
&lt;li&gt;the incident that was avoided&lt;/li&gt;
&lt;li&gt;the migration that didn't become necessary&lt;/li&gt;
&lt;li&gt;the complexity that never entered the system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But experienced engineers know those things matter.&lt;/p&gt;

&lt;p&gt;A lot.&lt;/p&gt;

&lt;p&gt;Ironically, AI has made me think about this even more. Because AI can absolutely make people faster. I've seen it firsthand. But faster is only useful if the direction is correct.&lt;/p&gt;

&lt;p&gt;If anything, the rise of AI makes strong engineering judgment even more valuable.&lt;/p&gt;

&lt;p&gt;Because now the bottleneck isn't always code production.&lt;/p&gt;

&lt;p&gt;Sometimes the bottleneck is knowing what should be built in the first place.&lt;/p&gt;

&lt;p&gt;The best engineers I know can work in multiple languages, frameworks, and environments.&lt;/p&gt;

&lt;p&gt;But the thing that makes them valuable isn't syntax.&lt;/p&gt;

&lt;p&gt;It's perspective.&lt;/p&gt;

&lt;p&gt;They can look at a problem from every angle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;technical&lt;/li&gt;
&lt;li&gt;operational&lt;/li&gt;
&lt;li&gt;organizational&lt;/li&gt;
&lt;li&gt;long-term&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They don't just understand how to build systems. They understand how systems fail.&lt;/p&gt;

&lt;p&gt;That's the skill.&lt;/p&gt;

&lt;p&gt;And no productivity metric fully captures it.&lt;/p&gt;

&lt;p&gt;So when people talk about "10x developers"...&lt;/p&gt;

&lt;p&gt;I think they're pointing at something real. But I think they're measuring the wrong thing.&lt;/p&gt;

&lt;p&gt;The best engineers aren't the ones producing 10x more code.&lt;/p&gt;

&lt;p&gt;They're the ones creating 10x less chaos.&lt;/p&gt;

</description>
      <category>career</category>
      <category>discuss</category>
      <category>productivity</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>🔐 Working with Private Symfony Recipes</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Thu, 21 May 2026 14:25:52 +0000</pubDate>
      <link>https://dev.to/druid628/working-with-private-symfony-recipes-4pkp</link>
      <guid>https://dev.to/druid628/working-with-private-symfony-recipes-4pkp</guid>
      <description>&lt;h2&gt;
  
  
  Private Symfony Recipes (or: how I stopped repeating myself)
&lt;/h2&gt;

&lt;p&gt;I got tired of setting up the same things in every Symfony project.&lt;/p&gt;

&lt;p&gt;Same configs.&lt;br&gt;
Same services.&lt;br&gt;
Same little pieces of glue code that aren’t hard—but add up.&lt;/p&gt;

&lt;p&gt;Symfony recipes solve a lot of this.&lt;/p&gt;

&lt;p&gt;Until you need your own.&lt;/p&gt;



&lt;p&gt;At some point I decided:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Surely there’s a way to do this privately.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I sat down one evening and started digging.&lt;/p&gt;

&lt;p&gt;Docs open.&lt;br&gt;
Composer configs half-understood.&lt;br&gt;
A couple of tabs that &lt;em&gt;looked&lt;/em&gt; promising but didn’t quite connect.&lt;/p&gt;

&lt;p&gt;And for a while… nothing clicked.&lt;/p&gt;

&lt;p&gt;I remember getting to the point where I was about ready to reach out to someone a lot smarter than me and just ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Alright, what am I missing here?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And then it finally clicked.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧠 The idea
&lt;/h2&gt;

&lt;p&gt;Symfony recipes aren’t magic.&lt;/p&gt;

&lt;p&gt;They’re just:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A repository&lt;/li&gt;
&lt;li&gt;With a specific structure&lt;/li&gt;
&lt;li&gt;That Flex knows how to read&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of relying only on the public recipes repo, you can point your project at your own.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;private recipes repository&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  🪓 The basic setup (no fluff)
&lt;/h2&gt;

&lt;p&gt;At a high level, you need:&lt;/p&gt;
&lt;h3&gt;
  
  
  1. A recipes repository
&lt;/h3&gt;

&lt;p&gt;This is just a git repo with a structure like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;recipes/
  vendor/
    package/
      version/
        manifest.json
        config/
        src/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important piece is the &lt;code&gt;manifest.json&lt;/code&gt;.&lt;br&gt;
That’s what tells Symfony Flex what to do.&lt;/p&gt;


&lt;h3&gt;
  
  
  2. A manifest
&lt;/h3&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"copy-from-recipe"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"config/"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"%CONFIG_DIR%/"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is where you define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;files to copy&lt;/li&gt;
&lt;li&gt;configs to apply&lt;/li&gt;
&lt;li&gt;environment setup&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. Tell Composer where to find it
&lt;/h3&gt;

&lt;p&gt;In your project’s &lt;code&gt;composer.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"extra"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"symfony"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"endpoint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"https://your-private-recipes-repo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"flex://defaults"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Order matters. Your repo goes first.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Install your package
&lt;/h3&gt;

&lt;p&gt;Now when you require your package:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer require your/package
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Symfony Flex will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;check your private repo first&lt;/li&gt;
&lt;li&gt;apply your recipe&lt;/li&gt;
&lt;li&gt;then fall back to defaults if needed&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 What I actually use this for
&lt;/h2&gt;

&lt;p&gt;This is where it gets useful.&lt;/p&gt;

&lt;p&gt;My private recipes handle things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shared configuration across projects&lt;/li&gt;
&lt;li&gt;Common service wiring&lt;/li&gt;
&lt;li&gt;Internal conventions I don’t want to rethink every time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Alright, how did I set this up last time?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It becomes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“composer require → done”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ⚠️ The gotchas (aka the part that took way too long)
&lt;/h2&gt;

&lt;p&gt;A few things that tripped me up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The structure has to be &lt;em&gt;exactly right&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;The endpoint configuration is not intuitive the first time&lt;/li&gt;
&lt;li&gt;Debugging why a recipe didn’t apply is… not fun&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If it’s not working, check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is your repo reachable?&lt;/li&gt;
&lt;li&gt;Is the path correct?&lt;/li&gt;
&lt;li&gt;Is the version directory matching what Flex expects?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of my time wasn’t spent building this.&lt;/p&gt;

&lt;p&gt;It was spent figuring out why it &lt;em&gt;wasn’t&lt;/em&gt; working.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ The payoff
&lt;/h2&gt;

&lt;p&gt;Once it clicked, everything got easier.&lt;/p&gt;

&lt;p&gt;New project?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Require package&lt;/li&gt;
&lt;li&gt;Config shows up&lt;/li&gt;
&lt;li&gt;Services wired&lt;/li&gt;
&lt;li&gt;Done&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;digging through old repos&lt;/li&gt;
&lt;li&gt;copying configs manually&lt;/li&gt;
&lt;li&gt;forgetting one small but important detail&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;This isn’t a flashy feature.&lt;/p&gt;

&lt;p&gt;It’s not something you demo.&lt;/p&gt;

&lt;p&gt;But it’s one of those things that quietly saves time every single time you start something new.&lt;/p&gt;

&lt;p&gt;And if you’ve ever found yourself thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I’ve done this before… why am I doing it again?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This might be worth the evening it takes to figure out.&lt;/p&gt;

&lt;p&gt;Even if that evening is a little frustrating.&lt;/p&gt;

</description>
      <category>symfony</category>
      <category>softwareengineering</category>
      <category>php</category>
      <category>devex</category>
    </item>
    <item>
      <title>Why Ember Feels Natural to Backend Engineers</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Tue, 05 May 2026 12:30:00 +0000</pubDate>
      <link>https://dev.to/druid628/why-ember-feels-natural-to-backend-engineers-212o</link>
      <guid>https://dev.to/druid628/why-ember-feels-natural-to-backend-engineers-212o</guid>
      <description>&lt;p&gt;I’ve never really struggled to learn frontend frameworks.&lt;/p&gt;

&lt;p&gt;I’ve struggled to feel like I’m building something stable with them.&lt;/p&gt;

&lt;p&gt;Most of the time, I’m working on the backend.&lt;/p&gt;

&lt;p&gt;When I’m doing frontend work, it’s usually in bursts—building something out, proving an idea, or wiring up a system so it’s actually usable.&lt;/p&gt;

&lt;p&gt;A lot of times, I’m doing that solo.&lt;/p&gt;

&lt;p&gt;And every time I come back to frontend work, I run into the same problem.&lt;/p&gt;

&lt;p&gt;Everything has changed.&lt;/p&gt;

&lt;p&gt;The patterns are different.&lt;br&gt;
The tooling has shifted.&lt;br&gt;
The “right way” to do something is no longer the way it was the last time I touched it.&lt;/p&gt;




&lt;p&gt;So now, before I can even start building…&lt;/p&gt;

&lt;p&gt;I have to get spun back up.&lt;/p&gt;

&lt;p&gt;Again. I don’t have time for that.&lt;/p&gt;

&lt;p&gt;Sure, I could build my own set of patterns.&lt;/p&gt;

&lt;p&gt;Put together a little rapid development setup.&lt;br&gt;
Standardize how I do things.&lt;br&gt;
Create my own “mini framework” on top of whatever I’m using.&lt;/p&gt;

&lt;p&gt;But that only works until the next time I need it.&lt;/p&gt;

&lt;p&gt;Because by then, everything underneath it has changed again.&lt;/p&gt;

&lt;p&gt;That’s the cycle Ember breaks for me.&lt;/p&gt;




&lt;p&gt;I’ve picked Ember up, put it down, and come back to it multiple times over the years.&lt;/p&gt;

&lt;p&gt;And every time, I’m productive again in about an hour.&lt;/p&gt;

&lt;p&gt;Not because nothing changed.&lt;br&gt;
But because what changed made sense.&lt;/p&gt;

&lt;p&gt;The last time I spun something up in Ember, I realized Ember Data was on its way out.&lt;/p&gt;

&lt;p&gt;Warp Drive was coming in.&lt;/p&gt;

&lt;p&gt;In most frontend ecosystems, that’s a red flag.&lt;/p&gt;

&lt;p&gt;That’s a sign you’re about to spend time relearning something fundamental.&lt;/p&gt;

&lt;p&gt;But this wasn’t that.&lt;/p&gt;

&lt;p&gt;Warp Drive didn’t feel like a replacement.&lt;/p&gt;

&lt;p&gt;It felt like the next logical step.&lt;/p&gt;

&lt;p&gt;I didn’t have to rethink how everything worked.&lt;br&gt;
I didn’t have to throw away what I knew.&lt;br&gt;
I just… kept going.&lt;/p&gt;

&lt;p&gt;That’s the difference.&lt;/p&gt;




&lt;p&gt;Ember doesn’t optimize for constant reinvention.&lt;/p&gt;

&lt;p&gt;It optimizes for continuity.&lt;br&gt;
And as a backend engineer, that matters more than anything else.&lt;/p&gt;

&lt;p&gt;I’m used to systems where structure matters.&lt;br&gt;
Where things have a place.&lt;br&gt;
Where decisions you make today are still going to exist six months from now.&lt;/p&gt;

&lt;p&gt;Ember feels like that.&lt;/p&gt;




&lt;p&gt;It gives you a structure up front:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;routing that makes sense&lt;/li&gt;
&lt;li&gt;services that behave predictably&lt;/li&gt;
&lt;li&gt;a clear place for things to live&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It doesn’t ask you how you want to organize your application.&lt;br&gt;
It gives you a way to do it.&lt;/p&gt;

&lt;p&gt;And that’s not a limitation.&lt;/p&gt;

&lt;p&gt;That’s a relief.&lt;/p&gt;

&lt;p&gt;Because I don’t want to spend time deciding where things go.&lt;/p&gt;

&lt;p&gt;I want to build something.&lt;/p&gt;

&lt;p&gt;That’s where Ember really clicks for me.&lt;/p&gt;

&lt;p&gt;Most frontend frameworks give you flexibility.&lt;/p&gt;

&lt;p&gt;You can structure things however you want.&lt;br&gt;
Pick your tools.&lt;br&gt;
Define your patterns.&lt;/p&gt;

&lt;p&gt;And that sounds great.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Until you have to maintain it.&lt;/li&gt;
&lt;li&gt;Until you come back to it six months later.&lt;/li&gt;
&lt;li&gt;Until someone else has to figure out what you were thinking.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Flexibility solves the problem you have today.&lt;br&gt;
Consistency solves the problems you don’t know you’re going to have yet.&lt;/p&gt;

&lt;p&gt;Ember chooses consistency.&lt;/p&gt;




&lt;p&gt;It’s not perfect.&lt;/p&gt;

&lt;p&gt;Ember Data has its quirks.&lt;br&gt;
Adapters can feel like a maze sometimes.&lt;/p&gt;

&lt;p&gt;But the trade-offs are intentional.&lt;/p&gt;

&lt;p&gt;It’s not trying to be everything.&lt;br&gt;
It’s trying to be predictable.&lt;/p&gt;

&lt;p&gt;And that predictability compounds.&lt;/p&gt;

&lt;p&gt;I don’t need a framework that lets me do anything.&lt;/p&gt;

&lt;p&gt;I need one that helps me do the right thing consistently. I don’t want to rebuild my frontend architecture every time I start a project.&lt;/p&gt;

&lt;p&gt;I want to start building features.&lt;/p&gt;

&lt;p&gt;That’s why Ember feels natural to me.&lt;/p&gt;




&lt;p&gt;Not because it’s easier.&lt;br&gt;
Not because it’s simpler.&lt;br&gt;
But because it aligns with how I already think about building systems.&lt;/p&gt;

&lt;p&gt;And when a tool does that...&lt;/p&gt;

&lt;p&gt;you stop fighting it.&lt;/p&gt;

&lt;p&gt;You just build.&lt;/p&gt;

</description>
      <category>ember</category>
    </item>
    <item>
      <title>We're Not Hiring for Languages Anymore</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Tue, 28 Apr 2026 12:30:00 +0000</pubDate>
      <link>https://dev.to/druid628/were-not-hiring-for-languages-anymore-h1c</link>
      <guid>https://dev.to/druid628/were-not-hiring-for-languages-anymore-h1c</guid>
      <description>&lt;p&gt;I found myself wondering recently:&lt;br&gt;
Are job descriptions asking less about languages than they used to?&lt;/p&gt;

&lt;p&gt;So I went looking.&lt;br&gt;
I started going through postings to see if it was real…&lt;/p&gt;

&lt;p&gt;And the pattern showed up pretty quickly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Job descriptions aren't asking for languages as much.
&lt;/h2&gt;

&lt;p&gt;Instead, I'm seeing more emphasis on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;specific AI tools&lt;/li&gt;
&lt;li&gt;platforms&lt;/li&gt;
&lt;li&gt;workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Less:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"strong experience in X language"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;More:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"experience with [tool] or [AI-assisted development stack]"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's a shift. And I don't think it's accidental.&lt;/p&gt;

&lt;p&gt;AI has lowered the barrier to writing code. You don't need to know everything about a language to get something working anymore.&lt;/p&gt;

&lt;p&gt;That's powerful.&lt;/p&gt;

&lt;p&gt;But it also raises some questions.&lt;/p&gt;

&lt;p&gt;What Are We Optimizing For?&lt;/p&gt;

&lt;p&gt;If language expertise becomes less important, what replaces it?&lt;/p&gt;

&lt;p&gt;Because something always does.&lt;/p&gt;

&lt;p&gt;Right now, it looks like we're replacing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;deep understanding of a language&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;familiarity with tools that generate or assist with code&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's not inherently bad. &lt;br&gt;
But it changes how decisions get made.&lt;/p&gt;




&lt;h3&gt;
  
  
  Concern #1: Choosing the Right Tool
&lt;/h3&gt;

&lt;p&gt;If fewer people have deep language experience, then fewer people are equipped to evaluate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;trade-offs between languages&lt;/li&gt;
&lt;li&gt;long-term maintainability&lt;/li&gt;
&lt;li&gt;performance implications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The risk isn't that we pick a bad language.&lt;/p&gt;

&lt;p&gt;It's that we stop asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Is this the right language at all?"&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Concern #2: AI Bias Becomes Industry Bias
&lt;/h3&gt;

&lt;p&gt;AI tools don't treat all languages equally.&lt;/p&gt;

&lt;p&gt;Some are better supported. Better trained. More represented.&lt;/p&gt;

&lt;p&gt;I ran into this firsthand recently.&lt;/p&gt;

&lt;p&gt;I was exploring a project idea and decided to use AI as a sounding board. I'd already done most of the thinking—worked through trade-offs, had a direction in mind.&lt;/p&gt;

&lt;p&gt;But as I talked through the design, it kept nudging me.&lt;/p&gt;

&lt;p&gt;Away from what I had chosen…&lt;br&gt;
Toward C#, Python, or Go.&lt;/p&gt;

&lt;p&gt;Not once. Repeatedly.&lt;/p&gt;

&lt;p&gt;So afterward, I ran a small experiment. I started having similar conversations—same kinds of problems—but across different languages and frameworks.&lt;/p&gt;

&lt;p&gt;And it didn't take long to notice a pattern.&lt;/p&gt;

&lt;p&gt;Some languages were consistently favored. Others were… gently discouraged.&lt;/p&gt;

&lt;p&gt;Not explicitly.&lt;br&gt;
But enough that, if you weren't paying attention, you'd end up somewhere you didn't choose.&lt;/p&gt;

&lt;p&gt;Over time, that can create a feedback loop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI favors certain languages&lt;/li&gt;
&lt;li&gt;developers use those languages more&lt;/li&gt;
&lt;li&gt;those languages become even more dominant&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not because they're always the best choice.&lt;br&gt;
But because they're the easiest.&lt;/p&gt;

&lt;p&gt;And languages that fall outside that loop?&lt;/p&gt;

&lt;p&gt;They start to fade.&lt;/p&gt;




&lt;h3&gt;
  
  
  Concern #3: The Perception of Skill Changes
&lt;/h3&gt;

&lt;p&gt;If AI can generate working code...&lt;/p&gt;

&lt;p&gt;then the perception becomes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How hard can this really be?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's not new.&lt;br&gt;
But it gets amplified.&lt;/p&gt;

&lt;p&gt;Because now, more people can produce something that looks like a solution.&lt;/p&gt;

&lt;p&gt;The difference between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;working code&lt;/li&gt;
&lt;li&gt;good code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;becomes harder to see.&lt;/p&gt;

&lt;p&gt;I've seen how that perception can play out.&lt;/p&gt;

&lt;p&gt;I worked at a place where the owner of the company was heard—more than once—saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I don't understand why I have to pay engineers more than data entry people. It's the exact same thing."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That wasn't coming from malice.&lt;br&gt;
It was coming from misunderstanding.&lt;/p&gt;

&lt;p&gt;A lack of visibility into what actually goes into engineering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the decisions&lt;/li&gt;
&lt;li&gt;the trade-offs&lt;/li&gt;
&lt;li&gt;the long-term consequences&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI doesn't create that misunderstanding.&lt;br&gt;
But it can reinforce it.&lt;/p&gt;

&lt;p&gt;Because when code becomes easier to produce, it's even harder from the outside to see the difference between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;something that works&lt;/li&gt;
&lt;li&gt;and something that's built well&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And when that distinction disappears…&lt;/p&gt;

&lt;p&gt;so does the perceived value.&lt;/p&gt;




&lt;h3&gt;
  
  
  Concern #4: A Tighter Job Market
&lt;/h3&gt;

&lt;p&gt;Lowering the barrier to entry does something else. It increases the number of people who can compete.&lt;/p&gt;

&lt;p&gt;That's great for access.&lt;/p&gt;

&lt;p&gt;But it also means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;more applicants per role&lt;/li&gt;
&lt;li&gt;more noise in the hiring process&lt;/li&gt;
&lt;li&gt;harder differentiation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Especially for engineers early in their careers.&lt;/p&gt;

&lt;p&gt;This isn't all downside. &lt;/p&gt;

&lt;h2&gt;
  
  
  There Are Real Advantages
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Easier Transitions Between Languages
&lt;/h3&gt;

&lt;p&gt;Switching stacks used to be a real hurdle.&lt;br&gt;
Now?&lt;br&gt;
It's easier to ramp.&lt;/p&gt;

&lt;p&gt;That opens doors for engineers who want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explore different ecosystems&lt;/li&gt;
&lt;li&gt;move into new roles&lt;/li&gt;
&lt;li&gt;avoid being locked into a single stack&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. Access to New Industries
&lt;/h3&gt;

&lt;p&gt;Language requirements have historically acted as gatekeepers.&lt;/p&gt;

&lt;p&gt;If you didn't have the "right" experience, certain roles were just off-limits.&lt;/p&gt;

&lt;p&gt;That's changing.&lt;/p&gt;

&lt;p&gt;More people can move into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;industries they care about&lt;/li&gt;
&lt;li&gt;problems they're interested in solving&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's a good thing.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Working Across Environments Gets Easier
&lt;/h3&gt;

&lt;p&gt;AI reduces friction when jumping between systems.&lt;/p&gt;

&lt;p&gt;You don't have to context-switch as hard.&lt;/p&gt;

&lt;p&gt;You don't have to remember every detail.&lt;/p&gt;

&lt;p&gt;That makes engineers more flexible.&lt;/p&gt;




&lt;h2&gt;
  
  
  So Where Does That Leave Us?
&lt;/h2&gt;

&lt;p&gt;I don't think language knowledge is going away.&lt;/p&gt;

&lt;p&gt;But I do think it's being deprioritized. &lt;/p&gt;

&lt;p&gt;And that means we need to be more intentional about what we value. Because if we're not careful, we don't just lower the barrier to entry.&lt;/p&gt;

&lt;p&gt;We lower the standard.&lt;/p&gt;




&lt;p&gt;The real skill has never been writing code.&lt;/p&gt;

&lt;p&gt;It's understanding what should be written…&lt;br&gt;
and why.&lt;/p&gt;

&lt;p&gt;The best engineers I've worked with know multiple languages.&lt;/p&gt;

&lt;p&gt;Not because the languages matter that much—&lt;/p&gt;

&lt;p&gt;but because thinking in different systems does.&lt;/p&gt;

&lt;p&gt;They can look at a problem from every angle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;performance&lt;/li&gt;
&lt;li&gt;maintainability&lt;/li&gt;
&lt;li&gt;trade-offs&lt;/li&gt;
&lt;li&gt;long-term impact&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They don't just solve the problem in front of them.&lt;br&gt;
They understand the shape of it.&lt;br&gt;
That's the skill.&lt;/p&gt;

&lt;p&gt;And no tool replaces that.&lt;/p&gt;

&lt;p&gt;At least not yet.&lt;/p&gt;

</description>
      <category>hiring</category>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Case for Red Teaming Your Design</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Tue, 21 Apr 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/druid628/the-case-for-red-teaming-your-design-j0c</link>
      <guid>https://dev.to/druid628/the-case-for-red-teaming-your-design-j0c</guid>
      <description>&lt;h2&gt;
  
  
  The System That Was Never Challenged
&lt;/h2&gt;

&lt;p&gt;I worked on a system that, on the surface, was well-architected.&lt;/p&gt;

&lt;p&gt;It had structure. It had clear intent. It solved the problem it was designed to solve.&lt;/p&gt;

&lt;p&gt;And in a lot of ways, it was good work.&lt;/p&gt;




&lt;p&gt;It also had an N+1 problem.&lt;/p&gt;

&lt;p&gt;On top of that, it was running, on average, an additional 60 or so queries per page load.&lt;/p&gt;

&lt;p&gt;And there was enough “magic” baked into it that, over time, only a couple of us really understood how it worked.&lt;/p&gt;




&lt;p&gt;None of that happened because the engineer who built it didn’t know what they were doing.&lt;/p&gt;

&lt;p&gt;Quite the opposite.&lt;/p&gt;

&lt;p&gt;They were capable. Thoughtful. Intentional.&lt;/p&gt;

&lt;p&gt;The system didn’t fail because of a lack of skill.&lt;/p&gt;

&lt;p&gt;It failed because it was never truly challenged.&lt;/p&gt;




&lt;h2&gt;
  
  
  Red Team vs Blue Team
&lt;/h2&gt;

&lt;p&gt;Before I go too far, it’s probably worth calling out the obvious question:&lt;/p&gt;

&lt;p&gt;If there’s a red team… what’s the blue team?&lt;/p&gt;

&lt;p&gt;In this context, the blue team is the group responsible for the design itself — the people building the architecture, writing the technical design document, and making the initial set of decisions.&lt;/p&gt;

&lt;p&gt;They’re the ones solving the problem.&lt;/p&gt;

&lt;p&gt;The red team exists to challenge how that problem is being solved.&lt;/p&gt;

&lt;p&gt;And if you’ve ever had a TDD red-teamed and absolutely shredded by the Navy’s N6… everything else tends to pale in comparison.&lt;/p&gt;




&lt;p&gt;In a lot of places, that challenge gets folded into a design review.&lt;/p&gt;

&lt;p&gt;A TDD or TAD walkthrough where stakeholders, engineers, and leadership all sit in a room and talk through the design.&lt;/p&gt;

&lt;p&gt;On paper, that sounds like the right place for it.&lt;/p&gt;

&lt;p&gt;In practice, it usually isn’t.&lt;/p&gt;

&lt;p&gt;Those meetings tend to be high-level.&lt;/p&gt;

&lt;p&gt;There’s pressure to keep things moving.&lt;br&gt;
To stay focused.&lt;br&gt;
To not get bogged down in edge cases or deep technical rabbit holes.&lt;/p&gt;

&lt;p&gt;And that’s not necessarily wrong — those meetings serve a purpose.&lt;/p&gt;

&lt;p&gt;But it also means the harder questions…&lt;/p&gt;

&lt;p&gt;The uncomfortable ones…&lt;/p&gt;

&lt;p&gt;The “what happens when this breaks?” conversations…&lt;/p&gt;

&lt;p&gt;often don’t get asked.&lt;/p&gt;

&lt;p&gt;Or don’t get asked deeply enough.&lt;/p&gt;




&lt;p&gt;That’s why I prefer to separate them.&lt;/p&gt;

&lt;p&gt;A blue team session to design the system.&lt;/p&gt;

&lt;p&gt;And a dedicated red team session to pressure-test it.&lt;/p&gt;

&lt;p&gt;Different goals. Different mindset. Different conversations.&lt;/p&gt;

&lt;p&gt;One builds.&lt;/p&gt;

&lt;p&gt;The other challenges.&lt;/p&gt;

&lt;p&gt;And you need both.&lt;/p&gt;




&lt;h2&gt;
  
  
  Building the Right Red Team
&lt;/h2&gt;

&lt;p&gt;In security, we talk about red teams.&lt;/p&gt;

&lt;p&gt;Groups whose job is to actively probe, challenge, and break systems before someone else does.&lt;/p&gt;

&lt;p&gt;Engineering doesn’t always have an equivalent.&lt;/p&gt;

&lt;p&gt;But it should.&lt;/p&gt;




&lt;p&gt;Over time, I’ve found that the most effective red teams aren’t random.&lt;/p&gt;

&lt;p&gt;I try to be intentional about who’s in the room — or at least what perspectives are represented.&lt;/p&gt;

&lt;p&gt;At a minimum, I want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;someone strong on the backend — how the system is structured and behaves&lt;/li&gt;
&lt;li&gt;someone who understands the frontend — how it’s actually used and where it breaks in real interaction&lt;/li&gt;
&lt;li&gt;someone with a deep understanding of the database — how queries behave and where performance issues hide&lt;/li&gt;
&lt;li&gt;someone security-minded — thinking about abuse, edge cases, and failure modes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And depending on the system, I’ll also try to bring in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;someone with an operations or SRE mindset — thinking about failure, recovery, observability, and “what happens at 2am”&lt;/li&gt;
&lt;li&gt;someone approaching it from a maintenance perspective — “how hard is this to live with in six months?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sometimes one person can cover multiple areas.&lt;/p&gt;




&lt;p&gt;I also try to be mindful of how many people I’m pulling into this.&lt;/p&gt;

&lt;p&gt;In most cases, I’ll cap an initial red team at around four people.&lt;/p&gt;

&lt;p&gt;That tends to be the sweet spot — enough perspective to meaningfully challenge the design, without unnecessarily interrupting half the team.&lt;/p&gt;

&lt;p&gt;If I can get the right coverage with three, I’ll do that.&lt;/p&gt;

&lt;p&gt;And if I can only get three, I’ll take three.&lt;/p&gt;

&lt;p&gt;That’s where having people who can span multiple disciplines becomes really valuable.&lt;/p&gt;

&lt;p&gt;The goal isn’t to make this heavy.&lt;/p&gt;

&lt;p&gt;It’s to make it effective.&lt;/p&gt;




&lt;p&gt;One of the more surprising things I’ve learned is how valuable it is to include mid-level engineers in these conversations.&lt;/p&gt;

&lt;p&gt;Not because they know less — but because they see things differently.&lt;/p&gt;

&lt;p&gt;They’re often the ones closest to the day-to-day work.&lt;/p&gt;

&lt;p&gt;They’re the ones most likely to be maintaining what gets built.&lt;/p&gt;

&lt;p&gt;And they ask questions that more senior engineers sometimes skip right past.&lt;/p&gt;

&lt;p&gt;The kind of questions that sound simple…&lt;/p&gt;

&lt;p&gt;until you realize they’ve just exposed something you hadn’t considered at all.&lt;/p&gt;

&lt;p&gt;More than once, those have been the questions that mattered most.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Red Teaming Actually Looks Like
&lt;/h2&gt;

&lt;p&gt;Because most design problems don’t look like problems at the beginning.&lt;/p&gt;

&lt;p&gt;They look like decisions.&lt;/p&gt;

&lt;p&gt;Reasonable ones.&lt;/p&gt;

&lt;p&gt;Individually justifiable.&lt;/p&gt;

&lt;p&gt;Even clever.&lt;/p&gt;




&lt;p&gt;Until they aren’t.&lt;/p&gt;

&lt;p&gt;Until load increases.&lt;/p&gt;

&lt;p&gt;Until someone new joins the team.&lt;/p&gt;

&lt;p&gt;Until a bug shows up in a place no one expects.&lt;/p&gt;

&lt;p&gt;Until the system becomes something only its author can safely modify.&lt;/p&gt;




&lt;p&gt;That’s where red teaming comes in.&lt;/p&gt;

&lt;p&gt;Not as criticism.&lt;/p&gt;

&lt;p&gt;Not as bureaucracy.&lt;/p&gt;

&lt;p&gt;But as a deliberate practice:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Let’s try to break this before reality does.”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;In practice, that often looks like questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What happens under load?&lt;/li&gt;
&lt;li&gt;Are we introducing N+1 queries?&lt;/li&gt;
&lt;li&gt;How many queries does this page actually generate?&lt;/li&gt;
&lt;li&gt;Where are we relying on implicit behavior or “magic”?&lt;/li&gt;
&lt;li&gt;How long would it take a new engineer to understand this?&lt;/li&gt;
&lt;li&gt;What assumptions are we making that might not hold?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these questions are particularly difficult.&lt;/p&gt;

&lt;p&gt;But they’re easy to skip when you’re focused on getting something built.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why It Matters
&lt;/h2&gt;

&lt;p&gt;That’s the trap.&lt;/p&gt;

&lt;p&gt;Because building is visible.&lt;/p&gt;

&lt;p&gt;Shipping is measurable.&lt;/p&gt;

&lt;p&gt;Thinking ahead… isn’t.&lt;/p&gt;




&lt;p&gt;And to be clear — this isn’t about slowing things down.&lt;/p&gt;

&lt;p&gt;It’s about avoiding the kind of complexity that slows you down later.&lt;/p&gt;




&lt;p&gt;I’ve found that some of the best engineering conversations happen when someone is willing to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I don’t think this breaks yet… but I think it will.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s not negativity.&lt;/p&gt;

&lt;p&gt;That’s experience.&lt;/p&gt;




&lt;p&gt;And this is where tools — including AI — can help.&lt;/p&gt;

&lt;p&gt;Not as decision-makers, but as pressure testers.&lt;/p&gt;

&lt;p&gt;A quick way to ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“What am I missing?”&lt;/li&gt;
&lt;li&gt;“Where does this fall apart?”&lt;/li&gt;
&lt;li&gt;“What assumptions am I making?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But just like anything else, that only works if you’re willing to question the answers you get back.&lt;/p&gt;




&lt;p&gt;Because at the end of the day, red teaming isn’t about tools.&lt;/p&gt;

&lt;p&gt;It’s about mindset.&lt;/p&gt;




&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;Good engineers build systems that work.&lt;/p&gt;

&lt;p&gt;Great engineers build systems that survive scrutiny.&lt;/p&gt;




&lt;p&gt;If there’s one thing I’ve learned, it’s this:&lt;/p&gt;

&lt;p&gt;Most of the issues that hurt the most later…&lt;/p&gt;

&lt;p&gt;were visible earlier.&lt;/p&gt;

&lt;p&gt;We just didn’t ask the right questions.&lt;/p&gt;

&lt;p&gt;Or we didn’t ask them soon enough.&lt;/p&gt;




&lt;p&gt;Red teaming isn’t about catching everything.&lt;/p&gt;

&lt;p&gt;It’s about catching enough early that the system stays understandable, maintainable, and resilient over time.&lt;/p&gt;

&lt;p&gt;Because systems don’t break all at once. They erode. Quietly. Until one day, they’re too complex to safely change. And by then, it’s already expensive.&lt;/p&gt;

&lt;p&gt;So ask the questions.&lt;/p&gt;

&lt;p&gt;Invite the pushback.&lt;/p&gt;

&lt;p&gt;Pressure-test the design.&lt;/p&gt;

&lt;p&gt;Before reality does it for you.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>design</category>
      <category>discuss</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>🌳 Watering the Bonsais</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Tue, 14 Apr 2026 14:30:00 +0000</pubDate>
      <link>https://dev.to/druid628/watering-the-bonsais-232g</link>
      <guid>https://dev.to/druid628/watering-the-bonsais-232g</guid>
      <description>&lt;p&gt;There was a point in my career where I had a dozen open pull requests.&lt;/p&gt;

&lt;p&gt;Not half-finished experiments.&lt;br&gt;
Not “I’ll get back to this later” work.&lt;/p&gt;

&lt;p&gt;Twelve branches.&lt;br&gt;
Each one solved a real problem.&lt;br&gt;
Each one was implemented, tested, and ready for the next step—code review, QA, or in some cases just validation.&lt;/p&gt;

&lt;p&gt;They just… weren’t a priority.&lt;/p&gt;

&lt;p&gt;One of them stands out.&lt;/p&gt;

&lt;p&gt;It was one of those problems everyone agreed needed to be fixed.&lt;br&gt;
The kind that shows up in conversations, gets a few nods, and then quietly gets pushed to “later” because it’s assumed to be expensive.&lt;/p&gt;

&lt;p&gt;“Probably a week of work.”&lt;br&gt;
“Maybe more.”&lt;br&gt;
“Let’s not disrupt the sprint.”&lt;/p&gt;

&lt;p&gt;One Friday afternoon, I had a few hours between tasks—too late to pick up anything substantial, too early to call it a day.&lt;/p&gt;

&lt;p&gt;So I took a swing at it.&lt;/p&gt;

&lt;p&gt;Four hours later, it was done. Tested. Ready for review.&lt;/p&gt;

&lt;p&gt;Not a week. Not a sprint.&lt;/p&gt;

&lt;p&gt;Four hours.&lt;/p&gt;

&lt;p&gt;And then it joined the others.&lt;/p&gt;

&lt;p&gt;Waiting.&lt;/p&gt;




&lt;p&gt;So once a month, usually on the first, I’d go through and rebase them all.&lt;/p&gt;

&lt;p&gt;Resolve conflicts.&lt;br&gt;
Update dependencies.&lt;br&gt;
Make sure nothing drifted too far from reality.&lt;/p&gt;

&lt;p&gt;I started calling it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Watering the bonsais.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  What is a “bonsai branch”?
&lt;/h3&gt;

&lt;p&gt;A bonsai branch is work that is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fully (or nearly fully) implemented&lt;/li&gt;
&lt;li&gt;Solves a real, known problem&lt;/li&gt;
&lt;li&gt;But is blocked by prioritization, validation, or timing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s not dead code.&lt;br&gt;
It’s not abandoned.&lt;/p&gt;

&lt;p&gt;It’s &lt;strong&gt;maintained, deferred value&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  The part most teams don’t see
&lt;/h3&gt;

&lt;p&gt;From the outside, these branches look like:&lt;/p&gt;

&lt;p&gt;“Engineering started something and didn’t finish.”&lt;/p&gt;

&lt;p&gt;From the inside, it looks more like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The problem was identified&lt;/li&gt;
&lt;li&gt;The solution was designed&lt;/li&gt;
&lt;li&gt;The work was implemented and tested&lt;/li&gt;
&lt;li&gt;And then… it waited&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not because it wasn’t useful.&lt;/p&gt;

&lt;p&gt;Because something else was more urgent.&lt;/p&gt;




&lt;h3&gt;
  
  
  The hidden cost
&lt;/h3&gt;

&lt;p&gt;Bonsais aren’t free.&lt;/p&gt;

&lt;p&gt;Every time you keep one alive, you’re paying for it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rebase time&lt;/li&gt;
&lt;li&gt;Merge conflict resolution&lt;/li&gt;
&lt;li&gt;Context switching (“what did this fix again?”)&lt;/li&gt;
&lt;li&gt;Mental overhead of tracking what’s “almost done”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’re maintaining a solution that isn’t delivering value yet.&lt;/p&gt;

&lt;p&gt;And if you don’t maintain it?&lt;/p&gt;

&lt;p&gt;It dies.&lt;/p&gt;

&lt;p&gt;And when it dies, that work doesn’t just pause—it resets.&lt;/p&gt;




&lt;h3&gt;
  
  
  The hidden value
&lt;/h3&gt;

&lt;p&gt;Here’s the part that matters:&lt;/p&gt;

&lt;p&gt;A bonsai branch is &lt;strong&gt;already paid for&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The risk is mostly burned down.&lt;br&gt;
The unknowns have been explored.&lt;br&gt;
The implementation exists.&lt;/p&gt;

&lt;p&gt;When you finally prioritize it, you’re not starting from zero.&lt;/p&gt;

&lt;p&gt;You’re starting from:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;almost done.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  The tension
&lt;/h3&gt;

&lt;p&gt;Good engineers tend to move faster than prioritization cycles.&lt;/p&gt;

&lt;p&gt;They see a problem, they solve it, and they move on.&lt;/p&gt;

&lt;p&gt;Organizations don’t always move that way.&lt;/p&gt;

&lt;p&gt;They have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;competing priorities&lt;/li&gt;
&lt;li&gt;validation cycles&lt;/li&gt;
&lt;li&gt;timing constraints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So you end up with this strange middle ground:&lt;/p&gt;

&lt;p&gt;Work that is finished… but not allowed to be done.&lt;/p&gt;




&lt;h3&gt;
  
  
  For engineers
&lt;/h3&gt;

&lt;p&gt;If you’ve got bonsais, be intentional about them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep them alive if they matter&lt;/li&gt;
&lt;li&gt;Document what they solve&lt;/li&gt;
&lt;li&gt;Don’t let them sprawl endlessly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And maybe most importantly:&lt;/p&gt;

&lt;p&gt;Don’t confuse “not prioritized” with “not valuable.”&lt;/p&gt;

&lt;p&gt;Those are not the same thing.&lt;/p&gt;




&lt;h3&gt;
  
  
  For product and business
&lt;/h3&gt;

&lt;p&gt;You might be sitting on solutions you’ve already paid for.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What’s been built but not shipped?&lt;/li&gt;
&lt;li&gt;What’s been deferred but maintained?&lt;/li&gt;
&lt;li&gt;What could be delivered quickly because the work is already done?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because sometimes the fastest way forward isn’t a new initiative.&lt;/p&gt;

&lt;p&gt;It’s revisiting something that’s already been solved.&lt;/p&gt;




&lt;h3&gt;
  
  
  Closing
&lt;/h3&gt;

&lt;p&gt;Some teams let these branches rot.&lt;/p&gt;

&lt;p&gt;Others quietly maintain them—keeping them ready for the moment they’re needed.&lt;/p&gt;

&lt;p&gt;Not everything grows in the open.&lt;/p&gt;

&lt;p&gt;Some things are shaped, maintained, and patiently kept alive.&lt;/p&gt;

&lt;p&gt;Waiting for the right time.&lt;/p&gt;

&lt;p&gt;Sometimes the most valuable work in your system&lt;br&gt;
is the work that’s just been… waiting.&lt;/p&gt;

</description>
      <category>techculture</category>
      <category>productdevelopment</category>
      <category>leadership</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>array_map Is Not A Design Pattern</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Tue, 07 Apr 2026 11:18:00 +0000</pubDate>
      <link>https://dev.to/druid628/arraymap-is-not-a-design-pattern-43j9</link>
      <guid>https://dev.to/druid628/arraymap-is-not-a-design-pattern-43j9</guid>
      <description>&lt;h2&gt;
  
  
  The Moment It Clicked
&lt;/h2&gt;

&lt;p&gt;“Damn it Doug! array_map is not a design pattern!”&lt;/p&gt;

&lt;p&gt;I will never forget hearing that yelled across the office during a code review.&lt;/p&gt;

&lt;p&gt;And to this day, every time I run across code that’s trying a little too hard to be clever, that line pops back into my head.&lt;/p&gt;

&lt;h2&gt;
  
  
  How We Get There
&lt;/h2&gt;

&lt;p&gt;Doug was a smart engineer. Seriously smart.&lt;/p&gt;

&lt;p&gt;But he had a habit I’ve seen in a lot of really sharp developers — myself included, if I’m being honest. He’d find a tool, a pattern, or a concept he liked…&lt;/p&gt;

&lt;p&gt;…and then use it everywhere.&lt;/p&gt;

&lt;p&gt;At some point, that turned into what we started calling — half joking, half traumatized —&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The array_map design pattern&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Which, to be clear, is not a thing.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem in Practice
&lt;/h2&gt;

&lt;p&gt;I remember reviewing a piece of code from his team where it was literally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an &lt;code&gt;array_map&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;inside an &lt;code&gt;array_map&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;calling another &lt;code&gt;array_map&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;returning an &lt;code&gt;array_map&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And I’m not exaggerating.&lt;/p&gt;

&lt;p&gt;It &lt;em&gt;worked&lt;/em&gt; and was technically correct. It was also an absolute nightmare to read, debug, and maintain.&lt;/p&gt;




&lt;h2&gt;
  
  
  Clever vs Clear
&lt;/h2&gt;

&lt;p&gt;And that’s the part that matters. Because this isn’t really about array_map. It’s about what happens when we start optimizing for cleverness instead of clarity.&lt;/p&gt;

&lt;p&gt;I’ve been guilty of this too -- writing code that made me feel smart, code that looked elegant. Expressive. Maybe even impressive in a code review.&lt;/p&gt;

&lt;p&gt;And then six months later, someone else is digging through it trying to fix a bug, wondering what in the world I was thinking.&lt;/p&gt;

&lt;p&gt;Sometimes that “someone else” was me.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Issue
&lt;/h2&gt;

&lt;p&gt;The problem isn’t the tool or the technique. It’s how and when we choose to apply it.&lt;/p&gt;

&lt;p&gt;The problem is forgetting that code has a second life:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;being read, understood, and maintained by someone else.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most systems don’t fail because they weren’t clever enough. They fail because no one can understand them anymore.&lt;/p&gt;




&lt;h2&gt;
  
  
  Complexity vs Control
&lt;/h2&gt;

&lt;p&gt;Now, to be fair — I’m not a fan of nested loops either.&lt;/p&gt;

&lt;p&gt;If I can avoid them, I will.&lt;/p&gt;

&lt;p&gt;I’ll happily spend extra time structuring data, reshaping inputs, or breaking problems apart so I don’t have to stack loops on loops.&lt;/p&gt;

&lt;p&gt;That’s not about performance as much as it is about clarity and control. But there’s a difference between avoiding complexity…&lt;/p&gt;

&lt;p&gt;…and hiding it behind layers of abstraction that make things harder to follow.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Good Looks Like
&lt;/h2&gt;

&lt;p&gt;Sometimes the right solution isn’t the most clever one. It’s the one that makes the intent obvious.&lt;/p&gt;

&lt;p&gt;Something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$items&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$item&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It’s not fancy, nor is is going to win you any style points.  But anyone who reads it knows exactly what it’s doing.&lt;/p&gt;

&lt;p&gt;And more importantly — they can change it without fear.&lt;/p&gt;

&lt;p&gt;That’s the real goal. Not just writing code that works. Writing code that survives.&lt;/p&gt;




&lt;h2&gt;
  
  
  Closing Thought
&lt;/h2&gt;

&lt;p&gt;Just because a tool exists doesn’t mean it should drive the design. Just because something is expressive doesn’t mean it’s appropriate. And just because it feels clever…&lt;/p&gt;

&lt;p&gt;doesn’t mean it’s a good idea.&lt;/p&gt;

&lt;p&gt;“&lt;code&gt;array_map&lt;/code&gt; is not a design pattern.”&lt;/p&gt;

&lt;p&gt;It’s a tool.&lt;/p&gt;

&lt;p&gt;Use it when it makes things clearer.  Put it down when it doesn’t.&lt;/p&gt;

&lt;p&gt;Cross-posted: &lt;a href="https://www.linkedin.com/pulse/arraymap-design-pattern-micah-breedlove-k1ube" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; | Medium&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>codequality</category>
    </item>
    <item>
      <title>AI Didn’t Make Me Faster. It Made Me Think Better.</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Thu, 02 Apr 2026 11:30:18 +0000</pubDate>
      <link>https://dev.to/druid628/ai-didnt-make-me-faster-it-made-me-think-better-4022</link>
      <guid>https://dev.to/druid628/ai-didnt-make-me-faster-it-made-me-think-better-4022</guid>
      <description>&lt;p&gt;I wrote recently about &lt;a href="https://dev.to/druid628/the-balsam-of-fierabras-and-the-promise-of-ai-22o5"&gt;some concerns&lt;/a&gt; I have with how our industry is starting to treat AI.&lt;/p&gt;

&lt;p&gt;This isn’t that.&lt;/p&gt;

&lt;p&gt;Because the truth is, AI has also made me better at what I do. Not faster. Not necessarily more productive in the way people like to measure it.&lt;/p&gt;

&lt;p&gt;Better.&lt;/p&gt;

&lt;p&gt;And the more I’ve thought about it, the closest analogy I’ve found isn’t in software at all. It’s in the forge.&lt;/p&gt;

&lt;p&gt;When I was learning blacksmithing, I wasn’t just being shown how to hit steel. I was learning how to think about it.&lt;/p&gt;

&lt;p&gt;How heat changes behavior. How structure forms over time. How small decisions early on show up later in ways you can’t undo. And more than anything, I learned by asking questions. Not just "how do I do this?" But "what would happen if I did it this way instead?"&lt;/p&gt;

&lt;p&gt;Sometimes the answer came from the person teaching me.&lt;/p&gt;

&lt;p&gt;Sometimes the answer came from trying it and seeing what happened.&lt;/p&gt;

&lt;p&gt;But the learning came from having a place where those questions could exist.&lt;/p&gt;

&lt;p&gt;Most of my career has been spent in backend engineering — working in ecosystems like Symfony, .NET, Spring. Environments where structure matters, where decisions compound, and where “we’ll fix it later” usually turns into “we’re still dealing with this six months from now.”&lt;/p&gt;

&lt;p&gt;A lot of the real work in that world isn’t typing code.&lt;/p&gt;

&lt;p&gt;It’s thinking.&lt;/p&gt;

&lt;p&gt;It’s weighing trade-offs. It’s deciding which problems you’re solving today and which ones you’re intentionally leaving for later.&lt;/p&gt;

&lt;p&gt;And historically, that kind of thinking has been… a little isolated.&lt;/p&gt;

&lt;p&gt;You either grab time with another senior engineer, or you just sit with it yourself.&lt;/p&gt;

&lt;p&gt;AI changed that for me.&lt;/p&gt;

&lt;p&gt;The best way I can describe it is this:&lt;/p&gt;

&lt;p&gt;AI hasn’t felt like a replacement. It’s felt like something closer to an apprenticeship mirror.&lt;/p&gt;

&lt;p&gt;A way to throw ideas out and see them reflected back — sometimes clearly, sometimes distorted — but almost always enough to make you stop and think.&lt;/p&gt;

&lt;p&gt;There’s something incredibly valuable about being able to just… nerd out over a design.&lt;/p&gt;

&lt;p&gt;No meeting. No calendar. No worrying about whether you’re taking up someone’s time.&lt;/p&gt;

&lt;p&gt;Just throwing ideas out there:&lt;/p&gt;

&lt;p&gt;"What if I structure it this way?" "What happens if this scales?" "Is this clever, or is this going to bite me later?"&lt;/p&gt;

&lt;p&gt;And getting something back that isn’t trying to impress you — just trying to be useful.&lt;/p&gt;

&lt;p&gt;It’s not just solutions, either.&lt;/p&gt;

&lt;p&gt;Some of the most useful conversations I’ve had haven’t been about solving a specific problem at all. They’ve been about exploring different approaches, frameworks, and even languages.&lt;/p&gt;

&lt;p&gt;Just nerd-talking through things.&lt;/p&gt;

&lt;p&gt;Comparing trade-offs. Challenging assumptions. Asking "why not this?" instead of defaulting to "this is how I’ve always done it."&lt;/p&gt;

&lt;p&gt;That’s led to something I didn’t expect.&lt;/p&gt;

&lt;p&gt;Honestly, some of my favorite conversations I’ve had with AI have been around those exact moments — revisiting ideas, technologies, or approaches I had already written off.&lt;/p&gt;

&lt;p&gt;It’s made me more willing to reconsider tools and approaches I might have dismissed in the past.&lt;/p&gt;

&lt;p&gt;Not because AI told me I was wrong — but because it gave me a space to actually think through those decisions instead of relying on instinct or habit.&lt;/p&gt;

&lt;p&gt;There’s another angle to this that I didn’t expect.&lt;/p&gt;

&lt;p&gt;In the past, when I was working through a design or a tricky decision, the best thing you could do was grab another engineer — or a couple of them — and effectively red team it.&lt;/p&gt;

&lt;p&gt;"Alright, poke holes in this."&lt;/p&gt;

&lt;p&gt;And if you had good people around you, that was incredibly valuable.&lt;/p&gt;

&lt;p&gt;The problem is, time is expensive.&lt;/p&gt;

&lt;p&gt;Everyone’s busy. Calendars are full. And pulling someone into that kind of deep, focused thinking isn’t always easy.&lt;/p&gt;

&lt;p&gt;What I’ve found is that AI fills that gap surprisingly well.&lt;/p&gt;

&lt;p&gt;Not as a replacement for good engineers — but as a low-friction way to pressure-test your thinking. You can throw an idea out there and say:&lt;/p&gt;

&lt;p&gt;What am I missing?&lt;/p&gt;

&lt;p&gt;Where does this break?&lt;/p&gt;

&lt;p&gt;What happens if this assumption isn’t true?&lt;/p&gt;

&lt;p&gt;And you’ll get something back that isn’t trying to be clever. It’s not trying to win the argument. It’s just trying to work through the problem.&lt;/p&gt;

&lt;p&gt;It’s not perfect. It won’t catch everything.&lt;/p&gt;

&lt;p&gt;But it’s fast. It’s available. And it’s often enough to surface the kinds of questions you should be asking anyway.&lt;/p&gt;

&lt;p&gt;One thing I’ve come to appreciate is how often the best answer isn’t the most clever one. It’s the one that’s easiest to understand six months from now.&lt;/p&gt;

&lt;p&gt;More than once, I’ve ended up in a conversation where the feedback essentially boils down to:&lt;/p&gt;

&lt;p&gt;Future you is going to hate current you in six months if you do this.&lt;/p&gt;

&lt;p&gt;And it’s usually right.&lt;/p&gt;

&lt;p&gt;That’s the part that’s been the most valuable. Not the answers. The feedback loop.&lt;/p&gt;

&lt;p&gt;Sometimes the best part of using AI isn’t the answer it gives you — it’s the question it makes you ask. Or the hesitation it introduces.  Or the moment where you stop and think:&lt;/p&gt;

&lt;p&gt;"Why am I doing it this way?"&lt;/p&gt;

&lt;p&gt;That kind of interruption in your own thinking is hard to come by when you’re working alone.&lt;/p&gt;

&lt;p&gt;None of this replaces experience.&lt;/p&gt;

&lt;p&gt;If anything, it makes experience more valuable.&lt;/p&gt;

&lt;p&gt;Because the better your understanding is, the better you can evaluate the feedback you’re getting. The better you can separate useful pushback from noise. The better you can recognize when something is technically correct… but practically wrong.&lt;/p&gt;

&lt;p&gt;And sometimes, just wrong.&lt;/p&gt;

&lt;p&gt;That’s something I think is important — especially for engineers coming up behind me.&lt;/p&gt;

&lt;p&gt;It’s okay to push back on AI. It’s not always right.&lt;/p&gt;

&lt;p&gt;AI is useful — but only if you stay in charge of the thinking.&lt;/p&gt;

&lt;p&gt;I ran into this just yesterday. I moved a conversation into a new chat, and in doing that, a lot of the context got lost. The suggestions I got back were clean. Reasonable. Technically sound.&lt;/p&gt;

&lt;p&gt;But they were based on assumptions that weren’t true anymore. If I had just taken that answer and run with it — no pushback, no clarification — it would have worked just well enough to get through the moment…&lt;/p&gt;

&lt;p&gt;…and then turned into an absolute nightmare a year or two down the road.&lt;/p&gt;

&lt;p&gt;It only got better once I pushed back.&lt;/p&gt;

&lt;p&gt;That won’t work here because…&lt;/p&gt;

&lt;p&gt;You’re missing this constraint…&lt;/p&gt;

&lt;p&gt;This part of the system behaves differently…&lt;/p&gt;

&lt;p&gt;And once the context was corrected, the answer changed. That’s the difference. The value isn’t in getting an answer.&lt;/p&gt;

&lt;p&gt;It’s in being able to challenge it.&lt;/p&gt;

&lt;p&gt;Back at the forge, the person teaching me didn’t just give answers. They gave me space to ask better questions.  To try things. To think things through. To understand not just what worked — but why.&lt;/p&gt;

&lt;p&gt;That’s what this feels like.&lt;/p&gt;

&lt;p&gt;I still think there’s real risk in how our industry is starting to position AI. I still think we need to be careful about what we think it is. But at a personal level, the impact has been hard to ignore.&lt;/p&gt;

&lt;p&gt;AI hasn’t replaced my thinking.&lt;/p&gt;

&lt;p&gt;It’s made me more deliberate about it.&lt;/p&gt;

&lt;p&gt;It’s made me question decisions a little more.&lt;/p&gt;

&lt;p&gt;It’s made me a little less attached to being “right” and a little more focused on getting it right. And in a field where small decisions compound over time…&lt;/p&gt;

&lt;p&gt;That might be the most valuable thing it can do.&lt;/p&gt;

&lt;p&gt;In the forge, iron sharpens iron. We make better tools through pressure, repetition, and refinement. I think there’s something similar happening here.&lt;/p&gt;

&lt;p&gt;We can make AI better by how we use it. But we have to be just as intentional about letting it make us better in return. Because at the end of the day, the tool doesn’t define the craft.&lt;/p&gt;

&lt;p&gt;The craftsman always has.&lt;/p&gt;

&lt;p&gt;Crossposted: &lt;a href="https://www.linkedin.com/pulse/ai-didnt-make-me-faster-made-think-better-micah-breedlove-hubfe/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; | &lt;a href="https://medium.com/@druid628/ai-didnt-make-me-faster-it-made-me-think-better-326d6e16a0e0" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>The Balsam of Fierabras and the Promise of AI</title>
      <dc:creator>Micah Breedlove (druid628)</dc:creator>
      <pubDate>Mon, 30 Mar 2026 12:32:48 +0000</pubDate>
      <link>https://dev.to/druid628/the-balsam-of-fierabras-and-the-promise-of-ai-22o5</link>
      <guid>https://dev.to/druid628/the-balsam-of-fierabras-and-the-promise-of-ai-22o5</guid>
      <description>&lt;p&gt;Lately, I’ve been watching something happen in our industry that feels familiar in a way I can’t quite shake.&lt;/p&gt;

&lt;p&gt;Companies are talking about “efficiency gains” from AI. Numbers get thrown around — 20%, 30%, sometimes more. And alongside those numbers come decisions: smaller teams, fewer engineers, faster timelines.&lt;/p&gt;

&lt;p&gt;I’ve even heard stories — whether apocryphal or not — of companies laying off the majority of their engineering teams entirely. Product steps in, increasingly armed with AI tools, generating code directly. The few engineers that remain are no longer building systems so much as reviewing them, deploying them, and keeping the lights on.&lt;/p&gt;

&lt;p&gt;I understand the appeal. I really do. If I’m being honest, part of me wants it to be true. But I can’t help thinking about Don Quixote. In the novel, there’s a potion called the Balsam of Fierabras. It’s supposed to be a miracle cure — a remedy capable of healing any wound.&lt;/p&gt;

&lt;p&gt;Quixote believes in it completely.&lt;/p&gt;

&lt;p&gt;When he finally prepares it and drinks it, the result is… less miraculous. He becomes violently ill. It does not heal him. It does not restore him. It very nearly breaks him.&lt;/p&gt;

&lt;p&gt;And yet, he insists it worked.&lt;/p&gt;

&lt;p&gt;What stuck with me about that scene isn’t that the balsam failed. It’s that the belief didn’t. The promise of a cure was so powerful that the evidence didn’t matter.&lt;/p&gt;

&lt;p&gt;Right now, AI is starting to feel like that kind of promise. Not as a tool — but as a cure. A way to move faster, reduce cost, replace effort, and somehow come out ahead without trade-offs.&lt;/p&gt;

&lt;p&gt;To be clear, I use AI. I think it’s useful. In some cases, it’s incredibly useful. It can accelerate workflows, help explore ideas, and remove friction from parts of the development process that used to take longer than they should have.&lt;/p&gt;

&lt;p&gt;I do worry about engineers being replaced. Not completely, not overnight — but enough to matter. Enough to change who gets to stay, who gets to grow, and who never gets a chance to start.&lt;/p&gt;

&lt;p&gt;But what worries me more is something harder to see. I worry about engineering being redefined as something smaller than it actually is. Because software development isn’t just output. It’s judgment. It’s trade-offs. It’s understanding why something should exist, not just how to build it.&lt;/p&gt;

&lt;p&gt;When we reduce engineering to output, tools that accelerate output start to look like complete solutions.&lt;/p&gt;

&lt;p&gt;I’ve already started seeing hints of this in the wild.&lt;/p&gt;

&lt;p&gt;Engineers running into problems with AI that aren’t really code problems at all — but still burning time and credits trying to solve them like they are.&lt;/p&gt;

&lt;p&gt;One example I saw recently stuck with me. An engineer had an AI stuck in a loop, trying to fix the same issue over and over again. Different approaches, different variations — sometimes even repeating the same solution.&lt;/p&gt;

&lt;p&gt;The problem wasn’t the code.&lt;/p&gt;

&lt;p&gt;It was the environment.&lt;/p&gt;

&lt;p&gt;One system was using a case-insensitive file system. The deployed environment was case-sensitive. A single character difference was enough to break everything.&lt;/p&gt;

&lt;p&gt;The AI never caught it.&lt;/p&gt;

&lt;p&gt;And that’s not a knock on AI — it’s just outside the kind of context it naturally understands.&lt;/p&gt;

&lt;p&gt;I’ve run into similar issues myself over the years. The kind of problems where experience matters. Where you’re not just reading code — you’re accounting for the messy, inconsistent, very human systems that code runs inside of.&lt;/p&gt;

&lt;p&gt;That’s the part that doesn’t translate cleanly.&lt;/p&gt;

&lt;p&gt;If we start removing experienced engineers from the equation — or replacing them with people who rely heavily on AI without that depth of experience — how often do we end up stuck in that loop?&lt;/p&gt;

&lt;p&gt;Burning time. Burning tokens. Trying solution after solution… when someone with the right context could spot the issue in minutes.&lt;/p&gt;

&lt;p&gt;Efficiency doesn’t just come from speed. It comes from knowing where to look. And that’s where I start to get uneasy. Because the danger isn’t that AI doesn’t work.&lt;/p&gt;

&lt;p&gt;The danger is believing it works without consequence.&lt;/p&gt;

&lt;p&gt;There’s another piece of this that I don’t hear talked about enough: what happens to the next generation of engineers.&lt;/p&gt;

&lt;p&gt;A lot of us didn’t learn this craft by writing perfect code the first time. We learned by struggling through problems. By debugging things that didn’t make sense. By following threads deep into systems until we finally understood what was actually happening.&lt;/p&gt;

&lt;p&gt;That process is slow. Sometimes frustrating. Occasionally painful. But it’s where the real skill comes from.&lt;/p&gt;

&lt;p&gt;If the day-to-day work of engineering shifts toward writing prompts and reviewing generated code, the skill curve changes. The barrier to producing code gets lower — which sounds like a win — but the opportunity to develop deeper understanding starts to shrink.&lt;/p&gt;

&lt;p&gt;And over time, that matters.&lt;/p&gt;

&lt;p&gt;Because troubleshooting is not a surface-level skill. It’s not something you pick up by reviewing code that already works. It’s something you earn by being lost, over and over again, until you aren’t anymore.&lt;/p&gt;

&lt;p&gt;If we reduce the number of engineers building systems from the ground up — if fewer people are forced to wrestle with complexity directly — we shouldn’t be surprised when deep troubleshooting ability becomes rare.&lt;/p&gt;

&lt;p&gt;Not gone. But smaller. Harder to find. Concentrated in fewer people.&lt;/p&gt;

&lt;p&gt;And that creates its own kind of fragility.&lt;/p&gt;

&lt;p&gt;Once decisions are made on the belief that we can do more with less — smaller teams, fewer experienced engineers, more reliance on generated output — the cost doesn’t show up immediately.&lt;/p&gt;

&lt;p&gt;It shows up later.&lt;/p&gt;

&lt;p&gt;In complexity. In fragility. In systems that no one fully understands anymore.&lt;/p&gt;

&lt;p&gt;Systems don’t stay healthy because they were generated quickly. They stay healthy because someone understands them deeply enough to take care of them.&lt;/p&gt;

&lt;p&gt;I don’t think this ends with engineering disappearing. But I do think it’s possible we create a gap. Companies optimize for smaller and smaller teams. More output per person. More reliance on generated code. On paper, it looks efficient. Maybe it even is — for a while.&lt;/p&gt;

&lt;p&gt;But over time, I can’t shake the feeling that we’re pushing toward a kind of critical mass. A point where the cost of all that generated output — in tokens, in credits, in complexity — starts to rival what it would have cost to simply have experienced engineers in the first place.&lt;/p&gt;

&lt;p&gt;And by the time that realization sets in, the landscape may have changed.&lt;/p&gt;

&lt;p&gt;Some of those engineers will have moved on. Not out of fear, but out of frustration. Burnout. Or simply because they saw the writing on the wall and chose something more stable.&lt;/p&gt;

&lt;p&gt;Others will still be here, but fewer. More spread out. Carrying more of the load.&lt;/p&gt;

&lt;p&gt;And the ones coming up behind them may not have had the same opportunities to learn the craft deeply. Not because they lacked ability, but because the environment around them changed.&lt;/p&gt;

&lt;p&gt;Fewer chances to struggle through problems. Fewer chances to build systems from the ground up. Fewer mentors with the time, the mandate, the desire — or the instinct — to teach.&lt;/p&gt;

&lt;p&gt;That’s the part I keep coming back to. Not the tools. Not the efficiency. But the long-term shape of the profession. &lt;/p&gt;

&lt;p&gt;Don Quixote didn’t just believe in the Balsam of Fierabras — he doubled down on it. Even when the results didn’t match the promise. &lt;/p&gt;

&lt;p&gt;I don’t think we’re there. Not yet. But I do think we’re at a point where it’s worth asking harder questions. &lt;/p&gt;

&lt;p&gt;Not just “can we do this faster?”&lt;/p&gt;

&lt;p&gt;But “what are we losing in the process?”&lt;/p&gt;

&lt;p&gt;Because if we’re not careful, we may eventually find ourselves trying to rebuild something we quietly let slip away — and realizing the people who knew how to do it are no longer around to ask.&lt;/p&gt;

&lt;p&gt;I’m not charging windmills here. Just trying to call it how I see it — and maybe ask a few questions before we all start drinking the balsam.&lt;/p&gt;

&lt;p&gt;CrossPosted: &lt;a href="https://www.linkedin.com/pulse/balsam-fierabras-promise-ai-micah-breedlove-eulse/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; | &lt;a href="https://medium.com/@druid628/the-balsam-of-fierabras-and-the-promise-of-ai-19ed0fe1a333" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
