<?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: Mykola Kondratiuk</title>
    <description>The latest articles on DEV Community by Mykola Kondratiuk (@itskondrat).</description>
    <link>https://dev.to/itskondrat</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%2F3753205%2Fa206f74a-98be-4c2b-abbd-f06ec964327b.jpg</url>
      <title>DEV Community: Mykola Kondratiuk</title>
      <link>https://dev.to/itskondrat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itskondrat"/>
    <language>en</language>
    <item>
      <title>Issue Tracking Is Dead - Here's What PMs Actually Manage Now</title>
      <dc:creator>Mykola Kondratiuk</dc:creator>
      <pubDate>Wed, 08 Apr 2026 08:27:29 +0000</pubDate>
      <link>https://dev.to/itskondrat/issue-tracking-is-dead-heres-what-pms-actually-manage-now-12ih</link>
      <guid>https://dev.to/itskondrat/issue-tracking-is-dead-heres-what-pms-actually-manage-now-12ih</guid>
      <description>&lt;p&gt;Linear's CEO just declared issue tracking dead. And honestly? The data's been saying this for months.&lt;/p&gt;

&lt;p&gt;25% of new issues on Linear are created by AI agents. That number was 5x lower three months ago. 75% of enterprise workspaces have coding agents installed. The agent creates the issue, writes the code, opens the PR.&lt;/p&gt;

&lt;p&gt;So what does the PM do when the entire delivery pipeline runs itself?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Accountability Chain Problem
&lt;/h2&gt;

&lt;p&gt;Here's what broke. The traditional workflow has an implicit accountability chain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Human creates issue → Human picks it up → PM owns the outcome
      ↑ context          ↑ delivery          ↑ accountability
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When agents enter the chain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent creates issue → Agent writes code → Agent reviews PR → PM owns... what?
      ↑ ???                ↑ ???               ↑ ???              ↑ everything
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The accountability chain fractures. Nobody validated the agent's issue was worth building. Nobody checked the agent's acceptance criteria. The PM is suddenly accountable for an outcome they didn't initiate, built by entities they can't have a standup with.&lt;/p&gt;

&lt;p&gt;I hit this wall managing my own agent workflows about two months ago. Stopped assigning work, started auditing what agents decided to do. The shift was disorienting until I named it: I'm not managing work anymore. I'm governing outcomes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Anthropic's Glasswing - A PM Framework in Disguise
&lt;/h2&gt;

&lt;p&gt;Anthropic launched Project Glasswing yesterday. On the surface it's a safety program for their most powerful model. 12 vetted organizations. Scoped access. Usage audits. $100M in accountability infrastructure.&lt;/p&gt;

&lt;p&gt;But look at the five principles they built:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scope access&lt;/strong&gt; - not every agent gets access to everything&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vet use cases&lt;/strong&gt; - just because it can doesn't mean it should&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit outputs&lt;/strong&gt; - systematic review of what agents produce&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget accountability&lt;/strong&gt; - factor governance into the cost model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Know when NOT to deploy&lt;/strong&gt; - some workflows need humans&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's not a safety framework. That's a PM governance playbook.&lt;/p&gt;

&lt;p&gt;If you're running agent workflows in your org, here's how those principles translate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;agent_governance&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;scope&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;define which systems each agent can access&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;set boundaries BEFORE deployment, not after incidents&lt;/span&gt;
  &lt;span class="na"&gt;vetting&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;map which workflows benefit from agent-generated work&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;identify workflows that need human initiation&lt;/span&gt;
  &lt;span class="na"&gt;audit&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;build review cycles for agent-created issues&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;quality gates at each pipeline stage&lt;/span&gt;
  &lt;span class="na"&gt;accountability&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;define who owns outcomes when agents create the work&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;factor incident response into agent deployment costs&lt;/span&gt;
  &lt;span class="na"&gt;boundaries&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;identify workflows requiring human judgment&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;document why certain workflows stay manual&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What I Learned Rebuilding 17 Agent Accountability Chains in One Afternoon
&lt;/h2&gt;

&lt;p&gt;A few weeks back, a platform change forced me to migrate my entire agent setup in one afternoon. The migration itself wasn't the hard part - swapping configs, updating endpoints, that's mechanical.&lt;/p&gt;

&lt;p&gt;The hard part was rebuilding "who owns what."&lt;/p&gt;

&lt;p&gt;Every agent had implicit accountability chains I'd never written down. This agent creates issues but a human reviews them. That agent writes code but only in specific repos. Another agent can deploy to staging but never production.&lt;/p&gt;

&lt;p&gt;When I had to rebuild from scratch, I realized none of those chains were documented. They lived in my head. That's fine for one person running a handful of agents. It's a disaster for a team.&lt;/p&gt;

&lt;p&gt;The exercise took an hour. I mapped every agent to its access scope, its review requirements, and its accountability chain. If you're running any kind of agent workflow, do this before your platform forces you to:&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="gu"&gt;## Agent: Issue Creator&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Access: Linear workspace, read-only on codebase
&lt;span class="p"&gt;-&lt;/span&gt; Can create: Bug reports, feature suggestions
&lt;span class="p"&gt;-&lt;/span&gt; Review required: Human validates before issue enters sprint
&lt;span class="p"&gt;-&lt;/span&gt; Accountable: PM (me) for issue quality

&lt;span class="gu"&gt;## Agent: Code Writer  &lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Access: Specific repos only, staging environment
&lt;span class="p"&gt;-&lt;/span&gt; Can create: PRs, branch commits
&lt;span class="p"&gt;-&lt;/span&gt; Review required: Human code review before merge
&lt;span class="p"&gt;-&lt;/span&gt; Accountable: Tech lead for code quality, PM for scope
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Simple? Yeah. But I guarantee most teams running agents haven't done it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 10x Employee Governance Gap
&lt;/h2&gt;

&lt;p&gt;The "10x employee" narrative is everywhere right now. One person plus AI replaces five. Solo founder to $80M exit. The numbers are impressive.&lt;/p&gt;

&lt;p&gt;Nobody's asking the governance question though.&lt;/p&gt;

&lt;p&gt;The 10x employee makes judgment calls at 5x the rate. Runs agent stacks that drift incrementally. Produces outputs nobody else can review because nobody else has context on what the agents actually did.&lt;/p&gt;

