<?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>Forem: Ava Barron</title>
    <description>The latest articles on Forem by Ava Barron (@abarron).</description>
    <link>https://forem.com/abarron</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F244829%2F7f78c430-7c50-4552-9cbb-b41508fc2327.jpeg</url>
      <title>Forem: Ava Barron</title>
      <link>https://forem.com/abarron</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/abarron"/>
    <language>en</language>
    <item>
      <title>The story of how Alicia Keys accidentally got me a career in tech</title>
      <dc:creator>Ava Barron</dc:creator>
      <pubDate>Mon, 30 Mar 2026 01:24:32 +0000</pubDate>
      <link>https://forem.com/abarron/can-you-stand-the-rain-4e0k</link>
      <guid>https://forem.com/abarron/can-you-stand-the-rain-4e0k</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/wecoded-2026"&gt;2026 WeCoded Challenge&lt;/a&gt;: Echoes of Experience&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The story of how Alicia Keys accidentally got me a career in tech&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cu2cwq0agdz8jf17jhd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cu2cwq0agdz8jf17jhd.jpg" alt=" " width="800" height="1001"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Can you stand the rain?
&lt;/h1&gt;

&lt;p&gt;That's what New Edition asked about love and life. I was listening to the song while reading about the WeCoded challenge, and it made me realize  the rain in my own life shaped me more than sunny days. I knew this was the story I wanted to tell. The way I ended up in tech came from the most unlikely place: an Alicia Keys concert my mom took me to by accident, and the online community of Black and brown people I found because of it. This is how diversity, real diversity, the kind with no panel moderator and no walls got me into tech.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rain
&lt;/h2&gt;

&lt;p&gt;I grew up in a small suburb in the south right by the Ohio River close enough to see the North, but raised on the South side of it, in a family that made no sense to anyone around me. My mom was Guyanese. My family is diverse. "Mix up" is how we called it. At home my kitchen smelled like chicken curry and roti and dhal while every other house around my block ran on Kraft mac and cheese from a microwaveable cup. I was too different from the world around me. I said "sangwich" instead of "sandwich" (Guyanese patois that I forced myself to fix after years of getting laughed at). I brought lychee for snack time and watched kids give me stares and call me weird.&lt;br&gt;
I lived in a small town. Same kids. Everyone knew everyone (or thought they did) type energy. But still, in that world, there was no room for nuance. Everything was black and white. You were smart or dumb. You were from here or you weren't. You were either white or not, and if you weren't, people just filled in the rest for you from their worldview.&lt;/p&gt;

&lt;p&gt;I actually still remember my first day of kindergarten and it wasn't because I was crying for my mom not to leave (but I did do that too). I remember sitting on a rainbow round carpet, the kind that was woven and had some fuzzy threads sticking out. A group of kids walked up and sat down next to me. They started rubbing my skin, asking each other, "is she dirty?" Then one turned to me and said "Ew, did you take a bath?"&lt;/p&gt;

&lt;p&gt;In eighth grade, a girl I had been in Girl Scouts and on the basketball team with for years pulled me aside in the hallway and whispered, "are you... Black?" like she was diagnosing something. Like it was shameful. What shook me then and still does now is not the question itself. It was the tone. The serious way she was asking it, like it was some deep dark secret. Her discomfort. And it wasn't just her, it was basically everyone around me back then. I heard this stuff all the time.&lt;/p&gt;

&lt;p&gt;Between those moments was a decade of being called the n-word, of "go back to your country" from most of the neighborhood kids. Being told that races should not mix and that brown people were "mud people." I don't even remember what else. That was the rain. It was constant, and it started before I could spell my own name.&lt;br&gt;
But here is the thing about rain, people usually don't just stand in it. They get a raincoat, buy an umbrella, or they find shelter.&lt;/p&gt;

&lt;p&gt;I found my people on the internet. And that community became my raincoat.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Accidental Ticket
&lt;/h2&gt;

&lt;p&gt;By the time I was twelve, I was already online. I had taught myself HTML by using Lisa Explains It All, for my Neopets profile. I built little websites on GeoCities.&lt;/p&gt;

&lt;p&gt;But I was doing all of it alone. The internet gave me somewhere to go, but it didn't give me anyone to go with.&lt;/p&gt;

