<?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: Kunal</title>
    <description>The latest articles on DEV Community by Kunal (@kunal_d6a8fea2309e1571ee7).</description>
    <link>https://dev.to/kunal_d6a8fea2309e1571ee7</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%2F2621382%2Fc94c296d-7804-4c0c-accc-b8f5900821ac.jpg</url>
      <title>DEV Community: Kunal</title>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kunal_d6a8fea2309e1571ee7"/>
    <language>en</language>
    <item>
      <title>Holafly vs Airalo: I Tested Both Travel eSIMs Across 3 Continents — One Clear Winner for Developers [2026]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Sun, 10 May 2026 12:49:49 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/holafly-vs-airalo-i-tested-both-travel-esims-across-3-continents-one-clear-winner-for-developers-7dc</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/holafly-vs-airalo-i-tested-both-travel-esims-across-3-continents-one-clear-winner-for-developers-7dc</guid>
      <description>&lt;p&gt;Last November, I landed in Lisbon with two phones, two eSIM providers, and a spreadsheet. Over the next eleven weeks — across Portugal, Japan, and Canada — I ran 47 speed tests comparing Holafly and Airalo, the two biggest names in travel eSIMs. If you're a developer who works remotely while traveling, the &lt;strong&gt;Holafly vs Airalo&lt;/strong&gt; question isn't academic. It's the difference between shipping code from a café in Porto and staring at a loading spinner during a standup.&lt;/p&gt;

&lt;p&gt;Here's what I found.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Travel eSIMs Matter for Tech Nomads
&lt;/h2&gt;

&lt;p&gt;The old playbook for international connectivity — buy a local SIM at the airport, fumble with a tray ejector tool, pray the APN settings work — is dead. eSIMs let you activate a data plan before you even board your flight. No physical card. No sketchy kiosk.&lt;/p&gt;

&lt;p&gt;But here's the thing nobody's saying about travel eSIMs: not all "unlimited" plans are actually unlimited in the ways that matter to developers. If you can't tether your laptop to your phone's connection, an eSIM with infinite mobile data is basically useless for real work. That single distinction separates Holafly and Airalo more than anything else.&lt;/p&gt;

&lt;p&gt;I've shipped features from hotel lobbies in four countries this year alone. When I started planning a longer trip spanning three continents, I decided to stop guessing and actually test both providers head-to-head. Same cities. Same times of day. Real speed tests with &lt;a href="https://www.speedtest.net/" rel="noopener noreferrer"&gt;Ookla's Speedtest&lt;/a&gt; app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Holafly vs Airalo: The Pricing Model Difference
&lt;/h2&gt;

&lt;p&gt;Before getting into performance, you need to understand the fundamental pricing difference because it shapes everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Airalo&lt;/strong&gt; sells fixed data packages — 1GB, 3GB, 5GB, 10GB, 20GB — for specific countries or regions. You pick your destination, choose a package, and when it's gone, it's gone. You can top up through the app. I paid $4.50 for 1GB in Portugal (7 days) and $11 for 3GB in Japan (30 days). For Canada, a 5GB package ran me $16.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Holafly&lt;/strong&gt; sells unlimited data for specific durations — 5 days, 7 days, 15 days, 30 days. I paid $19 for 7 days of unlimited data in Portugal, $47 for 15 days in Japan, and $19 for 7 days in Canada.&lt;/p&gt;

&lt;p&gt;The math seems obvious: if you're a heavy data user, Holafly's unlimited model wins. Light user checking email and maps? Airalo's granular packages save money. But that math falls apart when you factor in one critical limitation.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Airalo&lt;/th&gt;
&lt;th&gt;Holafly&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pricing model&lt;/td&gt;
&lt;td&gt;Pay-per-GB packages&lt;/td&gt;
&lt;td&gt;Unlimited by duration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost (7-day, Portugal)&lt;/td&gt;
&lt;td&gt;$4.50 (1GB)&lt;/td&gt;
&lt;td&gt;$19 (unlimited)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost (15-day, Japan)&lt;/td&gt;
&lt;td&gt;$11 (3GB)&lt;/td&gt;
&lt;td&gt;$47 (unlimited)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tethering/hotspot&lt;/td&gt;
&lt;td&gt;Yes (most plans)&lt;/td&gt;
&lt;td&gt;No (most plans)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regional plans&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App quality&lt;/td&gt;
&lt;td&gt;Clean, functional&lt;/td&gt;
&lt;td&gt;Clean, functional&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Top-up mid-trip&lt;/td&gt;
&lt;td&gt;Yes, in-app&lt;/td&gt;
&lt;td&gt;Buy new plan&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Prices reflect what I paid in late 2025. Both providers adjust pricing regularly — check their apps for current rates.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Can You Tether With Holafly? The Deal-Breaker for Developers
&lt;/h2&gt;

&lt;p&gt;This is the section that matters most if you're reading this as a working developer.&lt;/p&gt;

&lt;p&gt;Most of &lt;a href="https://www.holafly.com/" rel="noopener noreferrer"&gt;Holafly's unlimited data plans&lt;/a&gt; do &lt;strong&gt;not&lt;/strong&gt; allow tethering or personal hotspot. You cannot share your phone's data connection with your laptop. For a tourist scrolling Instagram, irrelevant. For someone who needs to SSH into a server, push to GitHub, or join a video call on their MacBook, it's a dealbreaker.&lt;/p&gt;

&lt;p&gt;I confirmed this firsthand in Lisbon. I activated Holafly, ran a speed test on my phone (solid 42 Mbps down), then tried to enable personal hotspot. Nothing. The option was grayed out for the Holafly eSIM line. Switched to Airalo, enabled hotspot, had my laptop online within seconds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.airalo.com/" rel="noopener noreferrer"&gt;Airalo's plans&lt;/a&gt; almost universally allow tethering. I used hotspot in all three countries without restriction. In Japan, I tethered my MacBook for six straight hours at a coffee shop in Shibuya, ran a deploy, pair-programmed over Zoom, and still had data to spare.&lt;/p&gt;

&lt;p&gt;If you've read &lt;a href="https://www.kunalganglani.com/blog/macbook-linux-home-server" rel="noopener noreferrer"&gt;how I turned a MacBook into a Linux home server&lt;/a&gt;, you know I care about squeezing the most out of hardware. Same principle applies here: your phone's data connection is only as useful as the devices it can reach.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you can't tether, you don't have a work connection. You have a phone plan.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Real Speed Tests: Holafly and Airalo Across 3 Continents
&lt;/h2&gt;

&lt;p&gt;I ran tests at different times of day in each city, using both providers on separate phones connected to the same Speedtest server when possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lisbon, Portugal (November 2025)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Airalo&lt;/strong&gt;: Average 38 Mbps down / 12 Mbps up. Connected to NOS network. Latency averaged 24ms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Holafly&lt;/strong&gt;: Average 42 Mbps down / 9 Mbps up. Connected to Vodafone PT. Latency averaged 31ms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both perfectly usable for work. Holafly had slightly better download speeds but noticeably higher latency. For browsing and streaming, you wouldn't feel the difference. For SSH sessions and real-time collaboration tools, those extra 7ms added up to a slightly laggier feel.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tokyo &amp;amp; Osaka, Japan (December 2025)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Airalo&lt;/strong&gt;: Average 51 Mbps down / 18 Mbps up. Connected to SoftBank. Latency averaged 19ms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Holafly&lt;/strong&gt;: Average 67 Mbps down / 14 Mbps up. Connected to NTT Docomo. Latency averaged 28ms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Japan is where both services shine because the underlying infrastructure is world-class. Holafly again had higher raw download speeds — likely because NTT Docomo has excellent coverage — but also higher latency. I noticed this pattern consistently across all my tests: Holafly's carrier partnerships seem to prioritize throughput over responsiveness.&lt;/p&gt;

&lt;p&gt;If you're curious about why local infrastructure matters so much, &lt;a href="https://www.kunalganglani.com/blog/switzerland-25-gbit-internet-america" rel="noopener noreferrer"&gt;Switzerland's 25 Gbit internet story&lt;/a&gt; is a good illustration of how network investment determines what you actually experience day-to-day.&lt;/p&gt;

&lt;h3&gt;
  
  
  Toronto, Canada (January 2026)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Airalo&lt;/strong&gt;: Average 29 Mbps down / 8 Mbps up. Connected to Bell. Latency averaged 22ms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Holafly&lt;/strong&gt;: Average 34 Mbps down / 7 Mbps up. Connected to Rogers. Latency averaged 35ms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Canada was the weakest performance for both. No surprise there. Canadian carrier infrastructure is expensive and coverage outside major cities drops fast. Both were adequate for work in downtown Toronto, but I wouldn't count on either for a video call from rural Ontario.&lt;/p&gt;

&lt;p&gt;Here's a video comparison that aligns with what I experienced — covers pricing, plans, and real-world performance:&lt;/p&gt;

&lt;p&gt;[YOUTUBE:xcvj6JxdyPU|Airalo Vs Holafly: eSIM Comparison &amp;amp; Review (Prices, plans &amp;amp; support)]&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup and App Experience: Both Are Fine, With One Caveat
&lt;/h2&gt;

&lt;p&gt;The setup experience for both Airalo and Holafly is good enough that it's not a differentiator anymore. Both follow the same flow: download the app, buy a plan, scan a QR code or install directly, toggle data roaming on. First-time users might stumble on the "add cellular plan" step in iOS settings, but both apps walk you through it.&lt;/p&gt;

&lt;p&gt;One real difference though: Airalo lets you top up data mid-trip without installing a new eSIM profile. Your 3GB runs out on day four of a week-long trip? Just buy another package. It adds to your existing plan. With Holafly, since plans are duration-based, you'd need to purchase a new plan if yours expires early — though since it's unlimited data, the more common scenario is your time running out, not your data.&lt;/p&gt;

&lt;p&gt;Airalo's app also shows real-time data usage, which I found genuinely useful for budgeting. As someone who cares about &lt;a href="https://www.kunalganglani.com/blog/thunderbolt-5-dock-review-ugreen" rel="noopener noreferrer"&gt;evaluating tools on honest terms&lt;/a&gt;, I appreciate when a product gives me the data to make my own decisions instead of hiding behind an "unlimited" label.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which eSIM Should You Actually Buy?
&lt;/h2&gt;

&lt;p&gt;After 47 speed tests across three continents, here's my take.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you're a developer or tech professional who needs to work while traveling, buy Airalo.&lt;/strong&gt; Tethering support alone makes it the only serious option. Holafly's slightly better download speeds are meaningless if you can't get that connection to your laptop. Airalo's pay-per-GB model also forces you to be intentional about usage, which — counterintuitively — means you're more likely to hop on Wi-Fi when it's available and save your eSIM data for when you actually need it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you're a tourist who only uses your phone and wants zero data anxiety, Holafly is solid.&lt;/strong&gt; The unlimited model means you never think about caps. You stream, scroll, navigate, and post without worrying. For non-work travel, that peace of mind has real value.&lt;/p&gt;

&lt;p&gt;But here's my prediction: this distinction won't last. Holafly is under massive pressure to enable tethering across all plans. Every competitor comparison highlights it as their biggest weakness. I'd bet that within 12 months, they'll either enable tethering universally or create a "Pro" tier specifically for remote workers. The travel eSIM market is growing too fast for any provider to leave the professional segment on the table.&lt;/p&gt;

&lt;p&gt;For now, though, the answer is clear. If your phone is your office's lifeline, Airalo wins. Not even close.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/holafly-vs-airalo-esim-compared?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=holafly-vs-airalo-esim-compared" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>esim</category>
      <category>traveltech</category>
      <category>holafly</category>
      <category>airalo</category>
    </item>
    <item>
      <title>Forward Deployed Engineer: The Hottest Role in AI-First Tech and Why It Pays So Well [2026]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Sat, 09 May 2026 16:07:33 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/forward-deployed-engineer-the-hottest-role-in-ai-first-tech-and-why-it-pays-so-well-2026-58c0</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/forward-deployed-engineer-the-hottest-role-in-ai-first-tech-and-why-it-pays-so-well-2026-58c0</guid>
      <description>&lt;h1&gt;
  
  
  Forward Deployed Engineer: The Hottest Role in AI-First Tech and Why It Pays So Well [2026]
&lt;/h1&gt;

&lt;p&gt;Palantir coined the term "Forward Deployed Software Engineer" over a decade ago, and for most of that time, nobody outside their orbit paid much attention. Now the forward deployed engineer role is showing up in job postings at AI-first companies across the industry, and total comp packages are pushing well past $250K. Something shifted.&lt;/p&gt;

&lt;p&gt;I've spent 14+ years in software engineering, and I've watched dozens of role titles come and go. Most are rebranding exercises. This one isn't. The forward deployed engineer represents a fundamentally different model for how software gets delivered. And it's becoming one of the most interesting career paths for senior developers who are tired of being three layers removed from the actual problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is a Forward Deployed Engineer?
&lt;/h2&gt;

&lt;p&gt;A forward deployed engineer (FDE) is a software engineer who works directly with customers to build, customize, and deliver technical solutions. Unlike a traditional backend engineer shipping features to an anonymous user base, an FDE sits at the intersection of engineering, consulting, and solutions architecture. They write production code, but they do it while embedded with the customer, deeply understanding their operational challenges.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://www.palantir.com/" rel="noopener noreferrer"&gt;Palantir&lt;/a&gt;, where the role originated, Forward Deployed Software Engineers (FDSEs) own the technical delivery of Palantir's platforms. They're the primary technical point of contact for customers, which means they need to understand both the platform's capabilities and the customer's specific technical and operational problems inside out. It's not support engineering. It's not pre-sales. It's building real software in the field.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The forward deployed engineer is what happens when you take a strong software engineer and give them the context that usually only product managers and consultants have.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here's Palantir's own explanation of the FDSE role:&lt;/p&gt;

&lt;p&gt;[YOUTUBE:5OYy_UtINo4|The Role of a Forward Deployed Software Engineer]&lt;/p&gt;

&lt;p&gt;If you're building AI products, you've probably already noticed the pattern: the gap between "working demo" and "deployed in production at a customer site" is enormous. That gap is exactly where forward deployed engineers live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Forward Deployed Engineers Are Suddenly Everywhere
&lt;/h2&gt;

&lt;p&gt;AI-first companies created a problem that traditional engineering orgs weren't built to solve. You can't just ship an AI platform and expect customers to figure it out. The integration work is too complex, too domain-specific, and the stakes are too high.&lt;/p&gt;

&lt;p&gt;Palantir figured this out early. Their entire go-to-market motion depends on FDSEs who can take the platform and mold it to a customer's specific workflow — whether that's a government intelligence agency, a hospital system, or an oil and gas operation. The technology is powerful, but it's the deployment that creates value.&lt;/p&gt;

&lt;p&gt;Now other companies are catching on. Databricks, Scale AI, and Anduril have all posted similar forward-deployed-style positions. The titles vary — "Field Engineer," "Solutions Engineer," "Applied AI Engineer" — but the core job is the same: a technically strong engineer who ships code in the customer's environment, not in an ivory tower.&lt;/p&gt;

&lt;p&gt;I've seen this dynamic play out firsthand. Having built systems that serve enterprise customers, I know the hardest engineering problems often aren't in the core product. They're in the last mile. Integrating with legacy systems, handling edge cases unique to a specific industry, translating business requirements into technical architecture on the fly. That's the forward deployed engineer's entire job.&lt;/p&gt;

&lt;p&gt;This trend also maps to something broader happening in &lt;a href="https://www.kunalganglani.com/blog/tech-job-market-2026-survival-guide" rel="noopener noreferrer"&gt;the tech job market&lt;/a&gt;: companies increasingly value engineers who can operate across the full stack of a business problem, not just the technical stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Does a Forward Deployed Engineer Actually Do Day-to-Day?
&lt;/h2&gt;

&lt;p&gt;The daily work of a forward deployed engineer looks nothing like a typical SWE role. Here's what it actually involves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Customer discovery and scoping.&lt;/strong&gt; Understanding the client's domain deeply enough to identify where the platform solves their most painful problems. This isn't a PM's job here — the FDE does it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rapid prototyping and integration.&lt;/strong&gt; Building custom workflows, data pipelines, and interfaces that connect the product to the customer's existing systems. Speed matters more than perfection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production deployment.&lt;/strong&gt; Getting the solution live in the customer's environment, which often means navigating security requirements, compliance constraints, and infrastructure limitations that nobody warned you about.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feedback loops back to product.&lt;/strong&gt; FDEs are the company's eyes and ears in the field. They funnel insights about what's broken, what's missing, and what customers actually need back to the core engineering team.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stakeholder management.&lt;/strong&gt; Presenting technical progress to non-technical executives, managing expectations, and building trust. If you can't communicate clearly to a room full of C-suite leaders, this role will eat you alive.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The closest analog I can think of is a senior engineer who also happens to be an excellent consultant. As I wrote about in &lt;a href="https://www.kunalganglani.com/blog/senior-engineer-hidden-roles" rel="noopener noreferrer"&gt;the hidden roles that senior engineers play&lt;/a&gt;, the best engineers already do a version of this internally — translating between business needs and technical execution. The FDE role just makes it explicit and customer-facing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is a Forward Deployed Engineer the Same as a Solutions Engineer?
&lt;/h2&gt;

&lt;p&gt;This is the question I see most often, and the answer is: not really.&lt;/p&gt;

&lt;p&gt;A solutions engineer typically operates in the pre-sales cycle. They build demos, answer technical questions during the sales process, and hand off to an implementation team once the deal closes. Their primary metric is helping close deals.&lt;/p&gt;