&lt;p&gt;I've seen agent drift firsthand. It's not dramatic. It's a half-percent quality shift per week. The agent interprets a requirement slightly off. Over a month, those tiny drifts compound into something you wouldn't have shipped manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Dies, What Survives
&lt;/h2&gt;

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

&lt;ul&gt;
&lt;li&gt;Status updates (agent knows its status)&lt;/li&gt;
&lt;li&gt;Task assignment (agent picks up work)&lt;/li&gt;
&lt;li&gt;Progress tracking (pipeline is observable)&lt;/li&gt;
&lt;li&gt;Manual triage (agent prioritizes on data)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Survives and gets harder:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Outcome definition&lt;/li&gt;
&lt;li&gt;Quality gates&lt;/li&gt;
&lt;li&gt;Accountability chains&lt;/li&gt;
&lt;li&gt;Agent governance&lt;/li&gt;
&lt;li&gt;Stakeholder alignment&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What to Do Monday Morning
&lt;/h2&gt;

&lt;p&gt;If you're a PM reading this and thinking "ok but what do I actually change" - here's the practical version:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Audit your current agent usage. Which agents create work items? Which write code? Which have production access?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Map accountability chains. For each agent, who owns the outcome of what it produces?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build review cycles. Not for everything - for the high-risk outputs. Agent-created issues that go to sprint. Agent-written code that touches production.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Document boundaries. Which workflows stay manual? Why? Write it down before someone automates them without asking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set quality gates. What's the bar for agent outputs? How do you measure drift over time?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Linear's CEO just told you tracking is dead. The PM who builds agent governance this week is the PM who stays relevant next year.&lt;/p&gt;

&lt;p&gt;What's your agent governance setup look like? Curious how other teams are handling this.&lt;/p&gt;

</description>
      <category>projectmanagement</category>
      <category>ai</category>
      <category>agile</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Anthropic's 3-Agent Harness Is Just a Sprint - And That's the Point</title>
      <dc:creator>Mykola Kondratiuk</dc:creator>
      <pubDate>Sun, 05 Apr 2026 08:53:28 +0000</pubDate>
      <link>https://dev.to/itskondrat/anthropics-3-agent-harness-is-just-a-sprint-and-thats-the-point-3k8o</link>
      <guid>https://dev.to/itskondrat/anthropics-3-agent-harness-is-just-a-sprint-and-thats-the-point-3k8o</guid>
      <description>&lt;p&gt;I've been mapping PM workflows to agent architectures for months. Then Anthropic went and published the diagram.&lt;/p&gt;

&lt;p&gt;Their multi-agent harness for autonomous software engineering has three roles:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Planner → takes short prompt, outputs full spec
Generator → takes spec, builds output  
Evaluator → runs tests, scores against contracts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's scope, execute, review. That's a sprint. They just compiled project management into agent infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Mapping
&lt;/h2&gt;

&lt;p&gt;I sat down and compared the harness to what I do every sprint:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Harness Role&lt;/th&gt;
&lt;th&gt;PM Equivalent&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Planner&lt;/td&gt;
&lt;td&gt;Scoping / Requirements&lt;/td&gt;
&lt;td&gt;Expands vague input into actionable spec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generator&lt;/td&gt;
&lt;td&gt;Sprint Execution&lt;/td&gt;
&lt;td&gt;Builds the thing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evaluator&lt;/td&gt;
&lt;td&gt;Acceptance Criteria / QA&lt;/td&gt;
&lt;td&gt;Tests output against contracts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Iteration Loop&lt;/td&gt;
&lt;td&gt;Sprint Retro&lt;/td&gt;
&lt;td&gt;Feeds results back, adjusts approach&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The loop runs 5-15 iterations over 2-6 hours. Each cycle, the Evaluator scores the output and feeds results back to the Planner. The Planner adjusts the spec. The Generator tries again.&lt;/p&gt;

&lt;p&gt;Replace "iteration" with "sprint" and "contract" with "acceptance criteria" and you have every PM's weekly cycle.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cost/Quality Tradeoff Is a PM Problem
&lt;/h2&gt;

&lt;p&gt;Here's where it gets interesting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Solo agent run: 20 minutes, $9&lt;/li&gt;
&lt;li&gt;Full 3-agent harness: 6 hours, $200&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;40x cost difference. The question: when is it worth it?&lt;/p&gt;

&lt;p&gt;I've been running agent pipelines where I make this call daily. Quick config change? Solo run. Feature touching three services? Full pipeline. The judgment is identical to sprint planning - which items get the full team, which get a quick fix.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# pseudo-decision tree for harness allocation
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;complexity&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;THRESHOLD&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;run_solo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;budget&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;20min&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;run_harness&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;planner&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;spec_agent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;generator&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;build_agent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="n"&gt;evaluator&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;test_agent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;max_iterations&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;budget&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;time_limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;6hrs&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That decision tree is resource allocation. PMs do it every sprint. The currency changed from developer-hours to compute-dollars, but the judgment is the same.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned Migrating My Own Pipeline
&lt;/h2&gt;

&lt;p&gt;After Anthropic changed their architecture, I had to migrate my agent pipeline to match. The Planner/Generator/Evaluator pattern actually made things clearer.&lt;/p&gt;

&lt;p&gt;Before, I had agents with fuzzy boundaries - some planned and executed, some executed and reviewed. The separation of concerns forced better thinking about where each decision lives.&lt;/p&gt;

&lt;p&gt;The biggest lesson: the Evaluator is not optional. I had a pipeline running without proper evaluation criteria and the output quality was inconsistent - some runs were excellent, some were garbage. Adding structured evaluation with clear contracts was the single biggest improvement. Same as adding acceptance criteria to user stories.&lt;/p&gt;

&lt;h2&gt;
  
  
  The FreeBSD Warning
&lt;/h2&gt;

&lt;p&gt;An AI agent hacked FreeBSD in 4 hours. Autonomously. Nobody told it to.&lt;/p&gt;

&lt;p&gt;That's a harness with no scope constraints on the Planner and no Evaluator checking outputs. The Generator just ran until it accomplished... something.&lt;/p&gt;

&lt;p&gt;In PM terms: shipping without QA. Except in the agent world, "bugs" means "autonomous systems exceeding their mandate at machine speed."&lt;/p&gt;

&lt;p&gt;The Evaluator role is the governance layer. If you're building agent systems without one, you're shipping without QA. It works fine until it doesn't, and when it doesn't, it fails spectacularly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "Harness Design" Actually Means for Builders
&lt;/h2&gt;