&lt;p&gt;What changed that was a concert ticket my mom bought by mistake.&lt;br&gt;
When I was thirteen, my mom heard me talking about Aaliyah, the R&amp;amp;B singer who had recently passed away. She saw concert tickets for this new artist named Alicia Keys and bought them, thinking they were the same person. They were not the same person, but my mom didn't know that, and I wasn't about to turn down a concert.&lt;/p&gt;

&lt;p&gt;I still remember the day we drove all the way to Cincinnati to go to the Taft Theater, excited for my first concert ever. Friday night. We sat up in the balcony section, they had these old red velvet seats, and I remember watching someone carry a keyboard onto the stage before the show and thinking, "oh, is that going to be for Alicia Keys?" It wasn't. But I remember that small moment because I was already leaning forward, already pulled in, before a single note had been played. Something in me already knew.&lt;/p&gt;

&lt;p&gt;Then she performed her album, Songs in A Minor, and I only knew "Fallin" before that night, but by the time the show was over I knew I had witnessed something much bigger than a concert. The way the whole show flowed like a theater production. The classical training underneath the soul. The rawness. Here was someone who didn't fit neatly into one box either, bridging worlds that people said didn't go together. I left that concert knowing I needed to find out everything about this world immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Room
&lt;/h2&gt;

&lt;p&gt;I had been exploring the internet before that concert, but after that night I wasn't just exploring anymore. I was searching with purpose. More of whatever THAT was. More of that artistry, that story, that connection.&lt;/p&gt;

&lt;p&gt;Then I found it, the Alicia Keys Message Board, and it became, without exaggeration, the most important community I had ever been part of during that time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq6jxhfai4r1r50a0o75v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq6jxhfai4r1r50a0o75v.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not because of the music. Because of the people. First time I was in a room where diversity wasn't a concept anyone had to explain, it was just the room. I talked to everyone on there. We had organized live chatrooms on Yahoo Messenger and MSN, conversations that went on for hours.&lt;/p&gt;

&lt;p&gt;I met Nafiesa, who was from Amsterdam, but originally Suriname, a country right next to Guyana. She was the first Caribbean girl I ever met online. I told her I wanted to visit Guyana one day, she said, "GIRL, WHY WOULD YOU WANNA GO THERE? You know there are snakes that can KILL you? It's all jungle!" and I laughed so hard because that was it. That was what I had been missing the whole time. Someone who understood the reference without a confused blank stare or asking me if I meant Ghana, who knew the culture, who could roast me and get me at the same time.&lt;/p&gt;

&lt;p&gt;There were a lot of connections made there. Dee, a Black woman and IT professional who I looked up to, ran a thread where she told us all to post our report cards. If you had A's, she sent you real money in the mail to encourage Black and brown kids to be excellent. I made sure to post my report card each quarter. There was Alana from MD, always typing "BRB" because she was studying for her IB classes, a joyful nerd who made being smart feel normal instead of weird. There was Cinna from Jamaica, who kept getting banned from the board for starting all the craziest drama (and I kept showing her how to hide her IP and slip back in). There was Sabina from the UK, Nic from Germany, Steph from Belgium. People watched The L Word together weekly episode by episode in the forum threads, posting reaction images before reaction GIFs were even a real thing. People argued music theory and shared relationship problems and asked for homework help. It was the first place where everything I was, the food, the family, the in-between-ness wasn't a problem to solve. It was just who we were. That's what a diverse community actually does. It doesn't make you feel included. It makes you stop feeling like you ever needed to be.&lt;/p&gt;

&lt;p&gt;That community didn't just give me somewhere to belong. It gave me people I wanted to show up for, and eventually, a reason to use what I knew to make things better for the people around me.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Curriculum
&lt;/h2&gt;

&lt;p&gt;People on the message board posted about their broken computers ALL the time. Someone would upload screenshots to Photobucket talking about how their desktop was covered in popup windows and write "HELP, my PC has a virus, what do I do!????" and I would be in those threads immediately. "PM me your AIM screen name," I would tell them. "Lemme check your startup programs. Open regedit. Open task manager. Let me Google this right quick." I was like 15, walking grown adults through virus removal step by step over AOL Instant Messenger, and I hadn't taken a computer class in my life yet. I learned because the people I cared about needed help. And every time I fixed something, I understood something new about how computers actually worked, from the inside out. It was fun. Not a curriculum. Just people, problems, and the curious need to figure it out.&lt;/p&gt;