&lt;p&gt;A forward deployed engineer operates &lt;em&gt;after&lt;/em&gt; the deal is signed (and often stays through the entire customer lifecycle). They write production code. They own technical outcomes. Their primary metric is whether the customer actually succeeds with the product.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Solutions Engineer&lt;/th&gt;
&lt;th&gt;Forward Deployed Engineer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Primary phase&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pre-sales&lt;/td&gt;
&lt;td&gt;Post-sales / ongoing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Core output&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Demos, POCs, technical proposals&lt;/td&gt;
&lt;td&gt;Production code, deployed systems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Success metric&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Deal closed&lt;/td&gt;
&lt;td&gt;Customer outcome achieved&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Code depth&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Prototype-level&lt;/td&gt;
&lt;td&gt;Production-grade&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Customer relationship&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Transactional&lt;/td&gt;
&lt;td&gt;Embedded, long-term&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reporting line&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Usually Sales&lt;/td&gt;
&lt;td&gt;Usually Engineering&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The distinction matters because it determines what kind of engineer thrives in each role. Solutions engineers need charisma and breadth. Forward deployed engineers need depth, resilience, and the ability to ship under pressure in environments they've never seen before.&lt;/p&gt;

&lt;p&gt;That said, the lines blur at some companies. Smaller startups sometimes combine both functions into a single role. If you're evaluating a job posting, look at who the role reports to. If it's the engineering org, it's likely a true FDE. If it's sales, it's probably solutions engineering with a fancy title.&lt;/p&gt;

&lt;h2&gt;
  
  
  Forward Deployed Engineer Compensation: What the Numbers Say
&lt;/h2&gt;

&lt;p&gt;Let's talk money, because it's a big part of why this role is pulling in top talent.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.levels.fyi/companies/palantir/salaries" rel="noopener noreferrer"&gt;Levels.fyi&lt;/a&gt;, Palantir's software engineering roles (including FDSEs) show median total compensation around $257K, with the overall range spanning mid-level to senior positions. The numbers vary significantly by level and location — senior FDSEs in New York or the Bay Area can push well above that median. Compensation data changes frequently, so check Levels.fyi directly for current figures.&lt;/p&gt;

&lt;p&gt;What's interesting is that FDE compensation often outpaces equivalent-level product engineers at the same company. The reason is straightforward: FDEs are revenue-generating. They're directly tied to customer success and retention, which makes them easier to justify to finance teams. In my experience, roles that sit closer to revenue always command a premium. Always.&lt;/p&gt;

&lt;p&gt;The role is also just hard to fill. You need someone who can write solid production code &lt;em&gt;and&lt;/em&gt; hold their own in a room with a customer's CTO. That combination is rare. Scarcity drives compensation up.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Skills That Actually Matter for Forward Deployed Engineers
&lt;/h2&gt;