&lt;p&gt;Mollick's 3-layer model puts the harness at the top - above the model, above the app. The harness determines what agents can actually do.&lt;/p&gt;

&lt;p&gt;For builders and PMs working with agent systems:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Define your evaluation contracts first.&lt;/strong&gt; Before you build, decide what "done" looks like. Specific enough that an automated system can check it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Separate planning from execution.&lt;/strong&gt; The Planner and Generator should have different scopes. Don't let one agent do both.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Budget your iterations.&lt;/strong&gt; 15 iterations is Anthropic's upper bound. What's yours? Set it explicitly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make cost/quality tradeoffs visible.&lt;/strong&gt; Track which tasks get the full harness vs solo runs. Build your own decision criteria.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GPT-5.4 just hit 75% on desktop task benchmarks - above human level for routine knowledge work. The question isn't "should I automate?" anymore. It's "what harness do I build?"&lt;/p&gt;

&lt;p&gt;If you've been running sprints, you already know how. The vocabulary just changed.&lt;/p&gt;




&lt;p&gt;What harness patterns are you seeing in your agent architectures? I'm curious how others are handling the Planner/Evaluator split.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>career</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The Layoff-Proof PM: Why Influence Without Authority Is Your Career Insurance in 2026</title>
      <dc:creator>Mykola Kondratiuk</dc:creator>
      <pubDate>Wed, 01 Apr 2026 08:46:41 +0000</pubDate>
      <link>https://dev.to/itskondrat/the-layoff-proof-pm-why-influence-without-authority-is-your-career-insurance-in-2026-l</link>
      <guid>https://dev.to/itskondrat/the-layoff-proof-pm-why-influence-without-authority-is-your-career-insurance-in-2026-l</guid>
      <description>&lt;p&gt;45,000+ tech jobs cut in Q1 2026. Andreessen on 20VC calling AI layoffs a "silver bullet excuse" for overstaffing. Cognizant's updated report: 93% of jobs are now AI-affected.&lt;/p&gt;

&lt;p&gt;Whether you believe the macro narrative or not, the PM reading this has one real question: can your job be replaced by a good prompt?&lt;/p&gt;

&lt;p&gt;I've been thinking about this a lot lately. Not in a "time to panic" way - more like a "let's be honest about what actually survives" way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The skill you've had all along
&lt;/h2&gt;

&lt;p&gt;Here's what I keep coming back to: project managers have never had formal authority over the people they coordinate. No direct reports. No budget control in most cases. Just influence - through clarity, alignment, trust, and knowing when to push and when to step back.&lt;/p&gt;

&lt;p&gt;Jessica Fain called this "the one skill AI can't replace" on Lenny's Podcast this week. She wasn't talking about PMs specifically, but she might as well have been. Influence without authority is what we do.&lt;/p&gt;

&lt;p&gt;The thing is, that skill is getting &lt;em&gt;more&lt;/em&gt; valuable, not less. Because now you're not just influencing engineers and executives. You're also setting context for AI agents - writing the specs they execute on, evaluating whether their output is good enough to ship, making judgment calls when they hit an edge case.&lt;/p&gt;

&lt;p&gt;The PM who can do both - align humans &lt;em&gt;and&lt;/em&gt; orchestrate AI agents - is genuinely hard to replace.&lt;/p&gt;

&lt;h2&gt;
  
  
  The PMs who are at risk
&lt;/h2&gt;

&lt;p&gt;Let me be direct: if your job is mostly project administration - updating Jira, running standups, compiling status reports, chasing approvals - AI already handles that. Not theoretically. Actually, today.&lt;/p&gt;

&lt;p&gt;Stripe's engineering team ships 1,300 PRs per week triggered by Slack emojis. The value in that org isn't in the people moving tickets around. It's in the people who designed the trigger, evaluate the output, and handle the edge cases when something breaks.&lt;/p&gt;

&lt;p&gt;Marty Cagan has been saying for years that PMs who are "project administrators" are in a fragile position. AI just made that fragile position visible faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the layoff-proof PM career actually looks like
&lt;/h2&gt;

&lt;p&gt;I've been rebuilding my own practice around four things:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Context design.&lt;/strong&gt; Writing specs that AI agents can actually execute on. This sounds simple until you watch an agent fail because your requirements were ambiguous. The PM who writes clear, unambiguous context is worth a lot more than the one who writes beautiful documents nobody reads.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Evaluation practice.&lt;/strong&gt; Knowing when AI output is good enough to ship and when it's dangerously wrong. This is the highest-leverage skill right now. Most teams don't have anyone systematically doing this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Agent governance.&lt;/strong&gt; Autonomy levels, escalation frameworks, monitoring. When does an agent need a human in the loop? What's the blast radius if it makes the wrong call? These are PM questions dressed in AI clothes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Visible ROI.&lt;/strong&gt; Don't just use AI tools. Show what changed because you orchestrate them well. "I shipped the same roadmap in half the time" is a career argument. "I use AI for PRDs" is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  The supervisor class is forming
&lt;/h2&gt;

&lt;p&gt;Fortune ran a piece this week about a new professional class forming: people whose value is orchestrating autonomous agents. This isn't 2030 science fiction - it's happening in the better engineering orgs right now.&lt;/p&gt;

&lt;p&gt;PMs are naturally positioned for this. We already think in terms of delegation, evaluation, and escalation. We already manage across functions without direct authority. The skills transfer directly - they just need to be applied to a new kind of team member.&lt;/p&gt;

&lt;p&gt;The title "AI-Native PM" doesn't exist yet as an industry label. But the role does. And the people building it now have a compounding advantage - Anthropic's Economic Index confirmed that 6+ months of AI orchestration experience creates a measurable productivity gap versus people just starting out.&lt;/p&gt;

&lt;h2&gt;
  
  
  One uncomfortable truth
&lt;/h2&gt;

&lt;p&gt;If you're waiting for a clean path - a certification, a course, a new job title - you're going to wait through the part where the advantage compounds for the people who started experimenting already.&lt;/p&gt;

&lt;p&gt;The PMs getting laid off aren't the ones running agent teams. They're the ones doing status-report theater that an AI generates in 30 seconds.&lt;/p&gt;

&lt;p&gt;The ones staying are the ones whose value was always in the judgment, not the document.&lt;/p&gt;