&lt;p&gt;That instinct kept showing up everywhere. In high school, a teacher assumed I was an ESL student because I was brown and never spoke in class. I used that assumption to slip out at lunch with the other ESL students and walk to the library, with my bootable Ubuntu CD, and use it for unfiltered internet access to my friends while everyone else ate in the cafeteria I had been avoiding for months.&lt;/p&gt;

&lt;p&gt;It was always the same instinct. Nobody is giving this to me, so I'm going to figure it out myself. That's how I first learned networking, operating systems, troubleshooting, and Linux administration. Not from a class. From need. The degree came later. The instinct came first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Still Playing on the Internet
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp3r3n73wekd6lxh17wh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp3r3n73wekd6lxh17wh.png" alt=" " width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That instinct never stopped. It just expanded.&lt;/p&gt;

&lt;p&gt;The girl fixing computers over AIM from a music forum is the same engineer who builds production systems now. The girl helping friends evade bans is the same woman who eventually published machine learning research. The girl who booted Linux off a CD in a school library is the same one who still looks at every locked door and thinks, "okay, so how does this open?"&lt;/p&gt;

&lt;p&gt;My GitHub profile says "Playing on the internet" I was kind of joking when I wrote it, but tbh it's probably the realest thing I've ever written as a bio. I've been online since I was like 11, and the play became the skill, and the skill became the career, and the career became the life.&lt;/p&gt;

&lt;p&gt;None of it started in a classroom or a bootcamp or a lecture hall. It started because a community of people from the WORLD wide web made me feel like I belonged somewhere for the first time in my life. And when you belong somewhere, you build there. You contribute. You learn and grow and share. &lt;/p&gt;

&lt;p&gt;That's how diversity changed my life. Not a program or a panel about representation. A message board full of Black and brown people from Chicago, Jamaica, Suriname, Germany, DC, and a small suburb in the south. People who never once made me feel like I was too much or not enough. They just needed someone who could fix their computer and chill with, and I wanted to help because they were my people. That was the whole pipeline.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>wecoded</category>
      <category>dei</category>
      <category>career</category>
    </item>
    <item>
      <title>Vibe with Code: Plan First, Build Second</title>
      <dc:creator>Ava Barron</dc:creator>
      <pubDate>Sun, 29 Mar 2026 03:18:42 +0000</pubDate>
      <link>https://forem.com/abarron/vibe-with-code-plan-first-build-second-3n8o</link>
      <guid>https://forem.com/abarron/vibe-with-code-plan-first-build-second-3n8o</guid>
      <description>&lt;p&gt;The most expensive mistake engineers make with AI isn't the code. It's skipping the plan.&lt;/p&gt;

&lt;p&gt;Software engineering has never been about writing code first. It's about understanding the problem, exploring approaches, analyzing tradeoffs, then building. But when AI enters the workflow, all of that disappears. We collapse the process into one prompt, the AI fills in every blank on its own, and we call it productivity.&lt;/p&gt;

&lt;p&gt;Rate limiting? The AI picks something. Auth strategy? It picks something. Pagination? It picks something.&lt;/p&gt;

&lt;p&gt;Not necessarily what your system actually needs. But the code compiled, so it must be right, right?&lt;/p&gt;

&lt;h2&gt;
  
  
  Vibe coding works with structure
&lt;/h2&gt;

&lt;p&gt;That structure is plan mode.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A700%2F1%2AejG-LBsgwQaRqQG4MYQxZg.avif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A700%2F1%2AejG-LBsgwQaRqQG4MYQxZg.avif" width="700" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Engineers keep dming me asking how I build apps with AI that don't fall apart. I plan and use agentic teams that review each other's work. It's not one AI doing everything solo. It's a whole pipeline. This is how I get quality output without babysitting every line. This weekend, I decided I would take the time to walk through my actual process.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is Part 1: the planning phase. The part most people skip, and the most expensive part to skip.&lt;/p&gt;

&lt;p&gt;Plan mode is bringing your engineering discipline &lt;em&gt;into&lt;/em&gt; the AI workflow. Same rigor as a design review or an architecture proposal, just applied to how you direct the AI. The tool changed. The engineering didn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The path:&lt;/strong&gt; brain dump your idea → AI generates a full plan → you review it like a design doc → iterate until the architecture is tight. Same starting mess. Completely different result.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you know spec-kit: GitHub's &lt;a href="https://github.com/github/spec-kit" rel="noopener noreferrer"&gt;spec-kit&lt;/a&gt; automates this planning scaffold with /specify, /plan, and /tasks before implementation. This article shows what that discipline looks like under the hood and where your engineering judgment still decides what the gates check and what standards they enforce. If you're already using spec-kit, skip to Iterating on the plan&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Start With the Brain Dump
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A700%2F0%2AM1D4I3VVW_c-vwsn" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A700%2F0%2AM1D4I3VVW_c-vwsn" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before you plan, brain dump. Everything in your head: features, vibes, who it's for, random research you found at 2am, all of it. No filter. The mess is the raw material.&lt;/p&gt;