&lt;p&gt;If you're considering this path, here's what I'd focus on based on what I've observed in engineers who excel in customer-facing technical roles:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical breadth over depth in any single area.&lt;/strong&gt; You'll need to work across databases, APIs, cloud infrastructure, frontend, and data pipelines — sometimes all in the same week. You don't need to be the world's best React developer, but you need to be competent across the stack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Communication as a first-class skill.&lt;/strong&gt; I've shipped enough features to know that the technical solution is maybe 40% of the challenge. The rest is understanding what the customer actually needs (which they often can't articulate cleanly) and explaining your approach in terms they trust. This mirrors the broader shift I've written about in &lt;a href="https://www.kunalganglani.com/blog/plan-review-software-engineering" rel="noopener noreferrer"&gt;how software engineering is evolving&lt;/a&gt; — the "plan and review" skills are becoming as important as the coding itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comfort with ambiguity.&lt;/strong&gt; There's no JIRA ticket waiting for you with clear acceptance criteria. The customer has a problem. You figure out the solution. That level of autonomy is thrilling for some engineers and terrifying for others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Domain curiosity.&lt;/strong&gt; The best FDEs I've encountered actually enjoy learning about industries they know nothing about. One week you're learning about supply chain logistics, the next about hospital patient flow optimization. If you only want to think about software, this role will burn you out fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is the Forward Deployed Engineer Role Just Consulting?
&lt;/h2&gt;

&lt;p&gt;I hear this one a lot, and I get the comparison. But there's a critical difference.&lt;/p&gt;

&lt;p&gt;Consultants advise. Forward deployed engineers build. A McKinsey consultant might produce a 60-page deck recommending a data strategy. An FDE builds the data pipeline, deploys it in production, and iterates based on real results. The accountability is completely different.&lt;/p&gt;

&lt;p&gt;There's also the product dimension. FDEs aren't building bespoke software from scratch for every customer. They're deploying and extending a specific platform. The best FDEs become deep product experts and shape the platform's roadmap through their field experience.&lt;/p&gt;

&lt;p&gt;This is one of those things where the boring answer is actually the right one: the FDE role is something new. It's not consulting rebranded. It's not solutions engineering with a cooler title. It's a distinct function that emerged because AI products are too complex to throw over the wall and hope customers figure them out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where This Role Goes From Here
&lt;/h2&gt;

&lt;p&gt;Here's my prediction: within two years, "forward deployed engineer" (or close variants) will be a standard role at every serious AI company. The deployment gap — the chasm between a working model and a production system that actually delivers business value — is the single biggest bottleneck in enterprise AI adoption right now.&lt;/p&gt;

&lt;p&gt;Traditional sales cycles and support teams can't bridge that gap. You need engineers in the field. Engineers who understand the product deeply, who can write code under pressure, and who speak both the language of technology and the language of business outcomes.&lt;/p&gt;

&lt;p&gt;If you're a senior engineer who's ever felt frustrated by being disconnected from the actual impact of your work, this role is worth a serious look. And if you're an engineering leader wondering why your enterprise AI platform isn't getting the adoption you expected, the answer might not be a better product. It might be deploying your engineers forward.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/forward-deployed-engineer-role?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=forward-deployed-engineer-role" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>developercareer</category>
      <category>softwareengineering</category>
      <category>aijobs</category>
      <category>palantir</category>
    </item>
    <item>
      <title>Senior Engineers Don't Just Write Code: The 4 Hidden Roles That Drive Real Impact [2026]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Sat, 09 May 2026 12:49:40 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/senior-engineers-dont-just-write-code-the-4-hidden-roles-that-drive-real-impact-2026-3apb</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/senior-engineers-dont-just-write-code-the-4-hidden-roles-that-drive-real-impact-2026-3apb</guid>
      <description>&lt;p&gt;A few months ago, a developer I was mentoring asked me a question that stopped me cold: "What do you actually &lt;em&gt;do&lt;/em&gt; all day? You barely commit any code."&lt;/p&gt;

&lt;p&gt;He wasn't being disrespectful. He was genuinely confused. He'd been heads-down shipping features for three years and assumed the path to senior engineer was just… more of that. Faster code. Harder problems. More pull requests.&lt;/p&gt;

&lt;p&gt;He's not alone. Most mid-level engineers have a dangerously incomplete picture of what senior engineers actually do. And that misunderstanding is the single biggest reason people stall in their careers. Senior engineers don't just write code. In my experience, they spend 50-70% of their time on activities that never show up in a git log. System design. Mentorship. Managing technical debt. Cross-functional leadership. These are the hidden roles that separate people who have a senior title from people who actually drive senior-level impact.&lt;/p&gt;

&lt;p&gt;Here's what nobody tells you about those roles.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Do Senior Engineers Actually Do Beyond Writing Code?
&lt;/h2&gt;

&lt;p&gt;A senior engineer's job isn't to produce the most code. It's to produce the most &lt;em&gt;leverage&lt;/em&gt;. Sarah Drasner, who served as VP of Engineering at Google, has described senior engineers as "force multipliers." Their architectural decisions and guidance can make a team of five as productive as a team of ten.&lt;/p&gt;

&lt;p&gt;That multiplier effect is the thing most people miss. Early in your career, your impact is roughly proportional to your hours. You write code, it ships, done. But that model breaks at scale. A senior engineer who spends a week designing the right abstraction might save their team months of rework. A senior engineer who mentors a struggling junior might turn them into a reliable contributor within a quarter.&lt;/p&gt;

&lt;p&gt;I used to roll my eyes at the "they just go to meetings" stereotype. Then I became one of those people. Yes, senior engineers spend more time in meetings. But the good ones are using those meetings to shape decisions, resolve ambiguity, and keep the team pointed in the right direction. The meetings &lt;em&gt;are&lt;/em&gt; the work.&lt;/p&gt;

&lt;p&gt;As &lt;a href="https://blog.pragmaticengineer.com/" rel="noopener noreferrer"&gt;Gergely Orosz writes in The Pragmatic Engineer&lt;/a&gt;, a primary role of a senior engineer is to reduce complexity. Taking ambiguous, messy business problems and turning them into simple, maintainable, scalable technical solutions. That's not something you do in a code editor. It's something you do in conversations, on whiteboards, and in design documents.&lt;/p&gt;

&lt;p&gt;If you've been wondering where this shift fits in the broader evolution of engineering work, I wrote about it in &lt;a href="https://www.kunalganglani.com/blog/plan-review-software-engineering" rel="noopener noreferrer"&gt;how software engineering is becoming 'plan and review'&lt;/a&gt;. The trend is accelerating, and senior engineers are at the center of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Role 1: System Design — The Decisions That Outlive Your Code
&lt;/h2&gt;

&lt;p&gt;The first hidden role is system designer. Not the whiteboard-exercise-for-interviews kind. I mean making the architectural decisions that your team will live with for years.&lt;/p&gt;

&lt;p&gt;I've shipped systems that handled tens of millions of requests, and the hardest part was never writing the code. It was choosing the right boundaries. Where do you split services? What data model supports the business requirements you know about &lt;em&gt;and&lt;/em&gt; the ones you can see coming? When do you build for scale and when do you intentionally keep things simple?&lt;/p&gt;

&lt;p&gt;These decisions compound. A good architectural choice made early saves hundreds of engineering hours downstream. A bad one creates the kind of accidental complexity that slowly grinds a team to a halt. I've lived through both.&lt;/p&gt;

&lt;p&gt;What makes system design a senior-level skill: it requires holding multiple competing concerns in your head simultaneously. Performance versus simplicity. Consistency versus availability. Ship-it-now versus build-it-right. Mid-level engineers tend to optimize for one dimension. Senior engineers navigate the tradeoffs.&lt;/p&gt;

&lt;p&gt;Will Larson, author of &lt;a href="https://staffeng.com/book" rel="noopener noreferrer"&gt;&lt;em&gt;Staff Engineer: Leadership Beyond the Management Track&lt;/em&gt;&lt;/a&gt;, describes several archetypes for senior+ engineers, including the "Architect" who designs broad systems and the "Tech Lead" who directs a team's technical approach. Both roles center on decisions that shape technical direction far beyond any single feature.&lt;/p&gt;

&lt;p&gt;If you want to grow into system design, start by asking &lt;em&gt;why&lt;/em&gt; your current architecture looks the way it does. Trace the decisions backward. Understand the constraints that existed when those choices were made. That historical context is what separates someone who can design a system from someone who can only implement one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Role 2: Mentorship — Your Biggest Leverage as a Senior Engineer
&lt;/h2&gt;

&lt;p&gt;I spent years thinking mentoring meant occasionally reviewing a junior's code and leaving polite comments. That's not mentorship. Real mentorship is teaching someone &lt;em&gt;how to think about problems&lt;/em&gt;. Not just how to solve the one in front of them.&lt;/p&gt;

&lt;p&gt;After leading teams for over a decade, I've seen this pattern play out dozens of times: a strong senior engineer who mentors well doesn't just make their mentee better. They raise the bar for the entire team. The mentee starts writing better code, which means fewer bugs in review, which means the whole team ships faster. It compounds.&lt;/p&gt;

&lt;p&gt;What effective senior-level mentorship actually looks like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pairing on architectural decisions, not just code&lt;/li&gt;
&lt;li&gt;Asking questions that force the mentee to work through tradeoffs themselves (this is harder than just giving the answer, and slower, and worth it)&lt;/li&gt;
&lt;li&gt;Giving feedback on communication and documentation, not just technical output&lt;/li&gt;
&lt;li&gt;Creating enough psychological safety that people admit what they don't know&lt;/li&gt;
&lt;li&gt;Knowing when to let someone struggle versus when to step in&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters even more in remote environments. Joel Worrall, CTO at Over, has pointed out that senior engineers in remote settings have to proactively create clarity through documentation, set standards for async communication, and catch ambiguities before they slow everyone down. In a distributed world, mentorship isn't a nice-to-have. It's infrastructure.&lt;/p&gt;

&lt;p&gt;And here's something I tell every mid-level engineer I work with: you don't need the title to start. Explain your PR decisions more thoroughly. Write better commit messages. Document the &lt;em&gt;why&lt;/em&gt; behind your technical choices. That's mentorship in action, and people notice.&lt;/p&gt;

&lt;p&gt;[YOUTUBE:CHVtYzg3cfQ|4 REGRETS from my career as a Senior Software Engineer]&lt;/p&gt;

&lt;h2&gt;
  
  
  Role 3: Managing Technical Debt — The Boring Work That Keeps Everything Running
&lt;/h2&gt;

&lt;p&gt;This is one of those things where the boring answer is actually the right one. Technical debt management is unglamorous. Nobody gets a standing ovation for paying it down. But it's one of the most important things senior engineers do.&lt;/p&gt;

&lt;p&gt;Ward Cunningham, who &lt;a href="https://c2.com/doc/oopsla92.html" rel="noopener noreferrer"&gt;coined the technical debt metaphor in 1992&lt;/a&gt;, originally described it as the cost of shipping code built on an incomplete understanding of the problem domain. You build what you know, ship it, learn from real usage, then refactor as your understanding deepens. It was about &lt;em&gt;learning&lt;/em&gt;, not about cutting corners. The popular interpretation — "we chose the quick-and-dirty approach" — is actually a misreading of Cunningham's original idea.&lt;/p&gt;

&lt;p&gt;Either way, the debt accumulates. And senior engineers are the ones who see it clearly enough to manage it.&lt;/p&gt;

&lt;p&gt;I've been on teams where technical debt was treated as someone else's problem. "We'll fix it later." Later never comes. What comes instead is a codebase that takes three days to add a feature that should take three hours. Deployment pipelines that break every other week. Tests that nobody trusts. I've watched good engineers quit over this.&lt;/p&gt;

&lt;p&gt;Senior engineers manage technical debt by doing three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Making it visible.&lt;/strong&gt; You can't fix what nobody acknowledges. This means quantifying the cost: "this legacy service costs us 15 hours of engineering time per sprint in workarounds."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prioritizing strategically.&lt;/strong&gt; Not all debt is equal. Some debt is fine to carry for years. Some will kill your velocity in six months if left untreated. Knowing which is which is the skill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Negotiating with product.&lt;/strong&gt; This is the cross-functional part. You translate technical debt into business language: "If we invest two sprints in this migration, we cut our incident rate by 60% and ship features 30% faster."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you've dealt with the specific challenge of AI-generated code introducing debt, I broke down practical strategies in &lt;a href="https://www.kunalganglani.com/blog/vibe-coding-tech-debt-audit" rel="noopener noreferrer"&gt;how to audit and refactor vibe-coded applications&lt;/a&gt;. Same principles, different scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Role 4: Cross-Functional Leadership — Speaking the Language of the Business
&lt;/h2&gt;

&lt;p&gt;The fourth hidden role is the one that surprises most engineers: becoming the technical voice in non-technical conversations.&lt;/p&gt;

&lt;p&gt;Senior engineers sit at the intersection of engineering, product, and business. They translate. They explain why a feature that "sounds simple" requires rethinking the data model. They push back when a product manager's timeline doesn't account for infrastructure work. They advocate for engineering investments that don't have obvious customer-facing value.&lt;/p&gt;

&lt;p&gt;Tanya Reilly, author of &lt;a href="https://www.oreilly.com/library/view/the-staff-engineers/9781098118723/" rel="noopener noreferrer"&gt;&lt;em&gt;The Staff Engineer's Path&lt;/em&gt;&lt;/a&gt;, calls this "managing up" — providing clear technical context to product managers and leadership so they can make informed decisions. It's not about saying no. It's about giving decision-makers the information they need to say yes to the right things.&lt;/p&gt;

&lt;p&gt;I've seen this make or break teams. One of the most impactful things I've done in my career wasn't writing code at all. It was building a one-page technical summary that helped a VP understand why we needed to delay a launch by three weeks to fix a reliability issue. That single document prevented an outage that would have cost far more than three weeks of delay.&lt;/p&gt;

&lt;p&gt;This role requires skills that most engineering curricula don't teach: writing clearly for non-technical audiences, presenting tradeoffs without drowning people in implementation details, building trust with stakeholders who don't speak your language. None of this is glamorous. All of it matters.&lt;/p&gt;

&lt;p&gt;Want to practice? Next time your team makes a technical decision, write a one-paragraph summary that a product manager could understand. If you can explain &lt;em&gt;why&lt;/em&gt; without using jargon, you're building the muscle.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The engineers who shape their companies aren't the ones who write the most code. They're the ones who make sure the right code gets written.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Do You Grow Into These Senior Engineer Roles?
&lt;/h2&gt;

&lt;p&gt;Here's the thing nobody's saying about the senior engineer transition: it's not a promotion. It's a career change.&lt;/p&gt;

&lt;p&gt;The skills that got you from junior to mid-level — learning frameworks, writing clean code, debugging efficiently — are table stakes at the senior level. They won't get you further. What will is developing real competence in the four roles I've described: system design, mentorship, technical debt management, and cross-functional leadership.&lt;/p&gt;

&lt;p&gt;As I wrote about in &lt;a href="https://www.kunalganglani.com/blog/ai-writes-code-whats-left-for-engineers" rel="noopener noreferrer"&gt;what's left for software engineers as AI writes more code&lt;/a&gt;, the engineers who thrive aren't the ones who type the fastest. They're the ones who think the clearest.&lt;/p&gt;

&lt;p&gt;So here's my challenge: for the next two weeks, track how you spend your time. If 90% of it is writing new code, you're building mid-level skills. Start intentionally carving out time for design reviews, mentoring conversations, and stakeholder communication. It will feel uncomfortable. It will feel less productive. Do it anyway.&lt;/p&gt;

&lt;p&gt;The engineers who drive real impact at senior and staff levels aren't coding machines. They're systems thinkers, force multipliers, and translators between the technical and the human. Start building those muscles now. The title will follow. Or it won't, and you'll realize you stopped caring about the title because the impact became obvious on its own.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/senior-engineer-hidden-roles?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=senior-engineer-hidden-roles" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>developercareer</category>
      <category>engineeringleadership</category>
      <category>careergrowth</category>
    </item>
    <item>
      <title>AI Agent Control Flow: Why Better Prompts Won't Fix Your Broken Agent Architecture [2026]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Fri, 08 May 2026 12:47:13 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/ai-agent-control-flow-why-better-prompts-wont-fix-your-broken-agent-architecture-2026-42b0</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/ai-agent-control-flow-why-better-prompts-wont-fix-your-broken-agent-architecture-2026-42b0</guid>
      <description>&lt;h2&gt;
  
  
  The Prompt Isn't the Problem. The Architecture Is.
&lt;/h2&gt;

&lt;p&gt;Last year, I watched a team spend three months crafting an increasingly elaborate prompt for an AI agent that was supposed to handle customer support escalations. The prompt grew to over 4,000 tokens. Nested instructions, edge case handling, persona definitions, a small novel's worth of "if the user says X, do Y" rules. It still failed unpredictably in production. The issue wasn't the prompt. It was that the team was trying to encode &lt;strong&gt;AI agent control flow&lt;/strong&gt; into natural language. And natural language is a terrible programming language.&lt;/p&gt;

&lt;p&gt;This is the wall most teams building AI agents are hitting right now. Not a model intelligence wall. Not a context window wall. An architecture wall. The fix isn't a better prompt. It's a fundamentally different way of structuring how agents make decisions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The teams shipping reliable AI agents in 2026 aren't prompt engineering their way out of complexity. They're building control flow the way software engineers have always built control flow: with code.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What Is Control Flow in AI Agents?
&lt;/h2&gt;

&lt;p&gt;Control flow in AI agents refers to the explicit, programmatic structure that governs how an agent moves through tasks: what it does first, what it does next, how it handles failures, when it loops, and when it stops. It's the same concept you learned in your first CS class — conditionals, loops, state machines, error handling — applied to orchestrating LLM calls instead of database queries.&lt;/p&gt;

&lt;p&gt;In a prompt-only agent, the LLM decides everything. It interprets the task, chooses its next action, evaluates whether it succeeded, and determines when it's done. All of that decision-making lives inside a single inference call (or a chain of them), guided only by text. In a control-flow-first agent, a structured program makes those decisions. The LLM gets called for specific, bounded tasks — summarize this document, extract these fields, generate this response — but the &lt;em&gt;when&lt;/em&gt;, &lt;em&gt;why&lt;/em&gt;, and &lt;em&gt;what-happens-if-it-fails&lt;/em&gt; logic lives in actual code.&lt;/p&gt;

&lt;p&gt;As Alessio Fanelli and Swyx of &lt;a href="https://www.latent.space/p/agents" rel="noopener noreferrer"&gt;Latent Space&lt;/a&gt; have argued, prompts are not a programming language. When we build agents, we are building systems, and we should reach for the tools of systems building: modularity, abstraction, and control flow. The most advanced agent teams have moved to a "code-first" approach where the agent's logic is defined in a robust programming language, and the LLM is called as a tool for specific, well-defined tasks.&lt;/p&gt;

&lt;p&gt;If you've worked with &lt;a href="https://www.kunalganglani.com/blog/multi-agent-ai-systems-production" rel="noopener noreferrer"&gt;multi-agent AI systems in production&lt;/a&gt;, you know this already. The agents that survive contact with real users aren't the ones with the cleverest prompts. They're the ones with the most deliberate architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Prompt-Only AI Agents Fail in Production
&lt;/h2&gt;

&lt;p&gt;I've shipped enough AI-powered features to know that the demo-to-production gap is where most agent architectures go to die. Prompt-only agents die the hardest. Here's why.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No real error handling.&lt;/strong&gt; When a prompt-only agent gets an unexpected response from a tool call, or receives malformed JSON, or hits a rate limit, it has no structured way to recover. It either hallucinates a workaround, retries blindly, or stops dead. In code, you'd write a try-catch with exponential backoff and a fallback strategy. In a prompt, you write "If something goes wrong, try again" and cross your fingers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;State management is a nightmare.&lt;/strong&gt; Complex tasks require maintaining state across multiple steps. A prompt-only agent carries state in its context window, which means it's subject to all the fragility of long-context inference: attention degradation, lost details, the ever-present risk of the model "forgetting" a critical piece of information from step 3 when it's executing step 17. I've debugged these failures. They're maddening because they're intermittent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Non-determinism compounds.&lt;/strong&gt; Every LLM call introduces variance. In a single call, that variance is manageable. In a 20-step agent workflow where each step's output feeds the next, variance compounds into chaos. I've seen agents that work perfectly 8 out of 10 times in testing fail 4 out of 10 times in production because the distribution of real-world inputs is always wider than your test suite assumes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost spirals.&lt;/strong&gt; Without explicit control over when and how the LLM is called, prompt-only agents are wildly inefficient. They'll call GPT-4-class models for tasks that a regex could handle. They'll re-process entire conversation histories instead of caching intermediate results. I've watched token costs for a single agent task go from $0.03 to $2.40 because the agent decided to "think through" a problem that had a deterministic answer. That's an 80x cost multiplier for zero added value.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://a16z.com/what-to-know-about-ai-agents/" rel="noopener noreferrer"&gt;a16z AI infrastructure team&lt;/a&gt; has documented this pattern: early AI agents relied on a single, monolithic prompt to guide behavior, and the approach is brittle. The new architectural pattern involves a central "agent kernel" or runtime that manages state, executes a control flow loop, and calls on LLMs as one of many tools to accomplish sub-tasks.&lt;/p&gt;

&lt;p&gt;If you've read about &lt;a href="https://www.kunalganglani.com/blog/ai-agent-failure-production-prevention" rel="noopener noreferrer"&gt;AI agent failures in production&lt;/a&gt;, the patterns are familiar. The root cause is almost always architectural.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Control-Flow-First Architecture
&lt;/h2&gt;

&lt;p&gt;So what does a control-flow-first agent actually look like? It looks a lot more like traditional software than most people expect. And that's the point.&lt;/p&gt;

&lt;p&gt;The core idea is separation of concerns. Your program defines &lt;em&gt;what happens&lt;/em&gt;. The LLM defines &lt;em&gt;how specific subtasks get done&lt;/em&gt;. Think of it like a project manager (the code) delegating to a specialist (the LLM). The project manager decides order of operations, handles dependencies, manages failures, tracks progress. The specialist focuses on doing one thing well.&lt;/p&gt;

&lt;p&gt;Omar Khattab, Stanford researcher and creator of &lt;a href="https://dspy.ai/" rel="noopener noreferrer"&gt;DSPy&lt;/a&gt;, has been one of the clearest voices here. DSPy reframes interaction with language models from "prompting" to "programming." It separates the logic of a program — the control flow — from the parameters, meaning the prompts and model weights. This lets you build reliable, complex systems on top of language models without manually tuning every prompt.&lt;/p&gt;

&lt;p&gt;In practice, a control-flow-first architecture has a few key properties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explicit state machines.&lt;/strong&gt; The agent's possible states and transitions are defined in code. No ambiguity about what happens after a task completes or an error fires.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Typed inputs and outputs.&lt;/strong&gt; Each LLM call has a defined schema for what goes in and what comes out. No more parsing free-text responses and hoping the model formatted things correctly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic routing.&lt;/strong&gt; Decisions that &lt;em&gt;can&lt;/em&gt; be made without an LLM &lt;em&gt;are&lt;/em&gt; made without an LLM. If the next step depends on whether a value is above or below a threshold, that's an if-statement. Not a prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured retry and fallback logic.&lt;/strong&gt; When a step fails, the system knows what to do: retry with different parameters, fall back to a simpler model, escalate to a human, or gracefully degrade. No guessing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observable execution traces.&lt;/strong&gt; Because the control flow is explicit, you can log every decision point, every LLM call, every state transition. Debugging goes from "why did the agent do that?" to "it entered this state because this condition was true."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.sequoiacap.com/article/agentic-workflows-the-future-of-llms/" rel="noopener noreferrer"&gt;Sequoia Capital's analysis&lt;/a&gt; of LLM system evolution captures this well: simple, one-step LLM calls are being replaced by compound, agentic systems that reason, plan, and use tools. These systems require explicit control flow to manage multi-step tasks, handle errors, and decide when to use different tools or models.&lt;/p&gt;

&lt;p&gt;None of this is new. It's how we've built reliable distributed systems for decades. The insight is that AI agents &lt;em&gt;are&lt;/em&gt; distributed systems. They just happen to have a non-deterministic component.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Frameworks Support AI Agent Control Flow?
&lt;/h2&gt;

&lt;p&gt;The tooling ecosystem is catching up fast. Several frameworks now explicitly support control-flow-first agent design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LangGraph&lt;/strong&gt; takes a graph-based approach, letting you define agent workflows as nodes and edges with explicit state management. It's opinionated about control flow in a way that vanilla LangChain never was. That's a good thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DSPy&lt;/strong&gt; goes furthest in the "programming, not prompting" direction. You define modules with typed signatures, compose them into pipelines, and let the framework optimize the prompts automatically. You never write a prompt. You write a program.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Temporal&lt;/strong&gt; and similar workflow engines are being adopted by teams that want battle-tested durability guarantees for long-running agent tasks. If you're already familiar with &lt;a href="https://www.kunalganglani.com/blog/temporal-workflow-engine-guide" rel="noopener noreferrer"&gt;Temporal's workflow engine&lt;/a&gt;, the mental model transfers directly: an agent workflow is just a workflow with LLM calls as activities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prefect and Dagster&lt;/strong&gt;, originally built for data pipelines, are being repurposed for agent orchestration. They already solve the hard problems: state management, retry logic, observability. Why rebuild all of that from scratch?&lt;/p&gt;

&lt;p&gt;Matei Zaharia, co-founder of Databricks, has been advocating for what he calls "compound AI systems" — architectures where multiple models, retrievers, and tools are composed together with explicit program logic rather than relying on a single model to figure everything out. I like this framing because it makes AI agents a software engineering problem, not just a machine learning problem. And software engineering problems, we know how to solve.&lt;/p&gt;

&lt;p&gt;The common thread: stop asking the LLM to be the operating system. Let it be a function call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do You Still Need Prompt Engineering?
&lt;/h2&gt;

&lt;p&gt;Here's the thing nobody's saying about this shift: prompt engineering doesn't disappear. It gets smaller and more focused.&lt;/p&gt;

&lt;p&gt;In a control-flow-first architecture, you still write prompts. But instead of one massive, fragile prompt that tries to govern the entire agent's behavior, you write small, specific prompts for individual tasks. "Extract the customer's intent from this message" is a much easier prompt to get right than "You are a customer support agent. Handle all incoming messages. If the customer is angry, de-escalate. If they need a refund, check the policy..."&lt;/p&gt;

&lt;p&gt;Smaller prompts are easier to test, easier to optimize, and easier to replace. If a new model handles entity extraction better, you swap it in for that one step without touching the rest of your system. Having built a &lt;a href="https://www.kunalganglani.com/blog/prompt-engineering-patterns-that-changed-how-i-ship" rel="noopener noreferrer"&gt;100+ prompt playbook&lt;/a&gt;, I can tell you the best prompts I've ever written are surgical. They do one thing and do it well. That's exactly what control-flow-first design demands.&lt;/p&gt;

&lt;p&gt;The analogy I keep coming back to is microservices. Monolithic prompts have the same problems as monolithic applications: hard to test, hard to debug, hard to scale. A change in one area breaks something in another. Decomposing the prompt into small, composable units with explicit interfaces between them is the same architectural instinct that drove the industry from monoliths to services. We've been here before. We know how this plays out.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Boring Answer Is the Right One
&lt;/h2&gt;

&lt;p&gt;This is one of those things where the boring answer is actually the right one. The next leap in AI agent reliability isn't coming from a model that's 10% smarter. It's coming from treating agent design as a proper software engineering discipline.&lt;/p&gt;

&lt;p&gt;Loops, conditionals, state machines, error handling, observability, typed interfaces. None of this is new. None of it is exciting. All of it is necessary.&lt;/p&gt;

&lt;p&gt;After building and shipping AI systems for the past several years, I've learned something that keeps proving true: the gap between a compelling demo and a production system is almost never about model capability. It's about all the engineering that surrounds the model. The teams winning right now figured this out early. The LLM is a component, not the architecture.&lt;/p&gt;

&lt;p&gt;If you're building AI agents and you're still fighting prompt brittleness, stop tuning the prompt. Zoom out. Draw the state machine. Define the error paths. Make the control flow explicit. Your agent will thank you by actually working when a real user touches it.&lt;/p&gt;

&lt;p&gt;The future of AI agents isn't smarter models with longer prompts. It's smarter architecture with smaller, sharper prompts embedded in real code. And for anyone who's been building software for more than a few years, that should feel like coming home.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/ai-agent-control-flow-architecture?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=ai-agent-control-flow-architecture" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aiagents</category>
      <category>controlflow</category>
      <category>architecture</category>
      <category>promptengineering</category>
    </item>
    <item>
      <title>Android 17 QPR1 Beta 2: The Developer Features Nobody Is Talking About [2026]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Thu, 07 May 2026 16:08:28 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/android-17-qpr1-beta-2-the-developer-features-nobody-is-talking-about-2026-3b24</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/android-17-qpr1-beta-2-the-developer-features-nobody-is-talking-about-2026-3b24</guid>
      <description>&lt;h1&gt;
  
  
  Android 17 QPR1 Beta 2: The Developer Features Nobody Is Talking About [2026]
&lt;/h1&gt;

&lt;p&gt;Google dropped Android 17 QPR1 Beta 2 and tech media did what it always does: focused on the wallpaper refresh and notification shade tweaks. Meanwhile, the actual developer-facing changes buried in the release notes will break production apps, force privacy migrations, and change how multi-device layouts work on Android. I've been running the beta on a Pixel 9 Pro for a week. The surface-level coverage completely misses what matters.&lt;/p&gt;

&lt;p&gt;If you're shipping Android apps professionally, the Android 17 QPR1 Beta 2 developer changes are the ones that should have your attention right now. Not the UI polish. Not the emoji updates. The API deprecations, the privacy enforcement deadlines, and the adaptive layout requirements that Google is finally making non-optional.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Actually New in Android 17 QPR1 Beta 2 for Developers?
&lt;/h2&gt;

&lt;p&gt;Every Android QPR (Quarterly Platform Release) beta ships a mix of user-facing polish and developer-critical changes. The QPR1 betas have historically been where Google tightens enforcement on APIs they soft-launched in the main release. Android 17 QPR1 Beta 2 follows this pattern hard.&lt;/p&gt;

&lt;p&gt;The changes that matter fall into three buckets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy enforcement escalation.&lt;/strong&gt; Scoped storage exceptions that survived through Android 16 are now deprecated with hard removal timelines. The photo picker API is no longer a suggestion. Apps targeting API level 36 that bypass it will see Play Store review flags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adaptive layout compliance.&lt;/strong&gt; Google has been pushing responsive, multi-form-factor layouts since foldables went mainstream. With QPR1 Beta 2, the &lt;a href="https://developer.android.com/develop/ui/views/layout/responsive-adaptive-design-with-views" rel="noopener noreferrer"&gt;large screen compatibility guidelines&lt;/a&gt; are getting enforced through new Play Console warnings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Background process restrictions.&lt;/strong&gt; The foreground service type requirements introduced in Android 14 have been further tightened. Several previously exempt service types now require explicit user consent flows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've shipped apps that had to scramble through previous Android privacy changes. The pattern is always the same: Google announces it softly, developers ignore it, enforcement hits, everyone panics. We're in the "soft announcement" phase right now. Don't be the team that panics later.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Will Android 17's Privacy Changes Affect Existing Apps?
&lt;/h2&gt;

&lt;p&gt;This is the big one. Google's privacy trajectory across Android versions has been dead consistent: introduce an optional API, make it recommended, make it mandatory. With Android 17 QPR1, several privacy mechanisms are crossing from "recommended" to "enforced."&lt;/p&gt;

&lt;p&gt;The photo picker enforcement is the most impactful change for consumer-facing apps. If your app currently uses &lt;code&gt;READ_MEDIA_IMAGES&lt;/code&gt; or &lt;code&gt;READ_MEDIA_VIDEO&lt;/code&gt; permissions directly, you need to migrate to the system photo picker or the &lt;a href="https://developer.android.com/training/data-storage/shared/media" rel="noopener noreferrer"&gt;MediaStore API with filtered access&lt;/a&gt;. This isn't new — the photo picker launched in Android 13 — but QPR1 Beta 2 signals that apps bypassing it will face tangible consequences in Play Store review.&lt;/p&gt;

&lt;p&gt;Health Connect integration is another area where enforcement is getting real. Health data APIs that were introduced as opt-in are becoming the only sanctioned path for fitness and wellness apps. If you've been reading health data through custom providers or direct sensor access, the migration clock is ticking.&lt;/p&gt;

&lt;p&gt;I've worked with Android's permission model evolution since the Marshmallow days. Here's what I know for certain: Google moves slowly on enforcement, but they never reverse course. Every single privacy restriction that started as a soft warning eventually became a hard gate. Plan your migration now, not when the stable release ships.&lt;/p&gt;

&lt;p&gt;How this hits you depends on what you're building. Social media and photo-heavy apps will feel the photo picker enforcement most. Health and fitness apps need to audit their Health Connect integration. And any app doing background location tracking should re-examine whether their use case survives the new foreground service consent requirements. If you've explored how &lt;a href="https://www.kunalganglani.com/blog/dark-patterns-tech-engineering-deception" rel="noopener noreferrer"&gt;dark patterns in tech affect user trust&lt;/a&gt;, you'll recognize Google's broader push: making implicit data access explicit and user-controlled.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adaptive Layouts Are No Longer Optional
&lt;/h2&gt;

&lt;p&gt;Google has been talking about adaptive layouts for years. Foldables, tablets, ChromeOS, desktop mode, Android XR headsets. The form factor explosion has made single-layout apps look increasingly broken. With Android 17 QPR1 Beta 2, Google is finally backing the talk with enforcement.&lt;/p&gt;

&lt;p&gt;The new Play Console quality checks evaluate how apps behave across screen configurations. This isn't a binary pass/fail yet, but the direction is obvious. Apps that don't properly handle configuration changes for different screen sizes and densities will see warnings. Based on Google's track record, those warnings become requirements. Every time.&lt;/p&gt;

&lt;p&gt;Sameer Samat, who leads Google's Android and Pixel ecosystem, has repeatedly emphasized the multi-form-factor future of Android in recent keynotes. The platform is no longer just phones. Google's desktop mode for Pixel, which I &lt;a href="https://www.kunalganglani.com/blog/google-pixel-desktop-mode-kill-laptop" rel="noopener noreferrer"&gt;covered when it first appeared&lt;/a&gt;, was an early signal. Android 17 makes it louder.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Building an Android app for a single screen size and calling it done? That's over. QPR1 Beta 2 is Google saying "we're not asking anymore."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Practically, this means adopting &lt;code&gt;WindowSizeClass&lt;/code&gt; from the Jetpack library, handling configuration changes gracefully, and testing your app across at least three form factors: compact phone, medium tablet/foldable inner display, and expanded desktop. If you're still using fixed-dp layouts anywhere, now is the time to refactor.&lt;/p&gt;

&lt;p&gt;I've watched teams burn weeks debugging layout issues on foldables that could have been avoided with proper adaptive architecture from day one. The cost of retrofitting adaptive layouts into a mature app is roughly 3-5x the cost of building them in from the start. Most production apps with more than 50 screens? Budget 2-4 sprint cycles to properly adopt the new layout expectations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Background Process and Foreground Service Changes
&lt;/h2&gt;

&lt;p&gt;Android's war on background processes has been going on since Doze mode in Marshmallow. Each version ratchets the restrictions tighter. Android 17 QPR1 Beta 2 continues the trend, and it's precise about what it targets.&lt;/p&gt;

&lt;p&gt;The foreground service type system, which Android 14 introduced to force developers to declare &lt;em&gt;why&lt;/em&gt; their app needs a foreground service, is getting more granular. Several service types that were broadly permitted now require additional justification through a user-facing consent dialog. This particularly affects apps using &lt;code&gt;dataSync&lt;/code&gt;, &lt;code&gt;mediaPlayback&lt;/code&gt;, and &lt;code&gt;location&lt;/code&gt; foreground service types.&lt;/p&gt;

&lt;p&gt;The battery optimization exemption list is also getting harder to escape. Apps that previously requested exemption via &lt;code&gt;REQUEST_IGNORE_BATTERY_OPTIMIZATIONS&lt;/code&gt; will find that Google Play's review process flags these requests more aggressively. The guidance is clear: use WorkManager for deferrable work, use the exact alarm API for time-critical tasks, and stop trying to keep your app alive in the background.&lt;/p&gt;

&lt;p&gt;For anyone building real-time features — chat apps, navigation, music players — the new consent flows add friction. But the alternative was the Android 4.x era where every app fought for background CPU time and battery life was a joke. This is one of those things where the boring answer is actually the right one: proper job scheduling beats background hacks every time.&lt;/p&gt;

&lt;p&gt;If you're building apps that rely heavily on background processing, the architectural thinking here overlaps with what I discussed in &lt;a href="https://www.kunalganglani.com/blog/plan-review-software-engineering" rel="noopener noreferrer"&gt;the evolving role of software engineers&lt;/a&gt;. Less about clever hacks, more about proper system design.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Developers Should Do Right Now
&lt;/h2&gt;

&lt;p&gt;Don't wait for the stable release.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Install the beta on a test device.&lt;/strong&gt; A real Pixel, not an emulator. Emulators miss thermal throttling behavior and real-world permission dialog flows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run your full test suite against API level 36.&lt;/strong&gt; Focus on storage access, background services, and layout behavior on non-standard screen sizes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit your foreground services.&lt;/strong&gt; List every foreground service type your app declares and check each against the updated &lt;a href="https://developer.android.com/develop/background-work/services/foreground-services" rel="noopener noreferrer"&gt;foreground service requirements&lt;/a&gt;. If any are newly restricted, start planning the migration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test adaptive layouts across three screen sizes.&lt;/strong&gt; Use a foldable (physical or emulator), a standard phone, and a tablet or desktop mode configuration. Write down every layout that breaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check your &lt;code&gt;targetSdkVersion&lt;/code&gt; timeline.&lt;/strong&gt; Google Play typically gives 12 months after a new API level before requiring apps to target it. Start planning now.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I've shipped enough Android updates to know this: the gap between "it works on the stable release" and "it passes Play Store review" is where most schedule slippage happens. Teams that treat QPR betas as early warning systems consistently have smoother launches.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Android Is Heading
&lt;/h2&gt;

&lt;p&gt;Android 17 QPR1 Beta 2 isn't just a point release. It's a clear signal of where the platform goes in the next 18 months. Google is converging on a vision where Android apps work seamlessly across phones, foldables, tablets, desktops, cars, and XR headsets. The privacy model is moving toward explicit, granular user consent for everything. Background processing is being funneled into a small set of well-defined patterns.&lt;/p&gt;

&lt;p&gt;My prediction: by the time Android 17's first QPR ships to stable devices, Google will surface adaptive layout compliance as a visible metric in Play Console. Similar to how they surface Core Web Vitals for web. This is my speculation, not insider knowledge, but the trajectory is unmistakable.&lt;/p&gt;

&lt;p&gt;The apps that thrive on Android in 2027 will be the ones that treat privacy, adaptability, and battery efficiency as first-class architectural concerns. Not checkboxes. Not last-minute fixes before a Play Store submission. Foundational design decisions baked in from day one.&lt;/p&gt;

&lt;p&gt;The beta is available now. Go break your app on purpose. It's cheaper than having your users do it for you.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/android-17-qpr1-beta-developer-features?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=android-17-qpr1-beta-developer-features" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>android17</category>
      <category>androiddevelopment</category>
      <category>google</category>
      <category>mobiledev</category>
    </item>
    <item>
      <title>Gemini Flash vs Pro for Developers: Which Google AI Model Actually Fits Your Use Case [2026]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Thu, 07 May 2026 12:50:34 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/gemini-flash-vs-pro-for-developers-which-google-ai-model-actually-fits-your-use-case-2026-3j6b</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/gemini-flash-vs-pro-for-developers-which-google-ai-model-actually-fits-your-use-case-2026-3j6b</guid>
      <description>&lt;p&gt;Google's Gemini model family now spans four generations, three tiers, and more naming confusion than a Java enterprise framework. If you're a developer trying to figure out whether to use Gemini Flash vs Pro for your next project — or wondering what the 1-million-plus token context window actually means in practice — you're not alone. I've spent the last several months building with these models, and the gap between what Google announces on stage and what actually works in production is worth talking about.&lt;/p&gt;

&lt;p&gt;Let me cut through the marketing and tell you what I've learned.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Gemini Model Lineup: What Actually Exists Right Now
&lt;/h2&gt;

&lt;p&gt;Before we compare anything, let's clear up the naming chaos. Google's current &lt;a href="https://ai.google.dev/gemini-api/docs/models" rel="noopener noreferrer"&gt;Gemini API model page&lt;/a&gt; lists three main models in the latest generation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemini 3.1 Pro&lt;/strong&gt; — The flagship reasoning model, currently in preview. Strong agentic capabilities, and the model you reach for when accuracy matters more than speed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini 3 Flash&lt;/strong&gt; — The cost-optimized workhorse. Competitive performance with larger models at a fraction of the cost and latency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini 3 Nano&lt;/strong&gt; — The on-device model for mobile and edge deployments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you've heard the term "Gemini Omni" floating around, that's not a real product. The confusion likely stems from Google's December 2023 announcement of Gemini Ultra (the original top-tier model), which has since been superseded by the Pro line. As &lt;a href="https://blog.google/technology/ai/google-gemini-ai/" rel="noopener noreferrer"&gt;Sundar Pichai explained&lt;/a&gt; when first introducing the Gemini family, the hierarchy is Ultra/Pro/Nano. Not Omni.&lt;/p&gt;

&lt;p&gt;The lineage matters because each generation has brought real improvements. The 1.5 era introduced Flash as a concept — a distilled, lighter model trained from Pro's knowledge. That distillation approach carried forward into every subsequent generation, and it's why Flash models punch well above their weight class.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Gemini Flash Good Enough for Production?
&lt;/h2&gt;

&lt;p&gt;This is the question I get asked most. The answer is yes. For most use cases, emphatically yes.&lt;/p&gt;

&lt;p&gt;When Google first introduced Gemini 1.5 Flash at I/O 2024, the pitch was simple: take the intelligence of Pro, distill it into something faster and cheaper. As Kyle Wiggers &lt;a href="https://techcrunch.com/2024/05/14/google-announces-gemini-1-5-flash-a-new-ai-model-thats-cheaper-and-faster-than-pro/" rel="noopener noreferrer"&gt;reported in TechCrunch&lt;/a&gt;, Flash was designed specifically for "lower-latency, cheaper AI responses for applications like live chatbots and real-time analysis." That design philosophy has only sharpened since.&lt;/p&gt;

&lt;p&gt;To put historical benchmarks in context: when the 1.5 generation launched, Pro scored 84% on MMLU while Flash hit 79%. A 5-point gap for a model that was dramatically cheaper and faster. As Emilia David &lt;a href="https://www.theverge.com/2024/5/14/24156119/google-gemini-1-5-flash-ai-model-speed-efficiency" rel="noopener noreferrer"&gt;noted at The Verge&lt;/a&gt;, Flash retained multimodal reasoning capabilities despite being "distilled" from the larger model. Each generation since has narrowed that gap further.&lt;/p&gt;

&lt;p&gt;I've shipped features using both tiers, and here's the pattern I've settled on: Flash handles 80-90% of my production workloads. Summarization, classification, extraction, conversational interfaces, code explanation — Flash eats these for breakfast. I only escalate to Pro when I need complex multi-step reasoning, when I'm dealing with genuinely ambiguous inputs that need careful analysis, or when I'm building &lt;a href="https://www.kunalganglani.com/blog/rise-of-agentic-ai" rel="noopener noreferrer"&gt;agentic workflows&lt;/a&gt; that require the model to plan and execute autonomously.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The boring answer is the right one: start with Flash, measure where it falls short, and upgrade to Pro only for those specific tasks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How the Massive Context Window Changes What You Can Build
&lt;/h2&gt;

&lt;p&gt;Okay, the context window story is where I actually get excited. Google first broke the context window ceiling with the 1.5 generation, when Josh Haftel, then Group Product Manager at Google, &lt;a href="https://developers.googleblog.com/2024/05/google-ai-studio-and-gemini-api-updates.html" rel="noopener noreferrer"&gt;announced a 2-million-token context window&lt;/a&gt; for Gemini 1.5 Pro. That capacity has only grown. The current generation can handle entire codebases, full video transcripts, and massive document collections in a single prompt.&lt;/p&gt;

&lt;p&gt;But here's the thing nobody's saying about context windows: having a million tokens available doesn't mean you should use a million tokens every time.&lt;/p&gt;

&lt;p&gt;I've been building document-heavy applications for the past year, and context window size matters most for two specific patterns. First, whole-codebase analysis. Being able to drop an entire repository into context and ask architectural questions without chunking. That's transformative. If you've been doing RAG gymnastics to analyze code spread across dozens of files, a massive context window lets you just... not do that. Second, long-form media understanding. Processing entire meeting transcripts, video content, or multi-hundred-page documents without the lossy summarization that chunking requires.&lt;/p&gt;

&lt;p&gt;Where it matters less than you'd think: most chatbot and assistant use cases. Your users are sending 50-200 token messages. A 10,000-token conversation history covers 95% of sessions. You're paying for context you'll never touch.&lt;/p&gt;

&lt;p&gt;The cost math is critical. During the 1.5 era, Google priced Flash at $0.35 per million input tokens (up to 128K context) versus $3.50 per million for Pro. That's a 10x difference. Multiply that by millions of API calls and you're not looking at an academic distinction. You're looking at your cloud bill.&lt;/p&gt;

&lt;p&gt;If you're weighing these costs against other providers, I compared &lt;a href="https://www.kunalganglani.com/blog/llm-api-latency-benchmarks-2026" rel="noopener noreferrer"&gt;LLM API latency across providers&lt;/a&gt; earlier this year. Google's Flash tier consistently wins on speed-per-dollar.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Project Astra and Can Developers Use It?
&lt;/h2&gt;

&lt;p&gt;Project Astra is Google DeepMind's vision for real-time, multimodal AI agents — the kind that can see through your camera, hear your voice, understand spatial context, and respond conversationally. The demos are impressive. An AI that watches a video feed, remembers where you left your glasses, and answers questions about what it's seeing in real time.&lt;/p&gt;

&lt;p&gt;Developers need to know one thing about it though: Project Astra is a research initiative, not an API you can call today.&lt;/p&gt;

&lt;p&gt;As Ryan Morrison, Senior Editor at &lt;a href="https://www.tomsguide.com/ai/what-is-project-astra" rel="noopener noreferrer"&gt;Tom's Guide explained&lt;/a&gt;, Astra "is not a product but a demonstration of what's possible with Google's AI models." The underlying technology — continuous video frame encoding, real-time audio processing, persistent information caching — is technically fascinating. Demis Hassabis, CEO of Google DeepMind, has framed it as the foundation for a future generation of AI assistants.&lt;/p&gt;

&lt;p&gt;So what does trickle down to developers today? The Live API. Google's real-time streaming API lets you build applications that process audio and video in near-real-time using Gemini models. It's not the full Astra vision, but it's the productized slice of that research. If you're building anything involving live camera feeds, voice interaction, or real-time multimodal understanding, the Live API is where the action is.&lt;/p&gt;

&lt;p&gt;I've been experimenting with it for a developer tool that analyzes whiteboard diagrams during meetings. The multimodal capability is real. The model can parse handwritten architecture diagrams and convert them to structured descriptions. It's not perfect, but it's far better than anything I could have built even a year ago. And it runs on Flash, not Pro, which keeps costs reasonable even with continuous video input.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini Flash vs Pro: The Decision Framework
&lt;/h2&gt;

&lt;p&gt;After shipping multiple features on both tiers, here's how I think about the choice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Gemini 3 Flash when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need low latency for user-facing features&lt;/li&gt;
&lt;li&gt;Your task is well-defined: summarization, classification, extraction, translation&lt;/li&gt;
&lt;li&gt;You're processing high volumes and cost matters (it always matters)&lt;/li&gt;
&lt;li&gt;You're building conversational interfaces where response time shapes the user experience&lt;/li&gt;
&lt;li&gt;Real-time multimodal processing where speed beats perfection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use Gemini 3.1 Pro when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complex, multi-step reasoning is required — chain-of-thought over ambiguous inputs&lt;/li&gt;
&lt;li&gt;You're building autonomous agents that need to plan, reason, and use tools&lt;/li&gt;
&lt;li&gt;Accuracy on hard problems is non-negotiable (legal analysis, medical, financial)&lt;/li&gt;
&lt;li&gt;You need the largest context window for whole-codebase or whole-document analysis&lt;/li&gt;
&lt;li&gt;You're doing deep analysis tasks where you'll wait for quality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use Gemini 3 Nano when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You're building mobile or edge applications&lt;/li&gt;
&lt;li&gt;Privacy requires on-device processing&lt;/li&gt;
&lt;li&gt;Offline capability is a requirement&lt;/li&gt;
&lt;li&gt;Latency needs to be sub-100ms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The mistake I see most teams make is defaulting to Pro for everything because it's "better." It is better at hard reasoning tasks. For the other 85% of what you're building, Flash isn't just cheaper — it's actually preferable because faster responses create better user experiences. As I've written about when discussing &lt;a href="https://www.kunalganglani.com/blog/ai-coding-agents-wont-replace-you" rel="noopener noreferrer"&gt;how AI agents are reshaping software engineering&lt;/a&gt;, the bottleneck in most AI applications isn't model intelligence. It's latency, cost, and reliability at scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for What You Build Next
&lt;/h2&gt;

&lt;p&gt;Google's Gemini strategy is getting clearer with each generation: make the Flash tier so good that most developers never need Pro, then make Pro so capable it handles tasks that previously required custom pipelines of multiple models stitched together.&lt;/p&gt;

&lt;p&gt;If you've been waiting for "the right model" to start building AI features, stop waiting. Flash is production-ready, affordable, and fast enough for real-time applications. Pro is there when you need serious reasoning power thrown at genuinely hard problems. The massive context windows mean you can stop engineering around chunking limitations for a lot of use cases.&lt;/p&gt;

&lt;p&gt;Project Astra remains a glimpse of where this is heading — persistent, multimodal agents that understand the world in real time. We're not there yet as an API, but the building blocks (Live API, massive context, multimodal understanding) are available today.&lt;/p&gt;

&lt;p&gt;My prediction: within 12 months, the Flash tier will match what Pro can do today, and Pro will be doing things we currently need multi-agent orchestration to achieve. The distillation pipeline Google has built isn't just a cost optimization trick. It's a compounding advantage. Every generation of Pro trains the next generation of Flash, and every generation of Flash makes it cheaper for developers to build things that were impossible a year ago.&lt;/p&gt;

&lt;p&gt;Stop waiting. Start building with Flash. Upgrade to Pro where the benchmarks tell you to. That's it. That's the whole strategy.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/gemini-flash-vs-pro-developers?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=gemini-flash-vs-pro-developers" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>googlegemini</category>
      <category>llm</category>
      <category>aideveloper</category>
      <category>googleai</category>
    </item>
    <item>
      <title>CVE-2024-3400 and the AI Security Crisis: Palo Alto's CEO Warned Us While His Own Firewalls Burned [2026]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Wed, 06 May 2026 12:49:24 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/cve-2024-3400-and-the-ai-security-crisis-palo-altos-ceo-warned-us-while-his-own-firewalls-burned-47ce</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/cve-2024-3400-and-the-ai-security-crisis-palo-altos-ceo-warned-us-while-his-own-firewalls-burned-47ce</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2024-3400 and the AI Security Crisis: Palo Alto's CEO Warned Us While His Own Firewalls Burned
&lt;/h1&gt;

&lt;p&gt;Nikesh Arora, CEO of Palo Alto Networks, stood on stage at RSA Conference 2024 and told every security team on the planet to be afraid: nation-state attackers are using AI to find vulnerabilities faster than defenders can patch them. The industry, he said, has a "24-to-36-month window" to get ahead of AI-driven threats before attackers gain a serious upper hand. Weeks earlier, his own company had disclosed CVE-2024-3400, a command injection flaw in PAN-OS that scored a perfect 10.0 on the CVSS scale. An unauthenticated attacker could execute arbitrary code with root privileges on Palo Alto's own firewalls. The irony isn't just poetic. It's a signal.&lt;/p&gt;

&lt;p&gt;This isn't a story about one company's bad week. It's about what happens when the tools defenders built become the attack surface, and AI is accelerating the offense faster than anyone predicted.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is CVE-2024-3400 and Why Does It Matter?
&lt;/h2&gt;

&lt;p&gt;CVE-2024-3400 is a command injection vulnerability in the GlobalProtect feature of &lt;a href="https://security.paloaltonetworks.com/CVE-2024-3400" rel="noopener noreferrer"&gt;Palo Alto Networks' PAN-OS software&lt;/a&gt;. It affects PAN-OS versions 10.2, 11.0, and 11.1 when configured with a GlobalProtect gateway or portal. The flaw allows an unauthenticated attacker to execute arbitrary code with root privileges on the firewall itself. No credentials needed. No prior access required.&lt;/p&gt;

&lt;p&gt;Think about what that means. The device your organization trusts to be the barrier between your network and the internet can be completely owned by someone who has never touched your systems before. No phishing email. No stolen password. Just a crafted request to a publicly exposed endpoint.&lt;/p&gt;

&lt;p&gt;Palo Alto Networks' own Unit 42 threat research team assigned the vulnerability the maximum CVSS score of 10.0. The &lt;a href="https://www.cisa.gov/news-events/alerts/2024/04/12/cisa-adds-one-known-exploited-vulnerability-catalog" rel="noopener noreferrer"&gt;Cybersecurity and Infrastructure Security Agency (CISA)&lt;/a&gt; confirmed active exploitation in the wild and immediately added CVE-2024-3400 to its Known Exploited Vulnerabilities catalog. Federal agencies were ordered to patch immediately under Binding Operational Directive 22-01.&lt;/p&gt;

&lt;p&gt;The threat actor behind the initial exploitation, tracked as UTA0218 by Volexity and later analyzed by Varonis Threat Labs, wasn't some script kiddie. They built a custom backdoor called UPSTYLE. Purpose-built persistence designed to survive reboots and maintain access to compromised firewalls. This is tooling that takes significant resources and intent to develop. It screams nation-state.&lt;/p&gt;

&lt;p&gt;I've managed infrastructure that sat behind Palo Alto firewalls. When I saw this CVE drop, my first reaction wasn't surprise. It was that familiar dread of knowing the thing you trusted most just became your biggest liability. If you've ever had to coordinate an emergency patching cycle across dozens of firewalls on a Friday evening, you know exactly what I mean.&lt;/p&gt;

&lt;h2&gt;
  
  
  How AI Is Helping Hackers Find Zero-Days Faster
&lt;/h2&gt;

&lt;p&gt;This is where things get really uncomfortable. At RSA 2024, Arora didn't mince words. He stated plainly that nation-state actors are using AI and large language models to "find vulnerabilities faster" and to "train their malware to be more effective." This isn't conference speculation. It's already happening.&lt;/p&gt;

&lt;p&gt;The old model of vulnerability discovery involved painstaking manual reverse engineering. A skilled researcher might spend weeks or months fuzzing a target, reading disassembled code, and crafting a working exploit. AI compresses that timeline dramatically. LLMs can analyze codebases at scale, identify patterns that correlate with known vulnerability classes, and suggest exploitation paths. The barrier to entry for sophisticated attacks is dropping fast.&lt;/p&gt;

&lt;p&gt;Arora's 24-to-36-month window isn't arbitrary. It reflects a calculation about how quickly AI tooling matures versus how quickly defensive architectures can adapt. And honestly? Having spent years watching organizations struggle to implement basic patch management, I think 24 months is generous.&lt;/p&gt;

&lt;p&gt;[YOUTUBE:qgSv8StOZxA|Palo Alto Networks CEO Nikesh Arora on the cyber threat landscape, impact of AI on cybersecurity]&lt;/p&gt;

&lt;p&gt;We don't know for certain that AI was used to discover CVE-2024-3400 specifically. But the sophistication of the UPSTYLE backdoor and the speed of exploitation suggest a threat actor with advanced capabilities and serious tooling. The exploit chain involved arbitrary file creation leading to command injection. That's exactly the kind of multi-step vulnerability that AI-assisted analysis is particularly good at identifying.&lt;/p&gt;

&lt;p&gt;The security vendors building the walls are themselves targets, and the attackers have access to the same foundational AI models that defenders do. I wrote about similar dynamics in &lt;a href="https://www.kunalganglani.com/blog/ai-pentesting-agents-mythos-darpa" rel="noopener noreferrer"&gt;how AI pentesting agents are learning to hack with DARPA's support&lt;/a&gt;. The offense-defense gap is widening, not shrinking.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Defender's Dilemma: Your Firewall Is Now an Attack Surface
&lt;/h2&gt;

&lt;p&gt;Here's what makes CVE-2024-3400 sting beyond the timing of Arora's warnings. Firewalls are supposed to be the most hardened, most trusted components in your network. They sit at the perimeter. They see all traffic. They have root-level access to everything flowing through them. When the firewall itself is compromised, the attacker doesn't just bypass your defenses. They &lt;em&gt;become&lt;/em&gt; your defenses.&lt;/p&gt;

&lt;p&gt;And this isn't unique to Palo Alto. We've seen similar critical vulnerabilities in Fortinet's FortiOS, Cisco's IOS XE, and Ivanti's Connect Secure VPN appliances. Network security appliances, by their nature, present a massive attack surface because they must be internet-facing and they process untrusted input at scale.&lt;/p&gt;

&lt;p&gt;In my experience building and reviewing security architectures, this is where most organizations have a blind spot. They invest heavily in next-gen firewalls, intrusion detection systems, and endpoint protection. But the implicit assumption is that these devices themselves are trustworthy. CVE-2024-3400 shatters that assumption.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The device you trust to protect your network is the device an attacker trusts to give them root access.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The UPSTYLE backdoor is particularly alarming because it demonstrates operational maturity. UTA0218 didn't just exploit the vulnerability and grab some data. They built persistence. They planned to stay. That's the hallmark of a threat actor with strategic objectives, not an opportunistic smash-and-grab. And it's the kind of sophisticated tradecraft that, as Arora warned, AI is helping to accelerate.&lt;/p&gt;

&lt;p&gt;I've written about how &lt;a href="https://www.kunalganglani.com/blog/npm-supply-chain-attack-defense" rel="noopener noreferrer"&gt;supply chain attacks targeting developer tools and infrastructure&lt;/a&gt; exploit the same basic weakness. The common thread is trust: we implicitly trust our tools, our dependencies, and our security appliances. Attackers know this, and they're systematically going after that trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Zero Trust Actually Means After CVE-2024-3400
&lt;/h2&gt;

&lt;p&gt;Every security vendor talks about "zero trust." It's become so overused it's practically meaningless as a marketing term. But CVE-2024-3400 is a case study in why the underlying principle actually matters.&lt;/p&gt;

&lt;p&gt;Zero trust, stripped of the marketing, means this: no component in your architecture gets implicit trust based on its position in the network. Not your firewall. Not your VPN concentrator. Not your identity provider. Every component must continuously prove it deserves the access it has.&lt;/p&gt;

&lt;p&gt;After seeing vulnerabilities like this hit production environments, I've become convinced that the practical implementation of zero trust requires three things most organizations aren't doing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Assume breach of perimeter devices.&lt;/strong&gt; Your incident response plan should include scenarios where the firewall itself is the compromised asset. If your IR playbook starts with "check the firewall logs," you've got a serious problem when the firewall is the adversary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Segment aggressively behind the perimeter.&lt;/strong&gt; East-west traffic controls matter more than ever. A compromised firewall with visibility into a flat network is catastrophic. A compromised firewall facing microsegmented workloads is bad but survivable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor your security appliances with the same rigor you monitor your servers.&lt;/strong&gt; If you're running EDR on every endpoint but not watching the integrity of your firewall's operating system, you've got exactly the gap that threat actors like UTA0218 will find.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CISA's rapid addition of CVE-2024-3400 to the Known Exploited Vulnerabilities catalog and the mandatory patch directive for federal agencies was the right call. But it also shows how reactive the current model is. Palo Alto Networks released patches for affected PAN-OS versions, but the gap between disclosure and patching across enterprise environments is exactly the window attackers exploit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 24-Month Clock Is Already Ticking
&lt;/h2&gt;

&lt;p&gt;Arora's warning about a 24-to-36-month window wasn't just conference keynote rhetoric. It was a candid acknowledgment from the CEO of a $100+ billion security company that the industry is losing ground.&lt;/p&gt;

&lt;p&gt;The dynamics are brutal. AI-assisted vulnerability discovery reduces the time from "unknown flaw" to "weaponized exploit." AI-assisted malware development reduces the time from "proof of concept" to "operational capability." Meanwhile, enterprise patching cycles haven't gotten meaningfully faster in a decade. The average time to patch a critical vulnerability in enterprise environments still hovers around 60 days, according to &lt;a href="https://www.qualys.com/research/" rel="noopener noreferrer"&gt;industry reports from organizations like Qualys&lt;/a&gt;. Two months of exposure for every critical flaw. That's insane.&lt;/p&gt;

&lt;p&gt;When I look at CVE-2024-3400 through this lens, the timeline is terrifying. The vulnerability was being exploited in the wild &lt;em&gt;before&lt;/em&gt; a patch was available. This is the zero-day scenario that every security team dreads, and AI is going to make it more common, not less.&lt;/p&gt;

&lt;p&gt;The question isn't whether AI will make attackers more effective. It already has. The question is whether defenders can use the same technology to close the gap. I'm cautiously optimistic about AI-driven detection and response, but I've also seen enough &lt;a href="https://www.kunalganglani.com/blog/ai-agent-failure-production-prevention" rel="noopener noreferrer"&gt;AI agent failures in production&lt;/a&gt; to know that deploying AI defensively comes with its own risks.&lt;/p&gt;

&lt;p&gt;Here's what I think happens next: the security industry will consolidate aggressively around AI-native platforms. The point-solution era is ending because no human team can correlate signals across dozens of tools fast enough to catch AI-accelerated attacks. Arora himself has been pushing this platformization narrative at Palo Alto Networks, and whatever you think of his motives, the technical argument is sound.&lt;/p&gt;

&lt;p&gt;But platformization won't matter if the platforms themselves have 10.0 CVSS vulnerabilities. That's the real lesson of CVE-2024-3400. The companies building the future of cybersecurity defense need to be dramatically better at securing their own code first. The attackers now have AI helping them check your homework. And right now, they're finding the mistakes faster than you can fix them.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/cve-2024-3400-ai-security-crisis?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=cve-2024-3400-ai-security-crisis" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>paloaltonetworks</category>
      <category>aisecurity</category>
      <category>zeroday</category>
      <category>panos</category>
    </item>
    <item>
      <title>Linux Copy-Primitive Bugs Keep Breaking Container Security: From Dirty COW to Leaky Vessels [2026]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Tue, 05 May 2026 12:49:43 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/linux-copy-primitive-bugs-keep-breaking-container-security-from-dirty-cow-to-leaky-vessels-2026-hba</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/linux-copy-primitive-bugs-keep-breaking-container-security-from-dirty-cow-to-leaky-vessels-2026-hba</guid>
      <description>&lt;p&gt;Three times in a decade. That's how often a Linux copy-primitive bug has blown a hole through container isolation. In 2016 it was Dirty COW. In 2024 it was Leaky Vessels. In 2026, a new class of Linux copy-primitive bugs is proving, again, that containers share a kernel. And that kernel keeps betraying them.&lt;/p&gt;

&lt;p&gt;The pattern is hard to ignore. Bugs in how the Linux kernel copies, references, or manages data at the lowest level keep punching through container isolation boundaries. If you're running Docker or Podman in production, rootless or not, this should be on your radar. The next copy-primitive container escape isn't a question of &lt;em&gt;if&lt;/em&gt;. It's &lt;em&gt;when&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Linux Copy-Primitive Bugs Keep Breaking Containers
&lt;/h2&gt;

&lt;p&gt;Containers aren't virtual machines. They don't have their own kernel. Every container on a host shares the same Linux kernel, separated only by namespaces, cgroups, and a handful of security mechanisms like seccomp and AppArmor.&lt;/p&gt;

&lt;p&gt;That's the fundamental bargain: lightweight, fast isolation in exchange for sharing the most privileged piece of software on the machine. When a bug exists in the kernel's handling of copy operations — whether it's copying memory pages, file descriptors, or data between user and kernel space — it cuts across every isolation boundary containers rely on.&lt;/p&gt;

&lt;p&gt;I learned this the hard way. After migrating production workloads to rootless Podman containers in 2022, I thought we'd significantly reduced our attack surface. We had. But the kernel was still the kernel. When Leaky Vessels dropped in early 2024, it was a cold reminder that our "rootless" setup was only as strong as the syscall layer sitting underneath it.&lt;/p&gt;

&lt;p&gt;The copy-primitive pattern is consistent: the kernel needs to move or reference data — a memory page, a file descriptor, a buffer. The operation has a race condition, a leaked reference, or a missing permission check. An attacker inside a container exploits that flaw to read or write data they shouldn't touch, punching through the namespace boundary. Three times in ten years. That's not a coincidence. That's a systemic weakness in how Linux manages data at the lowest level.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dirty COW: The Bug That Started the Pattern
&lt;/h2&gt;

&lt;p&gt;Dirty COW (&lt;a href="https://lwn.net/Articles/702899/" rel="noopener noreferrer"&gt;CVE-2016-5195&lt;/a&gt;) was a race condition in the Linux kernel's memory subsystem. It exploited how the kernel handles Copy-on-Write (COW) memory mappings. When a process tries to write to a read-only memory-mapped file, the kernel is supposed to create a private copy. Dirty COW exploited a race condition in that copy operation, allowing a local user to gain write access to read-only memory mappings.&lt;/p&gt;

&lt;p&gt;The bug had existed in the kernel for nearly nine years before anyone found it. Nine years. In a component so fundamental that virtually every Linux system was affected.&lt;/p&gt;

&lt;p&gt;For containers, Dirty COW was devastating. Because containers share the host kernel, any process inside a container could exploit the race condition to escalate privileges on the host. The isolation that namespaces and cgroups provided was irrelevant. The bug was beneath all of it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dirty COW proved something the container community didn't want to hear: if the kernel's copy mechanism is broken, your container boundary doesn't exist.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The fix was a kernel patch. But the lesson was bigger than one CVE. The kernel's memory management code is ancient, complex, and handles billions of operations per second. Copy-on-Write is not a feature you can rip out. It's foundational to how Linux works. And foundational code is where the worst bugs hide.&lt;/p&gt;

&lt;h2&gt;
  
  
  Leaky Vessels: Same Pattern, Different Layer
&lt;/h2&gt;

&lt;p&gt;Fast forward to January 2024. Snyk's security research team disclosed &lt;a href="https://www.wiz.io/blog/leaky-vessels-docker-and-runc-vulnerabilities" rel="noopener noreferrer"&gt;Leaky Vessels&lt;/a&gt;, a set of vulnerabilities in runc, the container runtime used by both Docker and Podman. The most critical was CVE-2024-21626, which exploited a file descriptor leak during container initialization.&lt;/p&gt;

&lt;p&gt;Different mechanism than Dirty COW. Identical pattern: a low-level operation that copies or references data across a trust boundary had a flaw. In this case, runc leaked a file descriptor pointing to the host filesystem into the container's process space. An attacker who controlled the container's working directory could use that leaked descriptor to escape the container and access the host filesystem.&lt;/p&gt;

&lt;p&gt;This is a copy-primitive bug in spirit. The kernel and runtime are supposed to carefully manage which file descriptors are visible to which namespaces. A file descriptor is just a reference — a pointer to data. When that reference leaks across the container boundary, it's functionally the same as Dirty COW's memory page write: data that should be isolated isn't.&lt;/p&gt;

&lt;p&gt;Having worked with container runtimes in production, I can tell you what made Leaky Vessels particularly terrifying wasn't just the escape. It was that the attack could be embedded in a malicious container image. Pull the wrong image, run it, and the container breaks out during initialization — before your runtime security tools even start monitoring. The attack surface was the &lt;code&gt;docker run&lt;/code&gt; command itself.&lt;/p&gt;

&lt;p&gt;The affected runc versions were patched quickly. But the incident reinforced a point that &lt;a href="https://adrianmouat.com/understanding-rootless-containers/" rel="noopener noreferrer"&gt;Adrian Mouat, author of &lt;em&gt;Using Docker&lt;/em&gt;&lt;/a&gt;, has written about extensively: rootless containers aren't a magic bullet. If a kernel or runtime exploit exists, an attacker can still escalate privileges after breaking out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do Rootless Containers Actually Protect You From Copy-Primitive Bugs?
&lt;/h2&gt;

&lt;p&gt;Rootless containers are the single best security improvement most teams can make to their container infrastructure. That's not the debate. The debate is whether they're &lt;em&gt;sufficient&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Rootless containers operate within a distinct user namespace, mapping the container's internal root user to an unprivileged user ID on the host. As &lt;a href="https://www.redhat.com/en/blog/rootless-containers-are-gaining-popularity" rel="noopener noreferrer"&gt;Red Hat has documented&lt;/a&gt;, the core benefit is straightforward: if there's a container breakout, the attacker only has the privileges of the unprivileged host user, not root.&lt;/p&gt;

&lt;p&gt;That matters. A Dirty COW-style exploit inside a rootless container would land the attacker as an unprivileged user on the host rather than root. Massive reduction in blast radius.&lt;/p&gt;

&lt;p&gt;But here's where teams get into trouble: they treat rootless mode as the finish line for container security rather than one layer of it. The most severe attacks chain a container escape with a separate kernel privilege escalation. You break out of the container as an unprivileged user, then use a &lt;em&gt;second&lt;/em&gt; kernel bug to escalate to root. When Dirty COW was unpatched, that second step was trivial — the same bug that got you out of the container could also get you to root.&lt;/p&gt;

&lt;p&gt;This chaining is exactly why copy-primitive bugs are so dangerous. They tend to affect the kernel at a level that's useful for both container escape &lt;em&gt;and&lt;/em&gt; privilege escalation. A single bug gives you two steps of the kill chain. I wrote about similar &lt;a href="https://www.kunalganglani.com/blog/ai-agent-failure-production-prevention" rel="noopener noreferrer"&gt;defense-in-depth thinking for AI agents in production&lt;/a&gt; — the principle is the same: no single safeguard survives a determined, multi-step attack.&lt;/p&gt;

&lt;p&gt;[YOUTUBE:x1npPrzyKfs|Linux Container Primitives: cgroups, namespaces, and more!]&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Actually Defend Against Linux Copy-Primitive Container Escapes
&lt;/h2&gt;

&lt;p&gt;I've spent the last two years hardening container deployments, and the boring answer is the right one: no single tool solves this. You need layers. Here's what I've seen actually work in production:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Patch aggressively and automatically.&lt;/strong&gt; Copy-primitive bugs get patched in the kernel within days of disclosure. The problem is most organizations take weeks or months to roll out kernel updates. If you're running Kubernetes, tools like kured (Kubernetes Reboot Daemon) can automate node reboots after kernel updates. If you're running standalone Docker or Podman hosts, &lt;code&gt;unattended-upgrades&lt;/code&gt; for the kernel package is table stakes. The window between disclosure and patch is where these bugs get exploited.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run rootless by default.&lt;/strong&gt; Yes, I just spent a section explaining why rootless isn't sufficient. It's still essential. Rootless mode in Podman is mature and production-ready. Docker's rootless mode has improved significantly since 2023. If you're still running containers as root in 2026, you're handing attackers a free privilege escalation on every container escape. Stop. Seriously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deploy syscall filtering with seccomp profiles.&lt;/strong&gt; Copy-primitive bugs require specific syscalls to exploit. Dirty COW needed &lt;code&gt;madvise&lt;/code&gt; and &lt;code&gt;write&lt;/code&gt;. Leaky Vessels exploited &lt;code&gt;WORKDIR&lt;/code&gt; processing during container init. Custom seccomp profiles that restrict unnecessary syscalls reduce the exploitability of kernel bugs you haven't even heard about yet. The default Docker seccomp profile blocks about 44 syscalls. For sensitive workloads, you should be blocking far more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consider gVisor for high-value workloads.&lt;/strong&gt; Google's &lt;a href="https://gvisor.dev/" rel="noopener noreferrer"&gt;gVisor&lt;/a&gt; interposes a userspace kernel between your container and the host kernel. Your container's syscalls don't hit the real Linux kernel directly — they're intercepted by gVisor's Sentry process, which reimplements a subset of Linux syscalls in a sandboxed environment. A copy-primitive bug in the host kernel becomes unexploitable from inside the container because the container never makes the vulnerable syscall directly. The tradeoff is performance overhead and compatibility limitations. For multi-tenant or security-critical workloads, it's the strongest isolation you can get without a full VM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitor for anomalous file descriptor and memory behavior.&lt;/strong&gt; Tools like Falco can detect runtime behaviors associated with container escapes — unexpected file descriptor access patterns, attempts to access &lt;code&gt;/proc/self/fd&lt;/code&gt; entries pointing outside the container's filesystem, or memory mapping operations that shouldn't be happening in your workload. This won't prevent the exploit, but it catches it in progress. Having worked through incident response on container escapes, I can tell you that &lt;a href="https://www.kunalganglani.com/blog/ebpf-monitoring-replacing-sidecars" rel="noopener noreferrer"&gt;detection at the early stages of exploit chains matters more than most teams realize&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pattern Isn't Going Away
&lt;/h2&gt;

&lt;p&gt;Here's my prediction: we will see another major copy-primitive container escape within the next 18 months. The Linux kernel's memory management, file descriptor handling, and data copying paths are some of the oldest and most complex code in the entire operating system. They're also some of the most security-critical. Ancient + complex + security-critical = more bugs. Count on it.&lt;/p&gt;

&lt;p&gt;The container model's fundamental architecture — shared kernel, namespace isolation — means every one of these bugs is a potential container escape. This isn't a flaw in Docker or Podman. It's a structural property of how Linux containers work.&lt;/p&gt;

&lt;p&gt;The teams that survive the next copy-primitive bug won't be the ones who picked the right container runtime or checked the right compliance box. They'll be the ones who treated container isolation as one layer in a stack, patched their kernels in hours instead of weeks, and ran their most sensitive workloads behind gVisor or equivalent sandboxing. Rootless mode buys you time. Syscall filtering reduces your surface area. Runtime monitoring catches what slips through. But the kernel is still the kernel. And until containers stop sharing it, copy-primitive bugs will keep breaking the boundaries we trust them to enforce.&lt;/p&gt;

&lt;p&gt;The only question is whether you'll be patched when the next one drops.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can Dirty COW still affect containers in 2026?
&lt;/h3&gt;

&lt;p&gt;Dirty COW (CVE-2016-5195) was patched in the Linux kernel in October 2016. Any kernel version from 4.8.3 onward includes the fix. If you're running a supported, updated Linux distribution in 2026, Dirty COW itself is not a direct threat. However, the &lt;em&gt;class&lt;/em&gt; of vulnerability it represents — race conditions in copy-on-write memory handling — continues to produce new bugs.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between a container escape and a privilege escalation?
&lt;/h3&gt;

&lt;p&gt;A container escape is when code running inside a container gains access to resources outside the container's namespace boundary — such as the host filesystem or another container's processes. A privilege escalation is when a process gains higher permissions than it was originally given, such as going from an unprivileged user to root. These are different attack steps, but they're often chained together: escape the container first, then escalate to root on the host.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do rootless containers prevent all container escape attacks?
&lt;/h3&gt;

&lt;p&gt;No. Rootless containers ensure that a breakout lands the attacker as an unprivileged host user instead of root, which significantly limits damage. But they don't prevent the escape itself. A kernel-level bug can still allow code inside a rootless container to access host resources. The attacker just has fewer permissions once they get there. For full protection, rootless mode should be combined with seccomp filtering, regular kernel patching, and runtime monitoring.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does gVisor protect against kernel vulnerabilities?
&lt;/h3&gt;

&lt;p&gt;gVisor runs a userspace kernel called Sentry that intercepts your container's system calls before they reach the host Linux kernel. Instead of your container code directly invoking kernel syscalls, gVisor reimplements a subset of those syscalls in a sandboxed Go process. This means a vulnerability in the host kernel's copy-on-write handling or file descriptor management can't be triggered from inside the container, because those calls never reach the vulnerable host code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Was Leaky Vessels (CVE-2024-21626) exploited in the wild?
&lt;/h3&gt;

&lt;p&gt;As of early 2024, there was no confirmed evidence of active exploitation before the Leaky Vessels disclosure. Snyk coordinated disclosure with the runc maintainers, and patches were released before proof-of-concept exploits became widely available. However, working exploits were developed quickly after disclosure, making rapid patching essential for any organization running affected runc versions (1.0.0 through 1.1.11).&lt;/p&gt;

&lt;h3&gt;
  
  
  Why do copy-related bugs keep appearing in the Linux kernel?
&lt;/h3&gt;

&lt;p&gt;The Linux kernel's memory management and data-copying code paths are among the oldest and most complex in the entire codebase. Copy-on-Write, file descriptor passing, and buffer management involve intricate concurrency logic with millions of possible execution paths. These operations are also performance-critical, so they're heavily optimized in ways that can introduce subtle race conditions. The combination of complexity, age, and performance pressure makes these code paths a recurring source of security bugs.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/linux-copy-bugs-container-security?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=linux-copy-bugs-container-security" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>cybersecurity</category>
      <category>docker</category>
      <category>podman</category>
    </item>
    <item>
      <title>Software Engineering Isn't Dead — It's Becoming 'Plan and Review' [2026]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Mon, 04 May 2026 16:06:35 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/software-engineering-isnt-dead-its-becoming-plan-and-review-2026-7jl</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/software-engineering-isnt-dead-its-becoming-plan-and-review-2026-7jl</guid>
      <description>&lt;p&gt;Every week, another breathless headline declares software engineering dead. Another AI demo shows a chatbot building a full-stack app in 90 seconds. Another LinkedIn thought leader posts a funeral wreath emoji next to the words "traditional coding."&lt;/p&gt;

&lt;p&gt;And every week, I watch senior engineers at real companies quietly doing something that looks nothing like those demos. They're not typing code line by line. But they're not being replaced, either. They're doing something I've started calling &lt;strong&gt;plan-and-review software engineering&lt;/strong&gt;. And honestly, it's the biggest change in how software gets built since the move from waterfall to agile.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Plan-and-Review Software Engineering?
&lt;/h2&gt;

&lt;p&gt;Plan-and-review software engineering is a workflow where engineers spend most of their time designing systems, writing specifications, orchestrating AI coding tools, and reviewing the output — rather than writing code by hand. The engineer becomes a director. The AI becomes the production crew.&lt;/p&gt;

&lt;p&gt;This isn't theoretical. It's already happening. Sundar Pichai disclosed on an earnings call that &lt;a href="https://blog.google/technology/ai/google-io-2025-keynote/" rel="noopener noreferrer"&gt;more than 25% of new code at Google is now generated by AI&lt;/a&gt;, then reviewed and accepted by engineers. GitHub's own research shows Copilot users accept roughly 30% of code suggestions, and that number keeps climbing as models improve. Tools like Cursor, Claude Code, and Aider are pushing the boundary further every month.&lt;/p&gt;

&lt;p&gt;I've been building software for over 14 years. The shift happening right now is real. Two years ago, I used AI assistants as glorified autocomplete. Today, I routinely describe an entire feature's architecture in natural language, let an AI agent scaffold the implementation, then spend my time reviewing, adjusting, and stress-testing the result. My job didn't disappear. It changed shape.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Is the Software Engineering Role Changing Because of AI?
&lt;/h2&gt;

&lt;p&gt;Here's the thing nobody's saying about this shift: it doesn't make the job easier. It makes it &lt;em&gt;different&lt;/em&gt;. In some ways, harder.&lt;/p&gt;

&lt;p&gt;When I was writing every line myself, I had intimate knowledge of what the system was doing because I'd typed it into existence. Now, when an AI generates 200 lines of a service layer in seconds, I need to understand that code just as deeply without having written it. That's a genuinely different kind of expertise.&lt;/p&gt;

&lt;p&gt;The engineers I see thriving in plan-and-review workflows share a specific set of skills:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;System design thinking.&lt;/strong&gt; If you can't articulate what needs to be built at an architectural level, you can't direct an AI to build it well. Vague prompts produce vague code. Every time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specification writing.&lt;/strong&gt; The prompt &lt;em&gt;is&lt;/em&gt; the spec now. Engineers who write precise, unambiguous descriptions of behavior get dramatically better results than those who wing it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI orchestration.&lt;/strong&gt; Knowing which tool to use for which task, how to chain agents together, when to break a problem into sub-problems the AI can handle independently. I've written about &lt;a href="https://www.kunalganglani.com/blog/ai-coding-agents-wont-replace-you" rel="noopener noreferrer"&gt;how AI coding agents are reshaping the way we think about code&lt;/a&gt;, and this orchestration layer is where the real leverage lives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Critical code review.&lt;/strong&gt; Not just "does this compile" review. Deep review that catches subtle logic errors, security holes, and architectural drift. AI-generated code looks confident even when it's dead wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain expertise.&lt;/strong&gt; The AI doesn't know your business rules, your compliance requirements, or why that edge case from three years ago almost took down production at 2 AM. You do.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Addy Osmani, Engineering Lead at Google, has written extensively about this. He's argued the developer's role is moving toward being a "reviewer-in-chief" — someone whose primary value comes from judgment, not keystrokes. That framing tracks with what I'm seeing on the ground.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The engineers who will be most valuable in 2026 aren't the ones who type the fastest. They're the ones who think the clearest.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What's the Difference Between Vibe Coding and Plan-and-Review Engineering?
&lt;/h2&gt;

&lt;p&gt;Most people are conflating these two things. That's a mistake.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vibe coding&lt;/strong&gt; is what happens when someone opens an AI tool, types "build me a task management app," and ships whatever comes out. It's fast. It's fun. And it produces code that, in my experience auditing AI-generated projects, &lt;a href="https://www.kunalganglani.com/blog/vibe-coding-tech-debt-audit" rel="noopener noreferrer"&gt;creates serious technical debt within weeks&lt;/a&gt;. I've personally seen vibe-coded applications with hardcoded secrets, SQL injection vulnerabilities, and architectural patterns that make future changes nearly impossible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plan-and-review engineering&lt;/strong&gt; is the professional version of the same technology stack. The difference isn't the tools. It's the process.&lt;/p&gt;

&lt;p&gt;A plan-and-review engineer starts with architecture. They define the data model, the API contracts, the error handling strategy, and the testing approach &lt;em&gt;before&lt;/em&gt; the AI writes a single line. Then they use AI to accelerate implementation of a well-defined plan. Then they review the output with the same rigor they'd apply to a junior developer's pull request. Probably more rigor, honestly, because AI makes confident mistakes that a junior would at least flag with a comment saying "not sure about this."&lt;/p&gt;

&lt;p&gt;Same equipment. Wildly different outcomes.&lt;/p&gt;

&lt;p&gt;This is why I push back hard when people say AI will eliminate the need for engineering skill. It's the opposite. AI amplifies the gap between engineers who understand systems deeply and those who don't. A strong engineer with AI tools is 10x more productive. A weak engineer with AI tools produces 10x more bugs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Will AI Replace Software Engineers?
&lt;/h2&gt;

&lt;p&gt;Short answer: no. Longer answer: it will replace software engineers who refuse to adapt.&lt;/p&gt;

&lt;p&gt;The data tells a clear story. Stack Overflow's 2024 Developer Survey found that 76% of developers are using or planning to use AI tools, but only 43% trust the accuracy of AI-generated code. That trust gap is exactly where human engineers live. Someone has to close it.&lt;/p&gt;

&lt;p&gt;I've shipped enough features to know that the hard part of software engineering was never typing. It was figuring out &lt;em&gt;what&lt;/em&gt; to type. It was debugging the interaction between three microservices at 11 PM when the monitoring dashboard lit up red. It was sitting in a room with a product manager and translating "we need it to be faster" into a concrete set of database indexes and caching strategies.&lt;/p&gt;

&lt;p&gt;AI can't do that yet. And even when it gets closer, someone will still need to validate that it did it correctly. That's the plan-and-review loop.&lt;/p&gt;

&lt;p&gt;What &lt;em&gt;is&lt;/em&gt; disappearing is the junior developer task of implementing well-specified, straightforward features from scratch. If the task is "add a CRUD endpoint for this data model," an AI can do that in seconds. This means the entry path into software engineering is shifting. New engineers need to develop system-level thinking faster than previous generations did. I've written about &lt;a href="https://www.kunalganglani.com/blog/state-software-engineering-2026" rel="noopener noreferrer"&gt;how the state of software engineering is evolving in 2026&lt;/a&gt;, and the through-line is clear: the floor for what counts as "engineering work" is rising. Fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Skills Do Software Engineers Need in the Age of AI?
&lt;/h2&gt;

&lt;p&gt;If I were starting my career today, here's where I'd put my time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Architecture and system design.&lt;/strong&gt; This is the highest-leverage skill in a plan-and-review world. If you can design the system correctly, AI can build it. If you can't, no amount of tooling saves you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reading code faster than writing it.&lt;/strong&gt; Most engineering education optimizes for writing. The future optimizes for reading, understanding, and evaluating code you didn't write. Get comfortable reviewing large diffs quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt engineering as specification.&lt;/strong&gt; Not the gimmicky "10 magic prompts" stuff. Real specification writing. The kind where you define constraints, edge cases, and acceptance criteria in natural language so precisely that an AI produces correct code on the first try.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing and validation.&lt;/strong&gt; If AI writes the code, humans validate the behavior. Property-based testing, integration testing, adversarial testing. These become even more critical when the code wasn't written by someone who understands the business context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain knowledge.&lt;/strong&gt; The deepest moat any engineer can build. AI is generic. Your understanding of healthcare compliance, financial reconciliation, or real-time bidding systems is specific and irreplaceable.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Having worked on teams that adopted AI-assisted development early, I can tell you: the engineers who struggled weren't the ones with fewer years of experience. They were the ones who had spent their careers optimizing for code output rather than system understanding. The fast typists suddenly had less of an edge. The careful thinkers had more of one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Director's Cut
&lt;/h2&gt;

&lt;p&gt;Here's my prediction: by the end of 2027, the majority of professional software will be built using some version of plan-and-review. Not because it's trendy, but because the economics are brutal. A team of three senior engineers using AI-assisted plan-and-review workflows can match the output of a team of ten working the old way. Companies that don't adopt this will lose on speed and cost. Period.&lt;/p&gt;

&lt;p&gt;But that prediction comes with a warning. The quality of software built this way depends entirely on the quality of the humans doing the planning and reviewing. We've already seen what happens when organizations treat AI coding as a shortcut to eliminate engineering judgment — they get &lt;a href="https://www.kunalganglani.com/blog/ai-generated-code-quality-crisis" rel="noopener noreferrer"&gt;code quality crises&lt;/a&gt; and maintenance nightmares.&lt;/p&gt;

&lt;p&gt;Software engineering isn't dying. The craft of writing code by hand is becoming a smaller part of a much larger discipline. The engineers who recognize this and invest in the skills that actually matter — architecture, orchestration, validation, domain expertise — won't just survive the AI era. They'll define it.&lt;/p&gt;

&lt;p&gt;Stop mourning the old job. Start mastering the new one.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/plan-review-software-engineering?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=plan-review-software-engineering" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>aicoding</category>
      <category>developercareer</category>
      <category>futureofwork</category>
    </item>
    <item>
      <title>Khan Academy Khanmigo AI Tutor: The 'AI Degree' That Doesn't Exist and What Actually Does [2026]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Mon, 04 May 2026 12:48:38 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/khan-academy-khanmigo-ai-tutor-the-ai-degree-that-doesnt-exist-and-what-actually-does-2026-3g9a</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/khan-academy-khanmigo-ai-tutor-the-ai-degree-that-doesnt-exist-and-what-actually-does-2026-3g9a</guid>
      <description>&lt;h1&gt;
  
  
  Khan Academy Khanmigo AI Tutor: The 'AI Degree' That Doesn't Exist and What Actually Does [2026]
&lt;/h1&gt;

&lt;p&gt;Every few weeks, a headline floats through my feed claiming Khan Academy has launched some kind of AI degree for developers. It hasn't. There is no Khan Academy AI degree. But the thing Khan Academy &lt;em&gt;has&lt;/em&gt; built — an AI tutor called Khanmigo — deserves a more honest conversation than the clickbait it usually gets. What's actually happening in AI-powered education is more interesting, and more complicated, than a certificate you can slap on your LinkedIn.&lt;/p&gt;

&lt;p&gt;I've spent 14+ years in software engineering, and I've watched the "how developers learn" question get reshaped by every wave: MOOCs, bootcamps, YouTube tutorials, and now AI tutors. Khanmigo is the latest entrant, and it represents a genuinely different philosophy. Here's what it actually is, who it's for, and what it means for developer education in 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Khanmigo and How Does It Actually Work?
&lt;/h2&gt;

&lt;p&gt;Khanmigo is Khan Academy's AI-powered tutoring assistant, built on top of Google's Gemini model. It launched in 2023 and has been expanding steadily since. The core idea, as Sal Khan, Founder and CEO of Khan Academy, describes it, is a "Socratic tutor" — an AI that guides students through problems without simply handing them answers.&lt;/p&gt;

&lt;p&gt;This distinction matters more than it sounds. If you've used ChatGPT to learn something, you know the default behavior: you ask a question, you get a complete answer. Useful for looking things up. Terrible for actual learning. Khanmigo deliberately refuses to do this. It asks follow-up questions, nudges you toward the next logical step, and makes you do the cognitive work yourself.&lt;/p&gt;

&lt;p&gt;Having built onboarding systems for engineering teams, I can tell you the gap between "giving someone the answer" and "guiding someone to the answer" is enormous. The first creates dependency. The second builds problem-solving instincts. Khan Academy is betting that AI can finally make the second approach scalable.&lt;/p&gt;

&lt;p&gt;Khanmigo also doubles as a teaching assistant. Kristen DiCerbo, Chief Learning Officer at Khan Academy, has shared data from early pilots showing the tool helps teachers save 30-60 minutes per day on administrative tasks like lesson planning. That's not a trivial number. It's the difference between a teacher who has time to give individual feedback and one who doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is There Really a Khan Academy AI Degree?
&lt;/h2&gt;

&lt;p&gt;No. Full stop.&lt;/p&gt;

&lt;p&gt;Khan Academy has launched AI literacy courses — most notably an "AI for Education" course built in partnership with Google DeepMind, &lt;a href="https://www.fastcompany.com/90962322/khan-academy-launches-free-course-ai-literacy" rel="noopener noreferrer"&gt;as reported by Anya Kamenetz at Fast Company&lt;/a&gt;. But this course targets educators and parents who want to understand what AI is and how it works. It's not a technical certification. It's not a degree. It will not teach you to fine-tune models or build retrieval-augmented generation pipelines.&lt;/p&gt;

&lt;p&gt;The confusion likely comes from the sheer volume of "AI degree" and "AI certification" content flooding search results right now. Everyone from Coursera to Google to random Udemy instructors is marketing some form of AI credential, and Khan Academy's name gets swept into that current because it's the most recognizable brand in free online education.&lt;/p&gt;

&lt;p&gt;Here's the thing nobody's saying about this: &lt;strong&gt;Khan Academy isn't trying to compete with formal AI certificate programs.&lt;/strong&gt; They're doing something fundamentally different. Rather than creating a new credential, they're embedding AI into the learning process itself. The product isn't an AI course. The product is an AI tutor that helps you learn &lt;em&gt;anything&lt;/em&gt; on their platform more effectively.&lt;/p&gt;

&lt;p&gt;If you're a developer looking for an actual AI credential that'll move the needle on your career, I wrote about the skills that actually matter in &lt;a href="https://www.kunalganglani.com/blog/full-stack-developer-roadmap-2026" rel="noopener noreferrer"&gt;the full-stack developer roadmap for 2026&lt;/a&gt;. Spoiler: it's less about certificates and more about what you can demonstrably build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Is Khanmigo Actually For?
&lt;/h2&gt;

&lt;p&gt;Most coverage of Khanmigo gets this wrong, so let me be direct.&lt;/p&gt;

&lt;p&gt;Khanmigo is primarily designed for K-12 students and their teachers. It's not a developer tool. It's not competing with GitHub Copilot or Cursor or any of the AI coding assistants that working engineers use daily. The target user is a high school student struggling with algebra, or a teacher who needs help creating a lesson plan for AP Computer Science.&lt;/p&gt;

&lt;p&gt;Khan Academy has made significant moves to broaden access. In 2023, Microsoft announced a partnership to provide Khanmigo for Teachers free to all K-12 educators in the United States, backed by Azure AI infrastructure, &lt;a href="https://www.forbes.com/sites/danielfiller/2023/10/05/microsoft-and-khan-academy-partner-to-power-ai-in-education/" rel="noopener noreferrer"&gt;as reported by Daniel M. Filler at Forbes&lt;/a&gt;. Since then, Khan Academy has been steadily expanding free access to Khanmigo for learners as well — moving away from its initial $9/month or $99/year pricing model. With backing from both Microsoft and Google, the trajectory is clearly toward making the AI tutor freely available to as many students as possible.&lt;/p&gt;

&lt;p&gt;So if you're a mid-career developer wondering whether Khanmigo will help you learn transformer architectures or master Kubernetes, the honest answer is no. Khan Academy's content library is deep in math, science, and introductory computing — not the kind of advanced technical material senior engineers need. I've seen too many experienced developers waste time on learning resources pitched two levels below where they actually are. Know your level. Pick your tools accordingly.&lt;/p&gt;

&lt;p&gt;But I'd push back on pure dismissal. If you're mentoring junior developers, or involved in hiring and onboarding, Khanmigo's Socratic tutoring approach is worth studying. The model of "don't give the answer, guide toward it" is exactly what good engineering mentorship looks like. As I discussed in &lt;a href="https://www.kunalganglani.com/blog/ai-writes-code-whats-left-for-engineers" rel="noopener noreferrer"&gt;how AI is reshaping the role of software engineers&lt;/a&gt;, the ability to think through problems systematically is becoming &lt;em&gt;more&lt;/em&gt; valuable as AI handles more routine code generation.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Khanmigo Compares to Formal AI Certificate Programs
&lt;/h2&gt;

&lt;p&gt;The real comparison isn't Khanmigo vs. other AI tutors. It's Khanmigo's philosophy vs. the credentialing industry.&lt;/p&gt;

&lt;p&gt;On one side, you have companies like Google (with their AI Essentials certificate), Coursera (partnered with DeepLearning.AI), and AWS (with their machine learning specializations). These are structured programs with defined curricula, assessments, and certificates you can add to your resume. They cost anywhere from free to several hundred dollars, and they take weeks to months to complete.&lt;/p&gt;

&lt;p&gt;On the other side, Khan Academy is saying: "We're not going to give you a certificate. We're going to give you an AI tutor that helps you learn better." Different game entirely.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Formal AI Certificates&lt;/th&gt;
&lt;th&gt;Khanmigo AI Tutor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Credential on completion&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Target audience&lt;/td&gt;
&lt;td&gt;Working professionals&lt;/td&gt;
&lt;td&gt;K-12 students, educators&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI-specific content depth&lt;/td&gt;
&lt;td&gt;High (ML, deep learning)&lt;/td&gt;
&lt;td&gt;Low (AI literacy basics)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learning methodology&lt;/td&gt;
&lt;td&gt;Structured courses&lt;/td&gt;
&lt;td&gt;Socratic, adaptive tutoring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;$0–$500+&lt;/td&gt;
&lt;td&gt;Free (expanding access)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resume signal&lt;/td&gt;
&lt;td&gt;Direct&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For developers, formal certificates are the more pragmatic choice &lt;em&gt;right now&lt;/em&gt;. If you need to demonstrate AI competency to a hiring manager, a Google or AWS certificate does that. Khanmigo doesn't.&lt;/p&gt;

&lt;p&gt;But Khan Academy is playing a longer game. If Khanmigo proves that AI-guided Socratic tutoring genuinely produces better learning outcomes than passive video courses, every corporate learning platform, every bootcamp, every university will need to reconsider how they deliver content. The credential matters less if the learning is demonstrably deeper.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for Developer Education
&lt;/h2&gt;

&lt;p&gt;Developer education in 2026 is broken in a specific way: there's infinite content and almost no effective learning. You can find a tutorial on literally anything. But most tutorials teach you to copy patterns, not to think. The &lt;a href="https://www.kunalganglani.com/blog/tech-job-market-2026-survival-guide" rel="noopener noreferrer"&gt;tech job market bifurcation&lt;/a&gt; I've written about is partly a learning problem. Developers who can regurgitate framework syntax are struggling. Developers who can reason about systems are thriving.&lt;/p&gt;

&lt;p&gt;Khanmigo, for all its limitations in scope, is pointed at the right problem. The Socratic method forces active reasoning. You can't passively sit through a Khanmigo session the way you can passively watch a 4-hour YouTube tutorial at 2x speed. That friction is the point.&lt;/p&gt;

&lt;p&gt;I've shipped enough features and mentored enough junior engineers to know this firsthand: the developers who grow fastest are the ones who struggle productively. Not the ones who copy-paste from Stack Overflow or ask ChatGPT to write their code. Struggle, when guided properly, is the actual learning mechanism. This is one of those things where the boring answer is actually the right one.&lt;/p&gt;

&lt;p&gt;The question worth asking isn't whether Khan Academy will launch a developer-focused AI degree. They won't. It's whether Khanmigo's model — AI as Socratic tutor rather than answer machine — becomes the default approach for technical education over the next five years.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The future of developer education isn't AI that writes your code for you. It's AI that makes you a better thinker by refusing to write it for you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you're a working developer, Khanmigo isn't your next learning tool. But if you care about how the next generation of engineers will learn to think — and eventually join your team — pay attention to what Khan Academy is building. The AI tutor that asks questions instead of giving answers might be the most counterintuitive and most important bet in education right now.&lt;/p&gt;

&lt;p&gt;The developers who'll dominate the next decade won't be the ones with the most certificates. They'll be the ones who learned how to reason. That's the game Khan Academy is actually playing.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/khanmigo-ai-tutor-developer-education?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=khanmigo-ai-tutor-developer-education" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aieducation</category>
      <category>developercareer</category>
      <category>khanacademy</category>
      <category>futureoflearning</category>
    </item>
    <item>
      <title>State of Software Engineering in 2026: A Reality Check Beyond the AI Hype</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Sun, 03 May 2026 16:09:26 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/state-of-software-engineering-in-2026-a-reality-check-beyond-the-ai-hype-28mh</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/state-of-software-engineering-in-2026-a-reality-check-beyond-the-ai-hype-28mh</guid>
      <description>&lt;h1&gt;
  
  
  State of Software Engineering in 2026: A Reality Check Beyond the AI Hype
&lt;/h1&gt;

&lt;p&gt;Three and a half years ago, Matt Welsh, PhD and former Google engineer, published "&lt;a href="https://cacm.acm.org/opinion/the-end-of-programming/" rel="noopener noreferrer"&gt;The End of Programming&lt;/a&gt;" in Communications of the ACM and declared that classical computer science was over. The meteor had hit. Engineers were the dinosaurs. The state of software engineering in 2026, he implied, would look nothing like what came before.&lt;/p&gt;

&lt;p&gt;He was half right.&lt;/p&gt;

&lt;p&gt;I've spent 14+ years building software systems, leading engineering teams, and shipping products. What I see in mid-2026 is messier than any of the hot takes predicted. AI didn't kill software engineering. But it did reshape what "being a good engineer" means in ways that matter. The developers who ignored this shift are struggling. The ones who leaned into it thoughtfully are doing the best work of their careers.&lt;/p&gt;

&lt;p&gt;Here's what actually happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Has AI Actually Changed Day-to-Day Coding?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/the-next-act-for-software-development-generative-ai-is-changing-the-game" rel="noopener noreferrer"&gt;McKinsey estimates&lt;/a&gt; that generative AI can accelerate coding by 35 to 45 percent, documentation by 45 to 50 percent, and testing by 30 to 45 percent. Thomas Dohmke, CEO of GitHub, published research showing developers using Copilot completed tasks &lt;a href="https://github.blog/2024-05-08-research-quantifying-the-impact-of-ai-on-developer-productivity-and-happiness/" rel="noopener noreferrer"&gt;55% faster&lt;/a&gt; than those without it.&lt;/p&gt;

&lt;p&gt;Those numbers are real. I've seen them play out on my own teams. But here's the thing nobody's saying about those productivity gains: they're concentrated almost entirely in the boring parts of the job.&lt;/p&gt;

&lt;p&gt;Boilerplate CRUD endpoints? AI crushes that. Generating test scaffolding? Fantastic. Writing documentation that nobody wanted to write anyway? AI is genuinely great at this. I've watched junior developers produce first drafts of API docs in minutes that would have taken hours.&lt;/p&gt;

&lt;p&gt;But the moment you move into ambiguous territory — figuring out the right data model for a system that needs to serve three different teams with conflicting requirements, or debugging a race condition that only shows up under specific load patterns — AI assistants become expensive rubber ducks. They'll confidently suggest solutions that sound plausible and are completely wrong.&lt;/p&gt;

&lt;p&gt;Dohmke describes AI as a "thought partner" that helps developers reduce cognitive load and maintain flow state. I agree with that framing, but only when you already know roughly what you're building. AI accelerates execution. It does not accelerate understanding.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The engineers who got faster are the ones who were already good. The ones who were struggling didn't get rescued by AI — they got faster at producing code that still needed to be rewritten.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In my experience, roughly 40% of AI-generated code gets rewritten within two weeks. Not because the AI wrote "bad" code in the syntactic sense, but because it wrote the wrong abstraction, missed an edge case in the business logic, or created something that didn't compose well with the existing system. If you want the deep dive on why, I wrote about the &lt;a href="https://www.kunalganglani.com/blog/ai-generated-code-maintainability-crisis" rel="noopener noreferrer"&gt;maintainability crisis of AI-generated code&lt;/a&gt; earlier this year.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Skills Do Software Engineers Need in 2026?
&lt;/h2&gt;

&lt;p&gt;This is where it gets interesting. The skills that matter most in 2026 aren't the ones you'd learn from a bootcamp or a "10x developer" YouTube tutorial. They're the skills that were always valuable but are now non-negotiable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;System design is the new literacy.&lt;/strong&gt; When AI can generate individual components quickly, the bottleneck shifts to the person who decides what components should exist, how they talk to each other, and what happens when one of them fails at 3am. Conor Bronsdon of LinearB put it well: the shift is from "code monkeys" to "problem solvers." I'd go further. It's from people who write code to people who design systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debugging skills matter more, not less.&lt;/strong&gt; This sounds counterintuitive. If AI writes more code, shouldn't there be less debugging? Nope. There's more. Because now you're debugging code you didn't write, that follows patterns you didn't choose, with assumptions you might not share. It's closer to debugging a colleague's code than your own — you have to read with skepticism. I've written about how &lt;a href="https://www.kunalganglani.com/blog/ai-coding-agents-wont-replace-you" rel="noopener noreferrer"&gt;AI coding agents are changing the way we think about code&lt;/a&gt;, and debugging is the skill that keeps coming up in those conversations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business context is your moat.&lt;/strong&gt; As Harvard Business Review &lt;a href="https://hbr.org/2023/06/how-is-ai-changing-software-development" rel="noopener noreferrer"&gt;highlighted&lt;/a&gt;, AI can generate the "how" but it struggles with the "what" and "why." The engineer who understands why the billing system needs to handle partial refunds differently for enterprise customers versus consumers — that's someone AI can't replace. Gunnar Griese, VP of Engineering at Wayfair, calls this the evolution into a "techno-sociologist" who understands both the technology and the business deeply. I think that's exactly right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Communication is a force multiplier.&lt;/strong&gt; The best code in the world is worthless if you can't explain the tradeoffs to a product manager, write a clear RFC, or document your decisions for the engineer who maintains the system two years from now. AI has actually made &lt;a href="https://www.kunalganglani.com/blog/write-good-readme-guide" rel="noopener noreferrer"&gt;good documentation&lt;/a&gt; even more critical, because AI-generated systems need more context to be maintainable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Prompt Engineering a Real Skill for Developers?
&lt;/h2&gt;

&lt;p&gt;Let me be direct: prompt engineering as a standalone discipline is mostly dead. But prompt literacy as a core developer competency is very much alive.&lt;/p&gt;

&lt;p&gt;The difference matters. In 2023 and 2024, people were building entire careers around "prompt engineering" as if crafting the perfect system prompt was a durable skill. It wasn't. Models got better at understanding intent. The gap between a mediocre prompt and a great one narrowed significantly.&lt;/p&gt;

&lt;p&gt;What didn't go away is the meta-skill: knowing how to decompose a problem so that an AI tool can actually help you solve it. This is really just good engineering thinking applied to a new tool. You need to know what to ask for, how to evaluate the output, and when to throw it away and do the thing yourself.&lt;/p&gt;

&lt;p&gt;I've shipped enough features alongside AI tools to know that the developers who use them best treat them like a very fast, very confident intern. You wouldn't hand an intern a vague requirement and expect production-ready code back. You'd break the problem down, give clear context, review the output carefully, and iterate. Same thing.&lt;/p&gt;

&lt;p&gt;[YOUTUBE:PEFso88LkC4|My Honest Thoughts on AI and the Job Market in 2026 (No Hype)]&lt;/p&gt;

&lt;h2&gt;
  
  
  What Parts of Software Engineering Can AI Not Do?
&lt;/h2&gt;

&lt;p&gt;Here's my honest list of things AI is genuinely bad at in mid-2026, despite years of rapid improvement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cross-system reasoning.&lt;/strong&gt; AI can work within a single file or module brilliantly. Ask it to reason about how a change in the authentication service will cascade through the event bus to affect the billing pipeline, and it falls apart. Real systems are messy graphs, not clean trees.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Organizational context.&lt;/strong&gt; Why did we choose Postgres over DynamoDB for this service? Because the team that owns it has three Postgres experts and zero DynamoDB experience. AI doesn't know this. It will happily recommend the "optimal" solution that your team can't actually operate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saying no.&lt;/strong&gt; This one doesn't get talked about enough. AI will build whatever you ask for. It won't push back and say "this feature is a bad idea because it conflicts with what we shipped last quarter." It won't tell you the complexity isn't justified by the user value. That judgment is still entirely human.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debugging production under pressure.&lt;/strong&gt; When your system is down at 2am and you're staring at a graph that shows p99 latency spiking while CPU is flat, you need pattern recognition built from years of being in that seat. AI can suggest possibilities. It can't feel the system. It can't say "this smells like a connection pool leak" the way a senior engineer who's been burned by one before can.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Navigating ambiguity.&lt;/strong&gt; The hardest part of most engineering projects isn't writing the code. It's figuring out what to build when the requirements are contradictory, the stakeholders disagree, and the timeline is unrealistic. No model solves that for you.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Matt Welsh was right that the role is changing. But the direction of change is toward more human judgment, not less. The mechanical parts got automated. The parts that require wisdom, context, and taste became more valuable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Will AI Replace Software Engineers?
&lt;/h2&gt;

&lt;p&gt;No. But it will replace software engineers who refuse to adapt.&lt;/p&gt;

&lt;p&gt;This is one of those things where the boring answer is actually the right one. The state of software engineering in 2026 isn't a dystopia where engineers are obsolete, and it isn't a utopia where AI handles everything while we sip coffee. It's a messy middle where the tools got dramatically better and the expectations rose to match.&lt;/p&gt;

&lt;p&gt;Here's what I've seen across the teams I've worked with: the engineers who are thriving share three traits.&lt;/p&gt;

&lt;p&gt;First, they use AI tools aggressively for the tasks those tools are good at. They don't resist out of pride. They don't waste time hand-writing boilerplate.&lt;/p&gt;

&lt;p&gt;Second, they invest heavily in the skills AI can't replicate. System design, stakeholder communication, debugging under ambiguity, deep domain knowledge.&lt;/p&gt;

&lt;p&gt;Third, they maintain strong opinions about code quality and architecture. They don't accept AI output uncritically. They treat it as a starting point, not a finished product. As I wrote in my piece on &lt;a href="https://www.kunalganglani.com/blog/vibe-coding-tech-debt-audit" rel="noopener noreferrer"&gt;vibe coding tech debt&lt;/a&gt;, the teams that skip this review step pay for it within weeks.&lt;/p&gt;

&lt;p&gt;The engineers who are struggling fall into two camps: the ones who rejected AI tools entirely and fell behind on velocity, or the ones who embraced them uncritically and are now drowning in tech debt they don't understand. Both extremes lose.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Craft Isn't Dead. The Bar Just Moved.
&lt;/h2&gt;

&lt;p&gt;Software engineering in 2026 demands more from practitioners, not less. The floor got raised — anyone can scaffold an app with an AI assistant now. But the ceiling got raised too. The best engineers are building more ambitious systems, faster, because they've integrated AI into their workflow without surrendering their judgment.&lt;/p&gt;

&lt;p&gt;My prediction for the next two years: the gap between engineers who can design systems and engineers who can only write code will widen dramatically. Companies will stop hiring for "coding ability" and start hiring for "systems thinking with AI fluency." The job title stays the same. The job description is already unrecognizable.&lt;/p&gt;

&lt;p&gt;If you're a software engineer reading this, here's what I'd do today: get uncomfortable with AI tools if you haven't already. But spend twice as much time on system design, on understanding your business domain, and on learning to communicate technical decisions clearly. Those are the skills that compound. Those are the ones no model can automate away.&lt;/p&gt;

&lt;p&gt;The craft of software engineering isn't dying. It's being distilled down to the thing it was always actually about: thinking clearly about hard problems. The typing was never the point.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/state-software-engineering-2026?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=state-software-engineering-2026" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>developercareer</category>
      <category>aicoding</category>
      <category>developerproductivity</category>
    </item>
    <item>
      <title>How to Write a Good README: Your Project's Most Important File [2026 Guide]</title>
      <dc:creator>Kunal</dc:creator>
      <pubDate>Fri, 01 May 2026 12:47:29 +0000</pubDate>
      <link>https://dev.to/kunal_d6a8fea2309e1571ee7/how-to-write-a-good-readme-your-projects-most-important-file-2026-guide-95h</link>
      <guid>https://dev.to/kunal_d6a8fea2309e1571ee7/how-to-write-a-good-readme-your-projects-most-important-file-2026-guide-95h</guid>
      <description>&lt;p&gt;Most open-source projects die in silence. Not because the code is bad, but because the README is.&lt;/p&gt;

&lt;p&gt;I've evaluated hundreds of GitHub repositories over fourteen years of engineering work. Reviewing them for adoption at companies, scanning them for open-source contributions, auditing them for internal tooling decisions. Every single time, the first thing I look at is the README. Not the source code. Not the issues. The README. If it's empty, vague, or a wall of unformatted text, I close the tab. So does everyone else. Learning &lt;strong&gt;how to write a good README&lt;/strong&gt; is one of the highest-leverage skills a developer can build, and most of us never bother.&lt;/p&gt;

&lt;p&gt;A README is a text file that introduces, explains, and sells your project. It lives at the root of your repository, and platforms like GitHub automatically surface it to every visitor. It answers three questions: what does this do, why should I care, and how do I use it. Get those right, and you've built the foundation for everything else — contributors, users, trust.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Your README is the beginning of your project's user experience. A bad one can be a major turn-off for potential users and contributors.&lt;br&gt;
— David Oglesby, Principal Engineer at Heptio&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why Your README Matters More Than Your Code
&lt;/h2&gt;

&lt;p&gt;Here's the thing nobody says about open source: your code quality is invisible until someone actually clones the repo and starts reading it. Your README quality is visible in under three seconds.&lt;/p&gt;

&lt;p&gt;Daniel Beck, a Software Engineer who has spoken extensively on documentation practices, makes the argument that a README is an opportunity to demonstrate professionalism and empathy. It shows you care about the people who might use your work, not just the work itself. That signal matters. When I'm evaluating two libraries that solve the same problem, the one with the clear, well-structured README wins almost every time. It's not rational. It's human. If you can't explain your project clearly, why would I trust your architecture decisions?&lt;/p&gt;

&lt;p&gt;Tom Preston-Werner, co-founder of GitHub, coined the term "&lt;a href="https://tom.preston-werner.com/2010/08/23/readme-driven-development.html" rel="noopener noreferrer"&gt;Readme Driven Development&lt;/a&gt;" back in 2010. His argument was simple: write the README before you write any code. The act of explaining your software forces you to think through what you're actually building. More than a decade later, this advice is still underrated. I've shipped features that would have been scoped completely differently if I'd written the README first. The README isn't documentation you bolt on at the end. It's a design document that happens to also be user-facing.&lt;/p&gt;

&lt;p&gt;For those maintaining open-source projects, this matters doubly. The &lt;a href="https://www.kunalganglani.com/blog/open-source-sustainability-crisis" rel="noopener noreferrer"&gt;open source sustainability crisis&lt;/a&gt; is real, and a well-crafted README is one of the few zero-cost tools that directly increases contributor retention. People contribute to projects they understand.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Should a Good README Include?
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://www.makeareadme.com/" rel="noopener noreferrer"&gt;Make a README project&lt;/a&gt; provides a solid starting template covering the essentials: Installation, Usage, Contributing, and License. That's a good floor. But a README that only covers the basics is like a landing page with no value proposition. You need to go further.&lt;/p&gt;

&lt;p&gt;Here's what a strong README actually contains, and more importantly, &lt;em&gt;why&lt;/em&gt; each section earns its place:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project title and one-line description.&lt;/strong&gt; This sounds obvious, but I've seen repos where I genuinely couldn't figure out what the project did after reading the first three paragraphs. Your first line should tell me what this is and who it's for. "A lightweight CLI tool for converting Markdown to PDF" beats "Welcome to ProjectX!" every time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Why.&lt;/strong&gt; Most READMEs skip straight to installation. That's a mistake. Before I install anything, I need to know why this exists. What problem does it solve? What alternatives did you consider? Two sentences here save your users twenty minutes of research.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation instructions.&lt;/strong&gt; Be specific. Include the package manager command, the minimum runtime version, and any system dependencies. Don't assume everyone is on your OS. If there's a Docker option, mention it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usage examples.&lt;/strong&gt; Show me the two or three most common things someone would do with your project. Keep it concrete. A single clear example is worth more than a link to full API docs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contributing guidelines.&lt;/strong&gt; Even a short section signals that you welcome contributions. Link to a CONTRIBUTING.md if you have one, but put the basics in the README itself. How to run tests, how to submit a PR, what the code style expectations are.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;License.&lt;/strong&gt; Always include it. A project without a license is legally unusable in most corporate environments. MIT, Apache 2.0, GPL — pick one and state it clearly.&lt;/p&gt;

&lt;p&gt;Here's a video walkthrough that covers these fundamentals well:&lt;/p&gt;

&lt;p&gt;[YOUTUBE:E6NO0rgFub4|How To Write a USEFUL README On Github]&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Write a README That Builds Trust Instantly
&lt;/h2&gt;

&lt;p&gt;Beyond the essentials, there's a layer of README craft that separates good projects from the ones that actually get adopted. These are the details that build trust before someone writes a single line of integration code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Badges.&lt;/strong&gt; Those little colored shields at the top of a README — build passing, coverage percentage, npm version, license type — aren't decoration. According to &lt;a href="https://shields.io/" rel="noopener noreferrer"&gt;shields.io&lt;/a&gt;, which powers most of them, badges provide live, at-a-glance information about a project's health. A green "build passing" badge tells me this project has CI. A coverage badge tells me someone cares about testing. I've worked on teams where the presence or absence of badges was literally part of the library evaluation checklist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshots or GIFs.&lt;/strong&gt; If your project has any visual component — a CLI with colored output, a web UI, a mobile app — show it. A three-second GIF communicates more than ten paragraphs of description. Tools like &lt;code&gt;asciinema&lt;/code&gt; for terminal recordings or simple screen captures go a long way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architecture diagrams.&lt;/strong&gt; For anything more complex than a single-purpose utility, a high-level architecture diagram pays for itself immediately. GitHub now natively renders &lt;a href="https://mermaid.js.org/" rel="noopener noreferrer"&gt;Mermaid.js&lt;/a&gt; syntax in Markdown files. That means you can embed flowcharts, sequence diagrams, and entity-relationship diagrams directly in your README without generating external images. No extra build step, no stale PNGs. Just write the Mermaid syntax in a fenced code block and GitHub renders it. I've started using this for every project with more than two components. The drop in "how does this work?" questions has been noticeable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A table of contents.&lt;/strong&gt; If your README is longer than a few screen heights, add one. Markdown doesn't have native TOC support, but GitHub auto-generates anchor links for headers. A simple bulleted list at the top linking to each section makes your README navigable instead of scrollable.&lt;/p&gt;

&lt;p&gt;If you've dealt with &lt;a href="https://www.kunalganglani.com/blog/ai-generated-code-quality-crisis" rel="noopener noreferrer"&gt;AI-generated code quality issues&lt;/a&gt;, you know how important clear documentation is for codebases that may have been partially generated. A strong README is your first line of defense against confusion.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5 README Mistakes That Kill Open-Source Projects
&lt;/h2&gt;

&lt;p&gt;After reviewing hundreds of repositories, both professionally and as an open-source contributor, I see the same mistakes constantly. These are the ones that actually cost projects users and contributors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The empty README.&lt;/strong&gt; Just a project name and nothing else. This is the equivalent of opening a restaurant with no sign, no menu, and the lights off. GitHub will still surface this file. It'll just surface your indifference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The "obvious to me" README.&lt;/strong&gt; Installation instructions that assume you already know the project's ecosystem. "Run &lt;code&gt;make install&lt;/code&gt;" with no mention of dependencies, build tools, or supported platforms. What's obvious to you after six months of development is completely opaque to a first-time visitor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The novel.&lt;/strong&gt; Ten thousand words, no headers, no structure, no visual hierarchy. The Make a README project makes this point well: a README should be scannable. Engineers don't read documentation linearly. They scan for the section they need. If your README is a single block of prose, nobody is reading it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The outdated README.&lt;/strong&gt; Installation instructions referencing a deprecated API. Screenshots of a UI redesigned two versions ago. Config examples that throw errors on run. An outdated README is worse than a missing one because it actively misleads people. I once spent forty minutes debugging a setup issue that turned out to be a README pointing to a config format the project had abandoned months earlier. Forty minutes I'll never get back.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The "see the docs" README.&lt;/strong&gt; A single line: "For documentation, visit our wiki." And the wiki is either empty, disorganized, or requires authentication. Your README is the documentation entry point. If someone has to leave the repository to understand your project, you've already lost most of them.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Advanced README Patterns Worth Stealing
&lt;/h2&gt;

&lt;p&gt;Once you've nailed the basics, here are patterns I've seen in the best READMEs across the ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The comparison table.&lt;/strong&gt; If your project exists in a competitive space (and most do), a brief comparison table showing how you differ from alternatives is worth the effort. Columns for features, performance characteristics, or philosophy. This isn't about trashing competitors. It's about helping users make informed decisions quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The "non-goals" section.&lt;/strong&gt; Explicitly stating what your project &lt;em&gt;doesn't&lt;/em&gt; do is almost as valuable as stating what it does. It saves users from evaluating your tool for a use case you'll never support, and it signals architectural maturity. I've started including this in internal project docs too, and it dramatically reduces scope creep conversations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The quick-start vs. full guide split.&lt;/strong&gt; Give impatient users (which is all of us) a five-line quick-start at the top, then provide the detailed guide below. This respects both the "I just want to try it" user and the "I need to understand everything" user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Versioned compatibility matrices.&lt;/strong&gt; A table showing which versions of your project work with which versions of its dependencies. Especially critical for libraries. Nothing wastes developer time like version incompatibility surprises, and a simple table prevents hours of debugging. If you've ever dealt with &lt;a href="https://www.kunalganglani.com/blog/vibe-coding-tech-debt-audit" rel="noopener noreferrer"&gt;vibe-coded tech debt&lt;/a&gt;, you know that unclear dependency documentation makes a bad situation catastrophic.&lt;/p&gt;

&lt;h2&gt;
  
  
  The README Is the Product
&lt;/h2&gt;

&lt;p&gt;Here's my actual take: the line between documentation and product is gone. In a world where developers evaluate tools in minutes, not days, your README &lt;em&gt;is&lt;/em&gt; the product experience. The landing page, the sales pitch, the onboarding flow, and the support document. All compressed into a single Markdown file.&lt;/p&gt;

&lt;p&gt;I've watched projects with mediocre code but excellent READMEs outperform technically superior projects with terrible documentation. That's not a fluke. That's the market telling you something. The projects that win aren't always the best-engineered. They're the most accessible.&lt;/p&gt;

&lt;p&gt;So here's my challenge: go look at the README of your most important project right now. Read it as if you've never seen the codebase. Does it answer what this is, why it exists, and how to use it in under sixty seconds? If not, that's your highest-impact commit this week. Not a new feature. Not a refactor. A README rewrite.&lt;/p&gt;

&lt;p&gt;The best code in the world is worthless if nobody can figure out what it does.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.kunalganglani.com/blog/write-good-readme-guide?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=write-good-readme-guide" rel="noopener noreferrer"&gt;kunalganglani.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>documentation</category>
      <category>github</category>
      <category>developerproductivity</category>
    </item>
  </channel>
</rss>