&lt;p&gt;That's been the PM superpower all along. The AI era just made it more obvious.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What's your read on this? Are you seeing this split happening in your org - between PMs who are adapting and those who aren't? Curious what the actual tipping point looks like from the inside.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Stopped Writing PRDs. I Started Writing Prompts. Here's What Broke (and What Worked)</title>
      <dc:creator>Mykola Kondratiuk</dc:creator>
      <pubDate>Sun, 29 Mar 2026 10:16:55 +0000</pubDate>
      <link>https://dev.to/itskondrat/i-stopped-writing-prds-i-started-writing-prompts-heres-what-broke-and-what-worked-2717</link>
      <guid>https://dev.to/itskondrat/i-stopped-writing-prds-i-started-writing-prompts-heres-what-broke-and-what-worked-2717</guid>
      <description>&lt;p&gt;About six months ago I had a weird realization: the prompts I was writing for AI agents looked a lot like the PRDs I used to write for engineers. Not identical - but structurally, the job was the same. You're trying to encode intent in text so someone (or something) else can act on it without you in the room.&lt;/p&gt;

&lt;p&gt;I started treating them the same way. It broke things. Then I fixed them. This is that story.&lt;/p&gt;




&lt;h2&gt;
  
  
  The experiment
&lt;/h2&gt;

&lt;p&gt;I manage a team and run about a dozen AI agents in parallel - content, data analysis, competitive monitoring, etc. At some point I noticed I was spending 30-40 minutes per agent writing detailed setup docs. Background context, edge cases, behavior guidelines, failure modes.&lt;/p&gt;

&lt;p&gt;It looked exactly like a PRD.&lt;/p&gt;

&lt;p&gt;So I tried the obvious thing: started writing my PRDs the same way I write agent prompts. Ruthlessly specific. Present tense. Active voice. Outcomes stated, not features. No "we will investigate" - actual decisions.&lt;/p&gt;

&lt;p&gt;The engineers actually liked it. Reviews got faster. Fewer "what does this mean?" Slack messages. One dev said it was the clearest spec he'd gotten in years.&lt;/p&gt;

&lt;p&gt;But then I made the reverse mistake.&lt;/p&gt;




&lt;h2&gt;
  
  
  What broke when I went the other way
&lt;/h2&gt;

&lt;p&gt;I started writing agent prompts like PRDs. Background sections. Stakeholder notes. "As a system that helps users..." framing.&lt;/p&gt;

&lt;p&gt;The agents got worse.&lt;/p&gt;

&lt;p&gt;Not dramatically worse - subtly worse. More hedging. More "I should clarify that..." type responses. The agents started behaving like junior PMs trying to look thorough rather than senior engineers shipping things.&lt;/p&gt;

&lt;p&gt;Took me a few weeks to figure out what happened. PRDs are written &lt;em&gt;about&lt;/em&gt; a system. Prompts are instructions &lt;em&gt;to&lt;/em&gt; a system. Same words, completely different relationship.&lt;/p&gt;

&lt;p&gt;A PRD says "the system should handle edge case X by doing Y." A prompt that works says "when X happens, do Y. if you're unsure, ask."&lt;/p&gt;

&lt;p&gt;The framing changes how the model interprets authority. "Should" in a PRD is a requirement. "Should" in a prompt is a hedge.&lt;/p&gt;




&lt;h2&gt;
  
  
  The framework that clicked
&lt;/h2&gt;

&lt;p&gt;I ended up with something I call spec layering. Three levels:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level 1: Identity and authority&lt;/strong&gt;&lt;br&gt;
Who is this agent? What decisions can it make without asking? What's explicitly off-limits?&lt;/p&gt;

&lt;p&gt;This is the hardest one to write. Most people skip it or make it vague. "Be helpful and accurate" isn't identity - it's noise. "Make engagement decisions autonomously. Escalate anything that touches pricing or partnerships" - that's authority.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level 2: Operating procedures&lt;/strong&gt;&lt;br&gt;
The actual behavior spec. Step by step. Concrete. Written like you're explaining to a very competent new hire who doesn't yet know your specific context.&lt;/p&gt;

&lt;p&gt;I borrowed from how we write runbooks for on-call engineers. If production breaks at 3am, the runbook can't assume the on-call has full context. It has to be self-contained.&lt;/p&gt;

&lt;p&gt;Agent prompts are runbooks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level 3: Failure modes and recovery&lt;/strong&gt;&lt;br&gt;
What does the agent do when something unexpected happens? Default behavior in ambiguous situations?&lt;/p&gt;

&lt;p&gt;This is where most agent prompts fall apart. You spec the happy path and leave edge cases to "use judgment." That's not a spec - that's hope.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where this maps back to PM work
&lt;/h2&gt;

&lt;p&gt;The thing I keep coming back to: writing a good prompt is the same skill as writing a good acceptance criterion.&lt;/p&gt;

&lt;p&gt;Both are trying to pre-answer the question "is this done?" Both require you to be specific enough that two different people (or models) would give the same answer. Both fail the same way - too abstract, too much left to interpretation.&lt;/p&gt;

&lt;p&gt;The difference is that with engineers you can have a conversation when the spec is unclear. With an agent you find out at runtime, usually at the worst possible moment.&lt;/p&gt;

&lt;p&gt;So the bar is higher. You have to write the prompt as if you won't be available to answer questions. Because you won't.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I actually changed
&lt;/h2&gt;

&lt;p&gt;Practically, I now write agent prompts the way I write incident response playbooks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use numbered steps, not prose&lt;/li&gt;
&lt;li&gt;State the success condition explicitly before the steps&lt;/li&gt;
&lt;li&gt;Include a "when this breaks" section&lt;/li&gt;
&lt;li&gt;Avoid passive voice and hedging language entirely&lt;/li&gt;
&lt;li&gt;Never use "should" - use "do" or "don't"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For product specs I pulled the other direction - more concrete outcomes, less explanation of reasoning, explicit escalation criteria.&lt;/p&gt;

&lt;p&gt;Both got better.&lt;/p&gt;




&lt;h2&gt;
  
  
  The uncomfortable implication
&lt;/h2&gt;

&lt;p&gt;If writing a good prompt requires the same clarity as writing a good spec, then most product specs are not actually that good. The ambiguity we tolerate in PRDs gets papered over by smart engineers asking smart questions.&lt;/p&gt;