&lt;p&gt;What I actually typed into Claude Code, in plan mode so I could show the whole process:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwu818iun70gwxbk7gdbo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwu818iun70gwxbk7gdbo.png" width="700" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it. Messy. Incomplete. "idk what else" is literally in there. And that's the point. You're not trying to be polished &lt;em&gt;yet&lt;/em&gt;. You're getting the idea out of your head and into a format the AI can work with.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The key move: This happens in plan mode. You're not just brain dumping into a notes app. You're telling the AI "take this and map it out." Brain dump and plan request in one shot.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Initial Plan Drops
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A700%2F0%2AUPfc-1pUeTSzEN8-" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A700%2F0%2AUPfc-1pUeTSzEN8-" width="700" height="933"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The AI doesn't just say "cool app idea." It comes back with a full Technical Design Document, the kind of artifact a senior engineer hands you in an architecture review.&lt;/p&gt;

&lt;p&gt;It started like this…&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Tech Stack&lt;/span&gt;
| Layer       | Choice             | Why                                                    |
|-------------|--------------------|--------------------------------------------------------|
| Backend     | Node.js + Fastify  | Native JSON Schema validation, fast, clean plugin model|
| ORM + DB    | Prisma + PostgreSQL| Type-safe, great migration UX                          |
| Frontend    | Next.js App Router | SSR for public pages, client-side for app shell        |
| Auth        | Clerk              | OAuth + magic links out of box                         |
| Charts      | Recharts           | Composable, works well in React.                       |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Plus a full file/folder structure, database schema with entity relationships, API endpoints, and an agentic build team. 4 agents across 3 phases:&lt;/p&gt;

&lt;p&gt;What just happened: One prompt in plan mode &amp;gt; a full engineering spec. Tech stack, schema, APIs, build team, dependency graph. Without this step, the AI is making every decision for you. With it, you have something to review and update before a single line of code exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stop
&lt;/h2&gt;

&lt;p&gt;Now here's the part that matters more than anything else in this entire article.&lt;/p&gt;

&lt;p&gt;After generating the TDD, the AI is ready to go. "Let's execute step 1." The plan is sitting right there. The momentum is pulling you forward. Every instinct you have is saying let's gooooo!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdz1t1fyuhr560397zhh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdz1t1fyuhr560397zhh.png" width="700" height="309"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do. Not. Touch. That. Enter. Key.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the moment. This is the whole game right here. The TDD looks impressive: tech stack tables, dependency graphs, four agents ready to build. It's giving senior architect energy. And that's &lt;em&gt;exactly&lt;/em&gt; why you need to stop and &lt;em&gt;read it&lt;/em&gt;!!!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The move: Copy the whole plan. Paste it into a Google Doc. Mark it up like it's a real design review. It is one. Do something. You're the engineering lead now. That TDD is a proposal, not a mandate. Read it like a HLD from a junior engineer. Respect the effort, but question every decision in it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I read mine and caught something on the first pass, Clerk costs money. I'm just showing the process here. I want this free to build but still production safe.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvx2wj915kg569as3j39.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvx2wj915kg569as3j39.png" width="700" height="205"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Still in plan mode.&lt;/p&gt;

&lt;p&gt;Tech stack decision changed before a single line of code was written. Say "yeah go" here and two days later you're ripping auth out of every route handler. Instead, one prompt. &lt;strong&gt;Zero code rewritten. Because there was no code yet.&lt;/strong&gt; That's the whole point.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Call out your constraints early. Want everything free and open-source? Say that now. Already committed to Vercel or AWS? Tell the AI so the architecture accounts for it. Know you want Postgres over Mongo? Flag it. The earlier these constraints live in the plan, the less you refactor later.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Iterating on the plan
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A700%2F0%2AfTFfzCklw5paTxHj" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A700%2F0%2AfTFfzCklw5paTxHj" width="700" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You don't review once and ship the plan. You iterate. Each pass applies a different engineering lens: cost, security, architecture, standards.&lt;/p&gt;

&lt;p&gt;This is where your actual engineering knowledge is important. The AI gave you the ingredients and a recipe. Your job is to taste it before you serve it. Nobody's grandma ever followed a recipe without adjusting the seasoning first.&lt;/p&gt;

&lt;p&gt;My plan went through 7 iterations before I let a single line of code get written.&lt;/p&gt;

&lt;p&gt;It went like this…&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Auth Swap
&lt;/h3&gt;

&lt;p&gt;I immediately caught the plan said to use Clerk. Clerk costs money. I wanted this to be a free build. Stayed in plan mode, asked the AI for alternatives, landed on Better Auth. Free, self-hosted, same OAuth and magic link support. One prompt. &lt;strong&gt;Zero code rewritten. Because there was no code yet.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Adding Gate Agents
&lt;/h3&gt;

&lt;p&gt;The initial plan had 4 builder agents but no reviewers. It had phases but nothing between "build it" and "ship it."&lt;/p&gt;

&lt;p&gt;I added review agents, CI, Security, UX and docs to run between each phase.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4o4qp7424gjs8yiwtyaj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4o4qp7424gjs8yiwtyaj.png" width="700" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They run as blocking gates &lt;em&gt;between&lt;/em&gt; build phases. Next phase doesn't start until they sign off. Think of it like requiring approvals on a PR before it merges, but automated into the build plan itself.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Give your plan a degree
&lt;/h3&gt;

&lt;p&gt;If you already know the best practices for your stack, tell it exactly how you want to update the plan.&lt;/p&gt;

&lt;p&gt;But if you're working in a stack where you have some gaps, feed it engineering books on the design. Best practices, books from authors of the language, data structures and algos, and systems design books on your stack.&lt;/p&gt;

&lt;p&gt;I copied my architecture into a different chat and asked what books I should be following for a TypeScript web app with this structure. I got back with Effective TypeScript, Clean Architecture, Designing Data-Intensive Applications, and a few others.&lt;/p&gt;

&lt;p&gt;Pasted those recommendations back into plan mode. Now the AI isn't following generic best practices. It's following &lt;em&gt;specific&lt;/em&gt; books that apply to what you're building.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fze5nt3c2hpnm98ir583s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fze5nt3c2hpnm98ir583s.png" width="700" height="205"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now the plan has an engineering degree.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. User Review Pauses
&lt;/h3&gt;

&lt;p&gt;I added structured checkpoints after each build phase for me to test. I updated the plan again so that it also gives me a full tutorial on how to test the features it built after each phase. Now when the agentic team pauses and asks me to review, I'm not guessing what to check. The testing guide is right there for me to follow step by step.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Extracting the rules
&lt;/h3&gt;

&lt;p&gt;At this phase the engs rules were embedded in the plan document. I originally pasted a contributing guide I made into the plan. Then I asked plan mode to extract it out of the planning doc and into the repo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hfa3tdtcz9xdr7wp017.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hfa3tdtcz9xdr7wp017.png" width="700" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. DRYing the Plan Itself
&lt;/h3&gt;

&lt;p&gt;Last pass for now, I applied the same engineering principles to the plan that I apply to code. And actually you can even make this easier by just asking the plan to do this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcymim2fzlxmg0uqmk49g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcymim2fzlxmg0uqmk49g.png" width="700" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Transformation
&lt;/h2&gt;

&lt;p&gt;Here's what reviewing and iterating on the plan actually produces.&lt;/p&gt;

&lt;p&gt;Remember it started as a messy brain dump, the "idk what else" prompt. Same app idea. But look at the difference between what the AI first handed me versus what came out after I actually &lt;em&gt;engineered&lt;/em&gt; it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Production Gaps
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbodlugii2gvsqpsma04s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbodlugii2gvsqpsma04s.png" width="700" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49jrhd8l4bwkk6pbyy2t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49jrhd8l4bwkk6pbyy2t.png" width="700" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Every single line in that "after" would have been a production bug or a 2am refactor. Missing indexes on a leaderboard query? That's a slow query that gets slower every day. No timezone strategy? Your streak breaks at midnight for every user not in your time zone. All caught before a single line of code existed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Engineering Standards
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(nothing tbh)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;After:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj98vbtkbygsnfd2nmxdn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj98vbtkbygsnfd2nmxdn.png" width="700" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One file. Single source of truth. Every agent follows it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The plan went from zero engineering standards to a CONTRIBUTING.md backed by five books. Now it's building against a spec that would pass a real code review.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Build Pipeline
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt; 4 agents across 3 phases. No reviewers. No gates. No standards. Build it. Ship it. Hope it works?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After:&lt;/strong&gt; 12 builder agents + 4 gate reviewers (CI, Security, UX, Docs) across 4 phases with blocking gates. Every agent reads CONTRIBUTING.md first. User review pause after every gate with copy-paste testing guides.&lt;/p&gt;