&lt;p&gt;Remove the smart human intermediary and the ambiguity becomes a bug.&lt;/p&gt;

&lt;p&gt;I think that's what a lot of the vibe coding discourse is actually about, underneath the hype. Not whether AI can write code - it clearly can. Whether the person directing it can write specs. Historically that's been optional. Increasingly it's not.&lt;/p&gt;




&lt;p&gt;If you've tried treating prompts like specs (or vice versa) I'm curious what you found. The failure modes in particular - would love to compare notes.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>projectmanagement</category>
      <category>vibecoding</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>I Run 10+ AI Agents Daily - Here's What Nobody Tells You About Orchestration</title>
      <dc:creator>Mykola Kondratiuk</dc:creator>
      <pubDate>Sat, 28 Mar 2026 09:32:09 +0000</pubDate>
      <link>https://dev.to/itskondrat/i-run-10-ai-agents-daily-heres-what-nobody-tells-you-about-orchestration-46f7</link>
      <guid>https://dev.to/itskondrat/i-run-10-ai-agents-daily-heres-what-nobody-tells-you-about-orchestration-46f7</guid>
      <description>&lt;p&gt;Somewhere around agent number seven I realized I had a management problem.&lt;/p&gt;

&lt;p&gt;Not a technical one. The agents worked fine individually. Each one did its job - one handled social media, another monitored codebases, a third drafted content, and so on. The problem was that nobody was watching the watchers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The meta-orchestration problem
&lt;/h2&gt;

&lt;p&gt;When you run one AI agent, you manage it directly. Check its output, fix its prompts, adjust its schedule. Simple.&lt;/p&gt;

&lt;p&gt;When you run ten, you need something to manage the managers. And that something turns out to be... mostly project management. The same boring PM skills I've been using for fifteen years.&lt;/p&gt;

&lt;p&gt;Here's what I mean. Agent A posts a comment. Agent B is supposed to track whether anyone replies. Agent C is supposed to draft a follow-up based on the reply context. Sounds great in theory. In practice, Agent B checks notifications at 10:15 but Agent A posted at 10:14 and the reply came at 10:13. Agent C never fires because Agent B never saw the reply.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The coordination layer is harder than any individual agent.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually breaks
&lt;/h2&gt;

&lt;p&gt;It's never the AI model. Claude is smart enough. GPT is smart enough. The failure mode is always one of three things:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;State drift.&lt;/strong&gt; Agent thinks it already did something because a tracking file got corrupted, or because a heartbeat interrupted mid-write. Now it skips the task forever. You don't notice for three days.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context loss.&lt;/strong&gt; Agent A has context that Agent B needs but there's no clean way to pass it. You end up with twelve JSON files that are basically a bad database, and every agent reads slightly stale data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Timing collisions.&lt;/strong&gt; Two agents try to update the same file within seconds of each other. One wins, one loses. The loser's work just... disappears. No error. No log. Just gone.&lt;/p&gt;

&lt;h2&gt;
  
  
  The PM framework I accidentally built
&lt;/h2&gt;

&lt;p&gt;After enough of these failures I started treating my agent fleet like a team. Sounds obvious in retrospect but it took me a while.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Daily standups (automated).&lt;/strong&gt; Each agent writes a heartbeat log at the end of every run. Not just "done" but what it did, what it skipped, what failed. I grep these every morning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sprint planning (for real).&lt;/strong&gt; Each agent has a schedule.json that gets generated the night before. Tasks are assigned with capacity limits, jitter for timing randomization, and anti-collision spacing. Same concept as sprint planning - finite capacity, prioritized backlog, explicit assignments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retrospectives (weekly insights).&lt;/strong&gt; Each agent updates an INSIGHTS.md with what worked and what didn't. I review these on Sundays. The patterns are surprisingly consistent - certain topics perform well, certain times of day are better, certain approaches keep failing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deduplication as a first-class concern.&lt;/strong&gt; Every agent maintains tracking files. Before doing anything, it checks "did I already do this?" This is the single most important thing. Without it, agents spam the same action repeatedly and you get flagged or banned.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable realization
&lt;/h2&gt;

&lt;p&gt;The agents don't need better AI. They need better project management.&lt;/p&gt;

&lt;p&gt;Most of my debugging sessions aren't about prompt engineering or model selection. They're about figuring out why a tracking file has a stale entry, or why a schedule generator assigned 12 tasks when the daily limit is 8, or why two agents both tried to follow the same person.&lt;/p&gt;

&lt;p&gt;It's ops work. It's coordination work. It's the same stuff PMs do when managing a team of junior developers - write clear briefs, set explicit boundaries, track who did what, and build in verification at every step.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd tell someone starting this
&lt;/h2&gt;

&lt;p&gt;Don't start with the orchestration framework. Start with one agent. Make it work reliably for a week. Then add a second one and immediately discover all the ways they step on each other. Fix those. Then maybe add a third.&lt;/p&gt;

&lt;p&gt;The architecture emerges from the problems you actually hit, not from the framework you designed upfront. Every time I tried to plan the coordination layer in advance I got it wrong. Every time I just let it break and then fixed the specific failure, I ended up with something that actually worked.&lt;/p&gt;

&lt;p&gt;Also - and this is the part that took me the longest to accept - sometimes the right answer is to just run fewer agents. Not every task needs automation. The ones that do need it tend to make that pretty obvious.&lt;/p&gt;




&lt;p&gt;If you're running multiple AI agents and dealing with similar coordination headaches, I'd genuinely like to hear what patterns you've found. The space is moving fast and I keep learning new approaches from other builders.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>vibecoding</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Scanned 100 AI Codebases - Here's What I Found</title>
      <dc:creator>Mykola Kondratiuk</dc:creator>
      <pubDate>Thu, 19 Mar 2026 08:41:48 +0000</pubDate>
      <link>https://dev.to/itskondrat/i-scanned-100-ai-codebases-heres-what-i-found-55be</link>
      <guid>https://dev.to/itskondrat/i-scanned-100-ai-codebases-heres-what-i-found-55be</guid>
      <description>&lt;p&gt;I've been building VibeCheck for the past few months - it's a security scanner specifically for AI-generated code. And after scanning over a hundred real codebases that people built with Cursor, Copilot, Claude, and various other AI tools, I have thoughts.&lt;/p&gt;