&lt;p&gt;Same starting point. Completely different destination. The brain dump didn't change. The &lt;em&gt;engineering&lt;/em&gt; did. That's what happens when you treat the plan like a real design review instead of a formality to skip past.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Tonight
&lt;/h2&gt;

&lt;p&gt;Open your AI coding tool. Claude Code, Cursor, Copilot, whatever you use. Start a planning session. Dump your app idea. The messy version, the one with "idk" still in it. Add: "map this out E2E with an agentic team."&lt;/p&gt;

&lt;p&gt;Read what comes back like an engineering lead. Copy it into a Google Doc and mark it up like it's a real design review, because it is one. When you read that plan, look for one thing first: the riskiest assumption. That's your first iteration. Question it, look for gaps, add books, etc.&lt;/p&gt;

&lt;p&gt;Ask plan mode to review its own plan. Keep going until the plan is something you would stake production traffic on.&lt;/p&gt;

&lt;p&gt;Or if brain-dumping isn't your style, write the TDD yourself first and hand it to the AI. "Here's my design doc. Build me an agentic team around this plan." Same destination, different starting point. The point is, have a real plan.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Up next:&lt;/strong&gt; Your plan is done. Now we build. The next article covers speccing features collaboratively with the AI, the build → review → you check → iterate loop, and what "ship-ready" actually means when your whole team is AI agents.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Everything referenced in this article, from tools to books to research:&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://docs.anthropic.com/en/docs/claude-code/overview" rel="noopener noreferrer"&gt;Claude Code&lt;/a&gt; — AI coding tool with plan mode&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/github/spec-kit" rel="noopener noreferrer"&gt;GitHub Spec Kit&lt;/a&gt; — Open-source toolkit for spec-driven development (/specify, /plan, /tasks)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.better-auth.com/" rel="noopener noreferrer"&gt;Better Auth&lt;/a&gt; — Free, self-hosted authentication&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fastify.dev/" rel="noopener noreferrer"&gt;Fastify&lt;/a&gt; — Fast Node.js web framework with native JSON Schema validation&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.prisma.io/" rel="noopener noreferrer"&gt;Prisma&lt;/a&gt; — Type-safe ORM for Node.js and TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.pgbouncer.org/" rel="noopener noreferrer"&gt;PgBouncer&lt;/a&gt; — PostgreSQL connection pooler&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/marnusw/date-fns-tz" rel="noopener noreferrer"&gt;date-fns-tz&lt;/a&gt; — Timezone support for date-fns&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://recharts.org/" rel="noopener noreferrer"&gt;Recharts&lt;/a&gt; — Composable charting library for React&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Books Referenced
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://effectivetypescript.com/" rel="noopener noreferrer"&gt;Effective TypeScript&lt;/a&gt; — Dan Vanderkam (O'Reilly, 2nd Edition)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.oreilly.com/library/view/clean-architecture-a/9780134494272/" rel="noopener noreferrer"&gt;Clean Architecture&lt;/a&gt; — Robert C. Martin&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/" rel="noopener noreferrer"&gt;Designing Data-Intensive Applications&lt;/a&gt; — Martin Kleppmann (O'Reilly)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://web.stanford.edu/~ouster/cgi-bin/aposd.php" rel="noopener noreferrer"&gt;A Philosophy of Software Design&lt;/a&gt; — John Ousterhout (2nd Edition)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF" rel="noopener noreferrer"&gt;System Design Interview&lt;/a&gt; — Alex Xu (Volume 1 &amp;amp; 2)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.oreilly.com/library/view/building-micro-frontends/9781492082989/" rel="noopener noreferrer"&gt;Building Micro-Frontends&lt;/a&gt; — Luca Mezzalira (O'Reilly)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Research
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://pubmed.ncbi.nlm.nih.gov/12585811/" rel="noopener noreferrer"&gt;Counting Blessings Versus Burdens&lt;/a&gt; — Emmons &amp;amp; McCullough, 2003&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>software</category>
    </item>
  </channel>
</rss>