&lt;p&gt;Not the "AI is dangerous" hot take. Something more specific than that.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pattern that kept showing up
&lt;/h2&gt;

&lt;p&gt;Almost every codebase had the same category of issue. Not SQL injection or XSS or anything that would show up in a classic OWASP checklist. The dominant problem was what I started calling &lt;strong&gt;trust misconfigurations&lt;/strong&gt; - places where the code just... assumed everything was fine.&lt;/p&gt;

&lt;p&gt;Open CORS policies. Service accounts with admin permissions because that was the fastest path to getting it working. API keys hardcoded in config files that weren't in .gitignore. Input that got passed straight into shell commands with no sanitization.&lt;/p&gt;

&lt;p&gt;None of it was malicious. The AI wasn't trying to introduce vulnerabilities. It was just optimizing for "make it work" and had zero weight on "make it survivable in production."&lt;/p&gt;

&lt;h2&gt;
  
  
  The thing that surprised me most
&lt;/h2&gt;

&lt;p&gt;I expected the biggest problems in the actual logic - like the AI misunderstanding authentication flows or getting crypto wrong. That exists too, but it's not the main thing.&lt;/p&gt;

&lt;p&gt;The main thing is environmental. All these tiny decisions about permissions and access and trust that a senior dev would make automatically, almost subconsciously, because they've been burned before - the AI just doesn't make those decisions. It picks the path of least resistance every time.&lt;/p&gt;

&lt;p&gt;One project had a DB connection string with full admin creds, no connection pooling limits, and a query that accepted raw user input. Technically functional. Completely fine for local dev. The kind of thing that gets quietly exploited six months after launch.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually helps
&lt;/h2&gt;

&lt;p&gt;Scanning after the fact (what we do with VibeCheck) catches the obvious stuff. But the real fix is earlier in the loop.&lt;/p&gt;

&lt;p&gt;The projects that had the least issues were the ones where the developer was actually paying attention during generation - not just accepting output wholesale but reading it, asking "wait, why does this need admin access?" That friction. Even a little bit of it makes a big difference.&lt;/p&gt;

&lt;p&gt;Some people are building this into their prompts - explicitly telling the AI to follow least-privilege principles, to validate all inputs, to not hardcode credentials. Works okay. Feels like workarounds.&lt;/p&gt;

&lt;p&gt;The better solution is probably tooling that runs in the background during vibe coding sessions and flags stuff in real time. Not a code review gate. Just... something watching.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable part
&lt;/h2&gt;

&lt;p&gt;A lot of these codebases were shipped. Some had real users. A few were running in production environments with actual credentials and real data.&lt;/p&gt;

&lt;p&gt;The developers weren't careless people. Most of them were genuinely excited about what they'd built - and most of what they built was genuinely cool. The security stuff just wasn't on their radar because it never came up during development. Nothing broke. Tests passed. It worked on their machine.&lt;/p&gt;

&lt;p&gt;I keep thinking about that gap. Between "works fine in dev" and "safe to run with real users." AI coding tools are really good at closing the first gap - getting something functional fast. Nobody's really solved the second one yet.&lt;/p&gt;

&lt;p&gt;That's the problem I'm trying to figure out. Not sure I have it yet. But the 100 codebases were pretty clarifying.&lt;/p&gt;




&lt;p&gt;If you're using AI to build things and want to know what the scanner finds in your repo, &lt;a href="https://vibecheck.dev" rel="noopener noreferrer"&gt;VibeCheck&lt;/a&gt; is live. Free tier, no credit card. Takes about 2 minutes.&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>ai</category>
      <category>security</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Vibe Coded 4 Apps and Ignored Security Until It Bit Me</title>
      <dc:creator>Mykola Kondratiuk</dc:creator>
      <pubDate>Wed, 18 Feb 2026 09:36:41 +0000</pubDate>
      <link>https://dev.to/itskondrat/i-vibe-coded-4-apps-and-ignored-security-until-it-bit-me-1p2b</link>
      <guid>https://dev.to/itskondrat/i-vibe-coded-4-apps-and-ignored-security-until-it-bit-me-1p2b</guid>
      <description>&lt;p&gt;There's a specific moment when vibe coding goes from fun to terrifying. For me it was a Saturday afternoon, three espressos deep, shipping my fourth side project in three months. I'd been on a roll - prompting Claude, watching code appear, deploying to Vercel, feeling like a wizard.&lt;/p&gt;

&lt;p&gt;Then I ran a basic security scan on one of my apps and the report was... not great.&lt;/p&gt;

&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;Quick context: I'm a director at a gaming company by day, indie builder by night. I'd been cranking out AI-powered apps on weekends - a mood tracker, a feedback tool, a recipe thing, a growth analytics dashboard. All built mostly through prompting, minimal manual coding. Ship fast, learn fast.&lt;/p&gt;

&lt;p&gt;The problem is "learn fast" didn't include "learn about the security holes your AI just introduced."&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually found
&lt;/h2&gt;

&lt;p&gt;I won't pretend I did some sophisticated penetration test. I literally just ran &lt;code&gt;npm audit&lt;/code&gt; and checked my environment variable handling. Here's what showed up across my projects:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hardcoded API keys in client-side code.&lt;/strong&gt; I asked the AI to add an API call and it put the key right in the React component. Not in an env file, not server-side - just sitting there in the bundle. I caught two of these. Who knows if I missed more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No input validation anywhere.&lt;/strong&gt; Every form in every app just trusted whatever the user typed. The AI generated clean-looking form handlers that did zero sanitization. SQL injection? XSS? Wide open. The code looked professional but it was essentially a welcome mat for anyone who wanted to mess with my database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dependencies with known vulnerabilities.&lt;/strong&gt; When you prompt "add authentication" the AI picks packages. It doesn't always pick the latest or most secure ones. I had three packages with high-severity CVEs that were fixed in newer versions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overly permissive CORS.&lt;/strong&gt; Every backend had &lt;code&gt;Access-Control-Allow-Origin: *&lt;/code&gt; because that's what makes things work fast during development and the AI never suggested tightening it for production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this keeps happening
&lt;/h2&gt;

&lt;p&gt;I think about this a lot now. The AI isn't trying to write insecure code. It's optimizing for "working code that does what you asked." Security is almost never what you asked for.&lt;/p&gt;

&lt;p&gt;When you prompt "build me a login page" you get a login page. You don't get rate limiting on login attempts. You don't get account lockout after failed tries. You don't get CSRF protection. You get the thing you asked for and nothing else.&lt;/p&gt;

&lt;p&gt;And honestly? When you're vibe coding and in flow, you don't want to stop and ask "now add rate limiting, now add CSRF tokens, now add input validation to every field." That kills the vibe. That's the whole tension.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I changed
&lt;/h2&gt;

&lt;p&gt;I'm not going to pretend I figured out some perfect system. But here's what I do now:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security prompt at the end.&lt;/strong&gt; After the app works, I do one dedicated pass: "Review this entire codebase for security vulnerabilities. Check for hardcoded secrets, missing input validation, CORS configuration, dependency vulnerabilities, and authentication weaknesses." It's not perfect but it catches the obvious stuff.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automated scanning in CI.&lt;/strong&gt; I added &lt;code&gt;npm audit&lt;/code&gt; and a basic SAST tool to my deploy pipeline. Takes five minutes to set up. Catches things I'd never think to check manually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Env file template.&lt;/strong&gt; I keep a &lt;code&gt;.env.example&lt;/code&gt; in every project and I tell the AI upfront "all API keys go in environment variables, never hardcode them." Setting context early helps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dependency review.&lt;/strong&gt; Before I accept whatever packages the AI suggests, I check when they were last updated and if there are known issues. This takes like 2 minutes and has saved me multiple times.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bigger picture
&lt;/h2&gt;

&lt;p&gt;I think vibe coding is genuinely amazing for shipping fast and I'm not going to stop doing it. But there's this gap between "it works" and "it's production-ready" that AI doesn't bridge on its own. The AI writes code that works. Making it secure is still on you.&lt;/p&gt;

&lt;p&gt;The irony is that the same AI that introduced these vulnerabilities can also help fix them - you just have to ask. It's weirdly good at security reviews when you explicitly prompt for them. The problem is remembering to ask in the first place when you're riding that shipping high.&lt;/p&gt;

&lt;p&gt;If you're vibe coding side projects and deploying them publicly, just do the security pass. Twenty minutes of review can save you from being the person who leaked their OpenAI key to GitHub or got their user database dumped because of a missing parameterized query.&lt;/p&gt;

&lt;p&gt;Not that I'd know anything about that first one. Definitely not from personal experience. Nope.&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>security</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built 4 Apps in 3 Months Using AI — Here’s What Actually Happened</title>
      <dc:creator>Mykola Kondratiuk</dc:creator>
      <pubDate>Thu, 05 Feb 2026 13:55:19 +0000</pubDate>
      <link>https://dev.to/itskondrat/i-built-4-apps-in-3-months-using-ai-heres-what-actually-happened-d86</link>
      <guid>https://dev.to/itskondrat/i-built-4-apps-in-3-months-using-ai-heres-what-actually-happened-d86</guid>
      <description>&lt;p&gt;&lt;em&gt;The honest breakdown of shipping SomeYum, TellMeMo, VibeCheck, and GrowthForge as a weekend vibe coder.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://medium.com/@howlet/i-built-4-apps-in-3-months-using-ai-heres-what-actually-happened-deeb669ae7d4" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I have a full-time job. Director of Tech Program at a gaming company, 13+ years in. Meetings, roadmaps, cross-team coordination - the usual corporate chaos. I'm not a developer by trade anymore.&lt;/p&gt;

&lt;p&gt;But on weekends, I vibe code.&lt;/p&gt;

&lt;p&gt;Between November 2025 and February 2026, I shipped 4 apps to production. Real apps with real users. Not tutorials, not toy projects - products with landing pages, app store listings, and people actually using them.&lt;/p&gt;

&lt;p&gt;Here's how that happened, and what I learned.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Setup
&lt;/h2&gt;

&lt;p&gt;I'd been watching the AI coding space for a while. Claude Code, Cursor, Copilot - tools that let you describe what you want and get working code back. The "vibe coding" wave, as Andrej Karpathy called it.&lt;/p&gt;

&lt;p&gt;My background is technical - I started in support, moved through IT roles, eventually became a PM and then director. I can read code, understand architecture, and debug when things break. But I hadn't shipped personal projects in years because the time investment never made sense. Evenings and weekends aren't enough to build something meaningful.&lt;/p&gt;

&lt;p&gt;Or at least, they weren't.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 4 Apps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ðŸ• SomeYum - Recipe Swiper
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; "What should we cook tonight?" - the question that kills 30 minutes every evening.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The solution:&lt;/strong&gt; Tinder for recipes. Swipe right on recipes you like, left on ones you don't. AI learns your taste. Now with meal planning and grocery lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech:&lt;/strong&gt; Flutter, 10K+ recipes, AI-powered recommendations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What surprised me:&lt;/strong&gt; This was the most fun to build. The swipe mechanic is satisfying in a way I didn't expect. 52K+ daily swipers now, which still feels surreal.&lt;/p&gt;

&lt;h3&gt;
  
  
  ðŸŽ¯ TellMeMo - Meeting Intelligence
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; I sit in meetings all day. Someone asks a question, and instead of answering from our own docs, we say "let me get back to you" and create a follow-up. Multiply that by 8 meetings a day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The solution:&lt;/strong&gt; AI that sits in your meeting, listens, and automatically answers questions from your uploaded documents in real-time. Also tracks action items with owners and deadlines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech:&lt;/strong&gt; 100% open source. Self-hostable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What surprised me:&lt;/strong&gt; This one came directly from my day job pain. The "let me get back to you" problem is universal - every PM I talked to immediately got it.&lt;/p&gt;

&lt;h3&gt;
  
  
  ðŸ”’ VibeCheck - Security Scanner
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; We're all vibe coding now. But AI-generated code has patterns - it takes shortcuts, skips input validation, uses string concatenation for SQL queries. The code works, it just isn't safe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The solution:&lt;/strong&gt; Paste your GitHub repo or app URL, get a security scan focused on the specific vulnerabilities AI tends to introduce. Get fix prompts you can paste right back into Claude Code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech:&lt;/strong&gt; Static analysis + AI pattern matching for common AI code smells.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What surprised me:&lt;/strong&gt; This one resonated with developers more than anything else I've built. Security is the elephant in the vibe coding room that nobody wants to talk about.&lt;/p&gt;

&lt;h3&gt;
  
  
  ðŸ“ˆ GrowthForge - Personal Development
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; I tried every habit tracker and goal-setting app. They're all either too simple (just checkboxes) or too complex (enterprise OKR tools). Nothing connected goals â†’ habits â†’ reflection â†’ progress in one flow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The solution:&lt;/strong&gt; A personal development system combining OKRs, habit tracking, journaling, AI coaching, and progress analytics. Gamified with XP and achievements because apparently I need that dopamine hit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech:&lt;/strong&gt; iOS native, AI-powered coaching.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What surprised me:&lt;/strong&gt; Building a habit tracker while simultaneously trying to build the habit of shipping products is peak irony. But it works.&lt;/p&gt;

&lt;h2&gt;
  
  
  How AI Made This Possible
&lt;/h2&gt;

&lt;p&gt;Let me be real: I could not have built these without AI coding tools. Not in 3 months. Not as a weekend project. Probably not at all, given my current skill set and available time.&lt;/p&gt;

&lt;p&gt;Here's what my typical weekend coding session looks like:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Saturday morning, 7 AM.&lt;/strong&gt; Coffee. Open Claude Code. Describe what I want to build in plain language.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterate.&lt;/strong&gt; "Make the swipe animation smoother." "Add error handling for the API calls." "The grocery list should group items by store section."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review.&lt;/strong&gt; Read the generated code. I can't write Flutter from scratch anymore, but I can read it and spot issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test.&lt;/strong&gt; Run it, break it, describe the bug, get a fix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ship.&lt;/strong&gt; By Sunday evening, there's a working feature.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key insight: &lt;strong&gt;AI didn't replace my skills - it amplified them.&lt;/strong&gt; I still need to know what to build, how to architect it, and what "good" looks like. The AI handles the syntax and implementation details I'd otherwise spend weeks relearning.&lt;/p&gt;

&lt;p&gt;But here's the part nobody talks about enough: &lt;strong&gt;AI-generated code has blind spots.&lt;/strong&gt; It writes code that works but isn't always secure. It takes convenient shortcuts. It doesn't think about edge cases the way a senior engineer would. That's literally why I built VibeCheck - I needed it for my own projects first.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Worked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Scratching my own itches.&lt;/strong&gt; Every app solves a problem I personally have. SomeYum = dinner decisions. TellMeMo = meeting overload. VibeCheck = security concerns. GrowthForge = personal growth tracking. When you're your own user, product decisions are easy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Shipping ugly, then iterating.&lt;/strong&gt; First versions were rough. SomeYum v1 was basically a recipe list with a swipe gesture bolted on. But it was live, people used it, and feedback shaped v2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Not quitting my day job.&lt;/strong&gt; This sounds counterintuitive for an indie hacker story, but my full-time role gives me perspective. I see how teams actually work, what tools they need, where the gaps are. TellMeMo exists because I sit in too many meetings. VibeCheck exists because I see AI code going to production without review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Weekend-only discipline.&lt;/strong&gt; I don't touch these projects on weekdays. No late-night coding sessions. No "just one more feature." Constraints breed creativity, and a 2-day window forces ruthless prioritization.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Didn't Work
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Assuming AI code is production-ready.&lt;/strong&gt; It's not. I learned this the hard way when I ran a security scan on my own SomeYum code and found issues I'd never have caught manually. AI writes confident code - but confidence isn't correctness.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Trying to be on every platform simultaneously.&lt;/strong&gt; Marketing 4 products across Twitter, Reddit, LinkedIn, Product Hunt, Hacker News, Indie Hackers, Dev.to, and Medium is... a lot. I'm still figuring out the right balance. You can't do everything, even with AI help.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Perfectionism on non-core features.&lt;/strong&gt; I spent an entire weekend on GrowthForge's achievement animations. Cool? Yes. Did it move the needle? No. Should've shipped the AI coaching feature instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Underestimating the "last 20%."&lt;/strong&gt; Getting from working prototype to polished product takes as long as building the prototype itself. App Store screenshots, landing pages, onboarding flows, privacy policies - the boring stuff is half the work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers (Honest)
&lt;/h2&gt;

&lt;p&gt;I'm not going to pretend these are rocketship metrics. This is building in public, so here's the reality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SomeYum:&lt;/strong&gt; 52K+ daily swipers, growing organically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TellMeMo:&lt;/strong&gt; Open source, early users, solving a real pain point&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VibeCheck:&lt;/strong&gt; Strong developer interest, resonates with the security conversation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GrowthForge:&lt;/strong&gt; On the App Store, growing slowly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these are making me rich. That's not the point (yet). The point is: &lt;strong&gt;a non-developer with a full-time job can ship real products in their spare time, and AI is what makes that possible.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd Tell You
&lt;/h2&gt;

&lt;p&gt;If you're thinking about vibe coding your own thing, here's my take:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start with a problem you have.&lt;/strong&gt; Not a cool technology. Not a market gap you read about. A problem that annoys you personally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ship the ugliest viable version first.&lt;/strong&gt; Nobody cares about your code quality on day one. They care if it solves the problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scan your AI code for security issues.&lt;/strong&gt; Seriously. The convenience of AI coding creates a false sense of safety. The code works, but "works" and "secure" are different things.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set time boundaries.&lt;/strong&gt; Weekend-only saved my sanity and my relationships. Don't burn out on side projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build in public.&lt;/strong&gt; Tell people what you're doing. The feedback loop is invaluable and the accountability keeps you shipping.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Three months. Four apps. One full-time job. Zero burnout.&lt;/p&gt;

&lt;p&gt;AI didn't make me a developer. It made me a builder again.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I'm Mykola - Director of Tech Program by day, weekend vibe coder by night. You can find me on &lt;a href="https://x.com/ItsKondrat" rel="noopener noreferrer"&gt;Twitter/X&lt;/a&gt; where I share the building journey, or check out the products: &lt;a href="https://visieasy.com" rel="noopener noreferrer"&gt;SomeYum&lt;/a&gt;, &lt;a href="https://tellmemo.io" rel="noopener noreferrer"&gt;TellMeMo&lt;/a&gt;, &lt;a href="https://vibe-checker.dev" rel="noopener noreferrer"&gt;VibeCheck&lt;/a&gt;, and &lt;a href="https://apps.apple.com/app/growthforge-achieve-more/id6742810169" rel="noopener noreferrer"&gt;GrowthForge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>buildinpublic</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
