<?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: Aditya Agarwal</title>
    <description>The latest articles on DEV Community by Aditya Agarwal (@adioof).</description>
    <link>https://dev.to/adioof</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2760047%2F17358ceb-daca-46e9-9a88-1904b8402d3f.jpg</url>
      <title>DEV Community: Aditya Agarwal</title>
      <link>https://dev.to/adioof</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adioof"/>
    <language>en</language>
    <item>
      <title>The 72-hour dependency cooldown is security theater that breaks your builds</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Wed, 12 Aug 2026 19:35:21 +0000</pubDate>
      <link>https://dev.to/adioof/the-72-hour-dependency-cooldown-is-security-theater-that-breaks-your-builds-lj9</link>
      <guid>https://dev.to/adioof/the-72-hour-dependency-cooldown-is-security-theater-that-breaks-your-builds-lj9</guid>
      <description>&lt;p&gt;Last week, the continuous integration pipeline I set up failed because a package that I had locked three weeks ago was no longer resolving in the same manner on my local machine. The solution? Just wait for 72 hours. Because that seems to be the approach to security these days. 🙄&lt;/p&gt;

&lt;h2&gt;
  
  
  The new gospel of waiting
&lt;/h2&gt;

&lt;p&gt;Security teams think they have found the answer to supply-chain attacks: Time. Here's a simple suggestion: don't install a package as soon as it's released. Wait 72 hours so that someone else can discover the poison. The entire ecosystem quickly adopted it. In July 2026, GitHub implemented a default 72-hour cooldown for non-security Dependabot updates. Both pnpm and Yarn implemented minimum package age restrictions in September 2025. npm v11.10.0 added &lt;code&gt;min-release-age&lt;/code&gt; in February 2026. Additionally, PyPI also took measures to protect against future typosquatting attacks. They decided to block the upload of new files to any release that was older than 14 days. Everything seems reasonable. It seems like adults are finally starting to consider the risk in the supply chain.&lt;/p&gt;

&lt;h2&gt;
  
  
  The math doesn't math
&lt;/h2&gt;

&lt;p&gt;The unspoken truth is that... Most of the malware you are trying to avoid is eliminated even before your cooldown begins. Consider the major attacks in 2025/2026: Axios, s1ngularity, Shai-Hulud. All malicious packages were found and removed within &lt;strong&gt;a median of 14 hours&lt;/strong&gt;. This window of 72 hours is sheltering you from a danger that would have perished already, by the 15th hour. You are essentially paying three days of opportunity cost to be protected from a fire that your sprinklers have already extinguished.&lt;/p&gt;

&lt;h2&gt;
  
  
  Attackers read the docs too
&lt;/h2&gt;

&lt;p&gt;Delays do not merely inconvenience your opponents; they actually instruct them. Kennedy Toomey, an Application Security Researcher at Datadog, said it plainly in an April 16, 2026 report:&lt;/p&gt;

&lt;p&gt;"Dependency cooldowns are not completely effective. If everyone starts using cooldowns, intelligent attackers can just wait with executing the malware and survive the cooldown. Code that doesn't execute on install takes longer to discover."&lt;/p&gt;

&lt;p&gt;Read that twice. The countermeasure teaches attackers to just... wait longer. If you implemented a 72-hour gate, the adversary set a 96-hour fuse. Incumbent malware has now been engineered to hibernate throughout your entire safeguard timeframe and activate after you've patched. At the same time, the number of new open-source malware packages continues to increase. In fact, Sonatype discovered 394,877 new open-source malware packages in Q4 2025, which is 476% more than the previous three quarters combined. Taking a three-day break can't combat such a workload. It just gives you the illusion of being occupied.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the cooldown actually costs
&lt;/h2&gt;

&lt;p&gt;Allow me to share what's really happening, as I have firsthand experience. Our team is small. If we lose an hour to "why won't this install", that's an hour not spent on our product. And then, the codebase becomes inflexible. You end up pinning everything so hard, postponing any updates, and six months down the line you end up with a fossil dependency graph that nobody is willing to deal with. That's the deal. We lose a lot of speed. The consultancy Evil Martians summed up the feeling in their analysis from July 28, 2026. They urged not to "introduce tools just because it's safer," since this "makes processes slower and often gives a false sense of security without real risk reduction."&lt;/p&gt;

&lt;p&gt;What I remember most is the expression "False sense of security". Because when a team feels safe they stop being vigilant and that's worse than speeding up and staying paranoid.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what do you actually do
&lt;/h2&gt;

&lt;p&gt;I'm not suggesting that you blindly install everything in the middle of the night. 🔒&lt;/p&gt;

&lt;p&gt;What I mean is that we should select tools that detect harmful activities, and not tools that simply postpone an attack based on a pre-set time. Runtime scanning and behavioral analysis beat arbitrary time gates. Fast detection and revocation is where the 14-hour median comes from, so lean into that ecosystem. Pin for reproducibility, not for superstition, and keep a real update cadence. A cooldown could be used as one small indicator among a bunch of real defenses. As the headline policy, it's theater with good production values. The hackers have already changed their approach. The real question is, will your security staff? Or will you continue to pay them three days of agony to watch a magic act?&lt;/p&gt;

</description>
      <category>security</category>
      <category>devops</category>
      <category>supplychain</category>
      <category>dependencies</category>
    </item>
    <item>
      <title>OpenAI buying Astral means uv now answers to a model company</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Wed, 12 Aug 2026 10:31:57 +0000</pubDate>
      <link>https://dev.to/adioof/openai-buying-astral-means-uv-now-answers-to-a-model-company-20lc</link>
      <guid>https://dev.to/adioof/openai-buying-astral-means-uv-now-answers-to-a-model-company-20lc</guid>
      <description>&lt;p&gt;Python packaging was finally solved, and the solution turned out to be a tool so powerful, user environment sanity isn't the only use case. It installs things. No more and no less than that.&lt;/p&gt;

&lt;p&gt;OpenAI revealed its acquisition of Astral on March 19, 2026. The entire Astral team, with founder Charlie Marsh, joined the Codex org as a result.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tool everyone already switched to
&lt;/h2&gt;

&lt;p&gt;Allow me to provide some context for those who may have missed out on this information for some reason.&lt;/p&gt;

&lt;p&gt;Former Khan Academy engineer, Charlie Marsh, founded Astral with the mission to reimplement Python's toolchain in Rust. Astral released &lt;strong&gt;uv&lt;/strong&gt;, which is a drop-in alternative to pip, virtualenv, and pip-tools in February 2024.&lt;/p&gt;

&lt;p&gt;The speed improvement was so significant that Astral commented that it wasn't just a "nice improvement", but it was in fact 10 to 100 times faster than the previous pip workflows.&lt;/p&gt;

&lt;p&gt;The statistics support this. uv can resolve the Jupyter project dependencies in about 0.57 seconds when cold. Poetry takes around 7.59 seconds. When the cache is warm? Just about 20 milliseconds. ⚡&lt;/p&gt;

&lt;p&gt;It caught people's attention. uv was already attracting over 126 million downloads monthly by early 2026, according to JetBrains.&lt;/p&gt;

&lt;p&gt;When I use the term "conquered," I'm not exaggerating. uv didn't win a debate. It won over the most users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Governance loses the race
&lt;/h2&gt;

&lt;p&gt;This is the part that's meant to annoy you.&lt;/p&gt;

&lt;p&gt;While uv was gobbling up the ecosystem, the community was otherwise engaged... trying to have a committee organize the ecosystem. PEP 772 proposed an elected Python Packaging Council, a real governance body for exactly these decisions.&lt;/p&gt;

&lt;p&gt;The PEP remained under review for 14 months.&lt;/p&gt;

&lt;p&gt;Compare those two situations as they unfolded in parallel. A product supported by corporate interests was released, improved, and became popular with 126 million monthly users before the city's elected officials even finished discussing its governance structure.&lt;/p&gt;

&lt;p&gt;That sums it up. The town was writing a constitution. Astral was delivering binaries.&lt;/p&gt;

&lt;p&gt;This is not meant as a criticism of the council people. Governance is intentionally slow and cautious. The problem is that slow and cautious will always lose to a fast product with actual distribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  So who does uv answer to now?
&lt;/h2&gt;

&lt;p&gt;This is what I keep wondering about.&lt;/p&gt;

&lt;p&gt;For a couple of years, the response was "an independent startup that quite enjoys Rust." Okay, so startups have motives, but these were packaging-shaped motives.&lt;/p&gt;

&lt;p&gt;The correct response would be the Codex team from OpenAI.&lt;/p&gt;

&lt;p&gt;Just to clarify, uv is still going to be open source, and in the announcement Marsh said: "As part of Codex, we'll continue evolving our open source tools to push the frontier of software development." So I guess we'll have to take him at his word.&lt;/p&gt;

&lt;p&gt;However, intentions and structure are different things. A large portion of Python's daily package installs is now being funneled through a technology owned by a monopoly corp. That is a dependency the community never approved.&lt;/p&gt;

&lt;p&gt;OpenAI is an organization that adheres to a set of incentives in a world inexorably stratified by power and money.&lt;/p&gt;

&lt;p&gt;→ The community built a democratic process. Astral built a product.&lt;br&gt;
→ Only one of those decided who controls Python packaging.&lt;br&gt;
→ Distribution beats deliberation, every time.&lt;br&gt;
→ By the time governance catches up, the winner already has an owner.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;We like to think that open ecosystems are self-governing and based on consensus. Here's a perfect example that this is not always the case.&lt;/p&gt;

&lt;p&gt;It was the tool that won, not the governance body. Uv was a seriously good tool that outgrew the process and outcompeted the governance meant to steer it. Ecosystem governance doesn't lose to bad actors, it loses to good tools that iterate faster than committees can convene.&lt;/p&gt;

&lt;p&gt;Here's what I'd like to know: if technology advances and how resources are distributed will always be ahead of the decisions made by elected officials, is there a form of local governance that can meet the pace? Or should we simply accept that the quickest and best-financed solution will prevail, and work from there?&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>governance</category>
      <category>opinion</category>
    </item>
    <item>
      <title>Go error handling won and the if err != nil crowd deserves the win</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Tue, 11 Aug 2026 19:26:47 +0000</pubDate>
      <link>https://dev.to/adioof/go-error-handling-won-and-the-if-err-nil-crowd-deserves-the-win-1ik0</link>
      <guid>https://dev.to/adioof/go-error-handling-won-and-the-if-err-nil-crowd-deserves-the-win-1ik0</guid>
      <description>&lt;p&gt;The competition for the most used code snippet has a clear winner: &lt;code&gt;if err != nil&lt;/code&gt;. Whoever wrote this ten thousand times should get the award.&lt;/p&gt;

&lt;p&gt;A Medium post was published on August 9, 2026, which was a retrospective comparing a Go vs a Rust production backend rewrite. It re-ignited the oldest flamewar on the internet: is Go's error handling a wart or a feature?&lt;/p&gt;

&lt;h2&gt;
  
  
  The complaint everyone repeats
&lt;/h2&gt;

&lt;p&gt;You've probably heard that Go is too wordy, &lt;code&gt;if err != nil&lt;/code&gt; is just clutter, proper languages use &lt;code&gt;Result&lt;/code&gt; and &lt;code&gt;?&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The complaint is further substantiated by the Go Developer Survey from April 9, 2024. 13% of the respondents indicated that "verbosity of error handling" was a challenge.&lt;/p&gt;

&lt;p&gt;However, if you take another look at the survey, you'll see that Go has a satisfaction rate of 93%. 🤔&lt;/p&gt;

&lt;p&gt;So 13% grumble about the typing while nine out of ten devs are happy. This is not a language "falling apart"; it is a tradeoff that people made on purpose and keep making.&lt;/p&gt;

&lt;h2&gt;
  
  
  The try() near-miss
&lt;/h2&gt;

&lt;p&gt;Here's the part that slips people's minds. Go almost gave up.&lt;/p&gt;

&lt;p&gt;One of the Go co-designers, Robert Griesemer, submitted Proposal #32437 on June 4, 2019, to include a built-in &lt;code&gt;try()&lt;/code&gt;. With this, you would simply write &lt;code&gt;f := try(os.Open(filename))&lt;/code&gt; and all the boilerplate would disappear.&lt;/p&gt;

&lt;p&gt;Sounds nice, right? The community disagreed hard.&lt;/p&gt;

&lt;p&gt;On July 16, 2019, the proposal was closed and rejected. The feedback was overwhelmingly negative, and the people who work on Go every day took one look at the shortcut and said, "No, thanks."&lt;/p&gt;

&lt;p&gt;That is unusual. The majority of languages rush to embrace sugar. The Go language users made a choice to retain the "annoying" thing because the "annoying" thing is effective.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verbosity is the point
&lt;/h2&gt;

&lt;p&gt;Let's go back to January 12, 2015 when Rob Pike said this in "Errors are values": "Errors are values. Values can be programmed, and since errors are values, errors can be programmed.."&lt;/p&gt;

&lt;p&gt;That is the basic philosophy. An error should not be a magical control-flow escape mechanism. It is simply a value that needs to be managed at the point where it occurs.&lt;/p&gt;

&lt;p&gt;Hiding an error behind a &lt;code&gt;?&lt;/code&gt; is saying "not my problem, bubble it up". Typing &lt;code&gt;if err != nil&lt;/code&gt; makes you stop and decide. Wrap it. Log it. Retry it. Bail.&lt;/p&gt;

&lt;p&gt;That verbosity is the point: I want to see every failure, not sweep it under a syntactic rug. The mantra in the Go community is "errors are values" and it's not uncommon to see functions in Go returning an error as their last return value. This makes error handling more visible and helps developers remember to handle it.&lt;/p&gt;

&lt;p&gt;→ You read top to bottom, no jumping to find where a &lt;code&gt;?&lt;/code&gt; unwound the stack&lt;br&gt;
→ Every failure path is visible in the diff during review&lt;br&gt;
→ The code you wrote at 3am five years ago still reads the same at 3am today&lt;/p&gt;

&lt;p&gt;Old Go code doesn't become unnecessarily complicated over time.&lt;/p&gt;
&lt;h2&gt;
  
  
  The breadcrumb trail
&lt;/h2&gt;

&lt;p&gt;On September 3, 2019, Go 1.13 was released. It introduced the &lt;code&gt;%w&lt;/code&gt; verb for &lt;code&gt;fmt.Errorf&lt;/code&gt;, along with the &lt;code&gt;errors.Is&lt;/code&gt; and &lt;code&gt;errors.As&lt;/code&gt; functions.&lt;/p&gt;

&lt;p&gt;This eliminated the excuse of "manual wrapping" and gave you a straight line through your stack.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;err&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="no"&gt;nil&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Errorf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"could not fetch user %d: %w"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uber, Cloudflare, and Monzo use this exact pattern to run their backend microservices. If and when a request dies in production, the wrapped error will read like a breadcrumb trail from the crash back to the cause.&lt;/p&gt;

&lt;p&gt;You don't need a decoder ring or to dig through stack traces. You simply get a string that indicates where the error occurred and what the code was trying to do.&lt;/p&gt;

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

&lt;p&gt;I run a small startup. We ship fast and we're on call for our own mistakes.&lt;/p&gt;

&lt;p&gt;The most enjoyable aspect of writing explicit errors is not the writing part. It is reading it six months later when I've forgotten absolutely everything and something's on fire.&lt;/p&gt;

&lt;p&gt;Code that contains an excessive amount of unnecessary or repeated information is uninteresting and not engaging to read. However, when you're in a high-pressure situation trying to troubleshoot and fix a problem in a production environment, you need that kind of boring code that is clear, simple, and gets the job done efficiently!&lt;/p&gt;

&lt;p&gt;Those who used &lt;code&gt;if err != nil&lt;/code&gt; didn't really fail. They tolerated the redundancy in order for themselves and others to easily understand the code even when tired. This is not a flaw. It's like having good coding habits integrated into the language.&lt;/p&gt;

&lt;p&gt;Here's my question to you: Has a &lt;code&gt;?&lt;/code&gt; operator ever saved you more time debugging than an explicit error trail has cost you? I'm genuinely interested if there are examples.&lt;/p&gt;

</description>
      <category>go</category>
      <category>programming</category>
      <category>opinion</category>
      <category>debate</category>
    </item>
    <item>
      <title>Agile fatigue isn't about Agile. It's about who holds the stopwatch.</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Mon, 10 Aug 2026 10:17:24 +0000</pubDate>
      <link>https://dev.to/adioof/agile-fatigue-isnt-about-agile-its-about-who-holds-the-stopwatch-3dgj</link>
      <guid>https://dev.to/adioof/agile-fatigue-isnt-about-agile-its-about-who-holds-the-stopwatch-3dgj</guid>
      <description>&lt;p&gt;Your stand-up routine lasts 45 minutes. No one in that room thinks it's a stand-up routine. You're basically giving a status update with unnecessary details. Also, the individual inquiring about what is blocking you is not actually helping to resolve the issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  The framework isn't the problem
&lt;/h2&gt;

&lt;p&gt;People enjoy criticizing Agile methods, such as the lengthy 45-minute daily stand-up meetings. The 45-minute standups, the story points that somehow became a performance review, the sprint that never ends. However, blaming Agile would be similar to blaming the hammer for the hole in your wall. Despite everything, statistics show that people are still using it. Digital.ai's 17th Annual State of Agile Report from January 2024 surveyed 788 software pros and found 71% of organizations use Agile. The most painful aspect is that only 11% of practitioners in the same report were "very satisfied" and 33% more were "somewhat satisfied". Therefore, fewer than half of the individuals who use it feel satisfied with it. This is not due to a failure of the framework but rather a failure of trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ceremonies become cameras when trust runs out
&lt;/h2&gt;

&lt;p&gt;An event is what you make of it. The same standup can feel like a quick check-in or a daily interrogation. It's not about the ritual. It's about the person with the stopwatch and their intentions. In June 2023, Bradley Momberger of Bitovi hit the nail on the head with this, describing what we might call "faux Agile," where a product owner or manager becomes, in his words, "the single chokepoint for all communication."&lt;/p&gt;

&lt;p&gt;An even clearer indication of the issue at hand is: the tools "are designed for the micro-managers on the team and not trustful enough of developers to do the right things."&lt;/p&gt;

&lt;p&gt;If the board is there to monitor you and not support you, then it's not Agile you are talking about, but rather surveillance using a Jira license. 🎥&lt;/p&gt;

&lt;p&gt;The report also identifies "developer burnout", "unrelenting demand", and a "disconnect between Agile practitioners and the business" as primary barriers. None of those are process issues. They are symptoms of the experience of low trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  "You're doing Agile wrong" is a smell
&lt;/h2&gt;

&lt;p&gt;They will come around kicking and screaming if they have to. Tell them they are going about it all wrong and you may as well have suggested sacrificing a chicken at the next stand-up. It's actually a confession. A perfect explanation came from an article in InfoWorld in 2016: "the issue with most agile implementations, isn't with agile, it's with Agile, the Capitalized Methodology". Little-a agile is a set of values. Big-A Agile is what your Vice President purchased a consulting package for. The defense mechanism of "you're doing it wrong" never asks who made a weapon out of the ritual. It simply shields the trademark.&lt;/p&gt;

&lt;h2&gt;
  
  
  Metrics are the honest tell
&lt;/h2&gt;

&lt;p&gt;Observe how your velocity chart behaves. It will tell you what your organization truly desires. The governance advice from DevSamurai is clear: "Agile metrics should not be used for surveillance. It is for awareness."&lt;/p&gt;

&lt;p&gt;Axify.io echoed it in June 2025, warning that "metrics can feel like surveillance if you're not careful" and to treat them "as a team support tool, not a punishment tool."&lt;/p&gt;

&lt;p&gt;A September 2025 Medium analysis added its own warning, advising "Transparency Over Surveillance" because "when metrics become weapons, teams hide problems instead of fixing them."&lt;/p&gt;

&lt;p&gt;If you use the numbers as a weapon, people will find ways to manipulate the numbers. Here's how I read it now:&lt;/p&gt;

&lt;p&gt;→ Metrics used for awareness build trust&lt;br&gt;
→ Metrics used for judgment kill it&lt;br&gt;
→ Once trust dies, every ceremony curdles into a checkpoint&lt;/p&gt;

&lt;h2&gt;
  
  
  What we actually do about it
&lt;/h2&gt;

&lt;p&gt;In my startup, we have asynchronous standup meetings almost every day. We communicate when something is blocking us. We don't fake busyness for the sake of looking busy. We use story points as a way to estimate the effort and complexity of a task, in order to help with planning and to measure our own velocity and progress. This did not call for a new structure. It called for the faith that adults will bring issues to light if you don't penalize them for it. Fatigue caused by Agile is a real thing. However, it's not the actual mechanics of Agile causing the fatigue, it's the constant oversight and pressure. If you were to switch from Scrum to Kanban, a manager without trust will start measuring the time you were spending on each task, But it wasn't really the framework that did that. Here is a question for you to ponder: which ceremony within your team lost its function as a tool and instead started acting as a camera, reflecting what is truly going on?&lt;/p&gt;

</description>
      <category>culture</category>
      <category>devlife</category>
      <category>opinion</category>
      <category>communication</category>
    </item>
    <item>
      <title>The AI-native junior can't debug and we're pretending that's fine</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Sun, 09 Aug 2026 19:27:08 +0000</pubDate>
      <link>https://dev.to/adioof/the-ai-native-junior-cant-debug-and-were-pretending-thats-fine-4f8j</link>
      <guid>https://dev.to/adioof/the-ai-native-junior-cant-debug-and-were-pretending-thats-fine-4f8j</guid>
      <description>&lt;p&gt;One of the recent graduates who is a part of our team was able to author a PR with 400 lines of code in just one afternoon. The changes were clean, all tests were passing and the PR was ready to be shipped. Then all of a sudden production had a memory leak. No dialog box, no autocompletion, just a graph going up and a very stressed junior.&lt;/p&gt;

&lt;h2&gt;
  
  
  The thing nobody wants to say out loud
&lt;/h2&gt;

&lt;p&gt;A viral post on r/ExperiencedDevs about a coworker being fired for using AI instead of learning the code spawned massive arguments. It hit 1000+ comments discussing if AI is silently destroying the way juniors are meant to learn. Both sides are half right. And both sides are dodging the real problem. We didn't recruit engineers that are AI users. We recruited operators for a prompt and are surprised they can't think through a system without it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The data caught up to the vibes
&lt;/h2&gt;

&lt;p&gt;A study by Anthropic in January 2026 titled "How AI assistance impacts coding skills" found that AI users averaged 50% on comprehension quizzes. The hand-coding group averaged 67% (Cohen's d=0.738, p=0.01). The most significant difference was not about syntax or style, but rather related to debugging questions.🧠&lt;/p&gt;

&lt;p&gt;The situation deteriorates for the heavy users. Those in the "AI delegation" group who consistently depended on AI scored less than 40 percent. They were the quickest in completing the tasks yet demonstrated "less independent thinking and more cognitive offloading."&lt;/p&gt;

&lt;p&gt;Simply put by Anthropic's researchers: "If junior engineers' skill development has been stunted by using AI in the first place, the productivity benefits may come at the cost of skills necessary to validate AI-written code."&lt;/p&gt;

&lt;p&gt;Twice the reading is required. The individuals supposed to evaluate the AI are those who lacked the strength to evaluate anything in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  The codebase is rotting quietly too
&lt;/h2&gt;

&lt;p&gt;GitClear analyzed 211 million lines of code created from January 2020 to December 2024. Refactorings decreased from 25% of commits in 2021 to fewer than 10% in 2024. In 2024, the percentage of duplicate code blocks increased by 800% unexpectedly! It was also the year when the amount of copy-pasted code surpassed that of refactored code. This is not an issue of skills. It's about a system that is getting clogged up over time because there is no one person overseeing the entire operation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why debugging is the wall
&lt;/h2&gt;

&lt;p&gt;Generating code and understanding a system are different sports.&lt;br&gt;
→ Writing code is local. You need one file and a clear goal.&lt;br&gt;
→ Debugging is global. You need hundreds of files living in your head at once.&lt;br&gt;
→ AI is great at the first. It falls off a cliff on the second.&lt;br&gt;
Have you seen SWE-bench, the benchmark full of bugs from real GitHub repos? Generalist models such as GPT-4 and Claude 2 didn't even get over 5%. They don't solve anything for the same reason our junior hesitated. Actual glitches require an entire mental image of hundreds of interconnected documents, and there is no instruction manual that gives you that.&lt;/p&gt;

&lt;h2&gt;
  
  
  So whose fault is it?
&lt;/h2&gt;

&lt;p&gt;We didn't fall into the trap. We set it up and led them into it. We rewarded speed over understanding. We praised the fast PR and never asked anyone to explain the logic behind it. In April 2025, Om Moolchandani, CISO/CPO at Tuskira, stated: "Junior resources have less problem-solving acumen, lack deep system-level understanding (e.g. the ability to dissect and resolve issues in language compilers/ interpreters, operating systems), and the concepts are ultimately formed based on the level they enter the industry. Many can generate functional code snippets but struggle to explain the logic behind them or secure them against real-world attack scenarios."&lt;/p&gt;

&lt;p&gt;That is the essence of it. Create, perhaps. Justify, no. We outsourced the learning curve, then acted surprised the learning didn't happen.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm actually doing about it
&lt;/h2&gt;

&lt;p&gt;I no longer judge junior team members based on their pull request speed. In our tiny team, fast code integration is insignificant if you cannot take the time to explain and discuss the implementation with me. The solution is not to prohibit AI but to ensure that people deserve the quick workaround.&lt;br&gt;
→ Explain the diff out loud before it merges. No "the AI wrote it."&lt;br&gt;
→ Debug one gnarly thing a week with the autocomplete off.&lt;br&gt;
→ Read old code that isn't yours until the system stops feeling like magic.&lt;br&gt;
AI can speed up things amazingly well provided you already have a framework to speed up. But it's not at all a substitute for creating that framework in the first place. The junior developer who panicked and froze is not defective. They're just the one who was never before asked to do the hard thing, and then the hard thing showed up in their real work. My question is, if your top junior had no tools due to AI for a week, would they still be your top junior?&lt;/p&gt;

</description>
      <category>career</category>
      <category>ai</category>
      <category>culture</category>
      <category>hiring</category>
    </item>
    <item>
      <title>The Hutter Prize measures intelligence better than any OpenAI benchmark</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Sun, 09 Aug 2026 10:27:59 +0000</pubDate>
      <link>https://dev.to/adioof/the-hutter-prize-measures-intelligence-better-than-any-openai-benchmark-g4n</link>
      <guid>https://dev.to/adioof/the-hutter-prize-measures-intelligence-better-than-any-openai-benchmark-g4n</guid>
      <description>&lt;p&gt;Winning a leaderboard doesn't hold any value for me now. Every week, a new model surpasses an existing benchmark, but at the same time, I become less confident in those numbers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The contest nobody's gaming
&lt;/h2&gt;

&lt;p&gt;There is a contest that is 20 years old now, and it measures intelligence more honestly than any OpenAI eval&lt;/p&gt;

&lt;p&gt;The Hutter Prize is at stake. It has offered cash rewards for compressing a Wikipedia XML dump without loss of information since 2006. As of February 2020, competitors have instead been challenged to compress the 1-gigabyte file enwik9 (although the file was previously the 100MB enwik8). No "reasoning" it can fake by pattern-matching training data. Just a file, and a hard number for how small you made it. 📦&lt;/p&gt;

&lt;h2&gt;
  
  
  Why compression is a lie detector
&lt;/h2&gt;

&lt;p&gt;Most benchmarks fail to account for one important thing. If you want to achieve good text compression, you need to be able to predict that text effectively. Predicting and compressing can essentially be the same thing. If you can predict the next word, you don't have to remember the word, you remember the prediction. The prominent goal of AI (strong AI) research is to develop systems that perform better, are easier to use, learn faster, and generalize from few data, that is, can do more with less. The capacity for good compression is closely connected to intelligence... Intelligence, however, is a controversial term while file sizes are not. A file size is something that cannot be distorted.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule that kills benchmark theater
&lt;/h2&gt;

&lt;p&gt;This is my favorite section. Your score is the size of the compressed file &lt;strong&gt;plus&lt;/strong&gt; the size of your decompression program, combined. This one rule eliminates the cheat every AI leaderboard has to suffer. You can't shove Wikipedia into a massive neural net and declare it compression because the net is part of your score. There are additional constraints:&lt;/p&gt;

&lt;p&gt;→ Single CPU core, not a GPU farm&lt;br&gt;
→ Under 10GB of RAM&lt;br&gt;
→ Finish in under 100 hours&lt;/p&gt;

&lt;p&gt;Therefore, it recognizes and encourages real algorithm intelligence rather than the one who has rented the most powerful computing cluster. While intelligence is a slippery concept, file sizes are hard numbers.&lt;/p&gt;

&lt;p&gt;That last line is the whole point.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers are brutal and beautiful
&lt;/h2&gt;

&lt;p&gt;The standing record was achieved by Kaido Orav and Byron Knoll on September 3, 2024. The fx2-cmix algorithm managed to compress 1,000,000,000 bytes into precisely 110,793,128 bytes. About 11.1% as a fraction of the original size. It was a 1.585% improvement over the previous record of 112,578,322 bytes that Orav set himself back in February 2024. They were awarded €7,950 for those optimizations. Prize founder Marcus Hutter personally finances the prize which pays €5,000 for every 1% the world record is exceeded by the total pool of €500,000. Consider the gap. It took months to achieve a 1.585% improvement. No company announcement can replace the simple truth that progress in research and development is incremental.&lt;/p&gt;

&lt;h2&gt;
  
  
  The big labs already agree
&lt;/h2&gt;

&lt;p&gt;Here's a new perspective that could put an end to the debate. The Google DeepMind, Meta AI, and Inria team demonstrated in their ICLR 2024 paper "Language Modeling Is Compression" that models such as Chinchilla 70B are the best &lt;em&gt;compressors&lt;/em&gt; out there. This applies to text, images, and audio. Marcus Hutter contributed to the paper. Hence, the identical concept that is behind the €500,000 competition is the process that is behind every model that people compare. The CoRecursive podcast put it perfectly when they said that "compression is the ultimate prediction test". We've just been cheering for the noisy proxy instead of the direct, clean signal. A benchmark score provides information on the performance of a model based on a set of pre-defined questions. In contrast, a compression ratio indicates how effectively the model represents the actual data distribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this changed for me
&lt;/h2&gt;

&lt;p&gt;I used to take benchmark tables at face value. Now I see them as a form of advertising. When a lab says "state of the art," I want to know the one thing they never publish: how small can it make the file, program included. That number is indisputable. You were either able to predict the following byte or you were not. The Hutter Prize may not be flashy, but rather a steady effort to compress a file size, with competitors who are in pursuit of that 1% improvement with each attempt. However, it is truthful. And in an industry saturated with leaderboard drama, being truthful is the most uncommon standard there is. My question to you is this: if compression is the cleanest measure of intelligence we have, why are all labs still racing on benchmarks that no one can reproduce?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>discuss</category>
      <category>opinion</category>
    </item>
    <item>
      <title>Codeberg banning AI code is not a cult. It's a boundary.</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Sat, 08 Aug 2026 19:30:20 +0000</pubDate>
      <link>https://dev.to/adioof/codeberg-banning-ai-code-is-not-a-cult-its-a-boundary-2dk7</link>
      <guid>https://dev.to/adioof/codeberg-banning-ai-code-is-not-a-cult-its-a-boundary-2dk7</guid>
      <description>&lt;p&gt;YouTuber Theo, founder of T3, gave thousands to Codeberg. He saw them vote in AI restrictions and called it "spite-driven" and a "cult."&lt;/p&gt;

&lt;p&gt;He is mistaken. It wasn't about purity, it was about setting a boundary.&lt;/p&gt;

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

&lt;p&gt;Codeberg e.V. is a non-profit Git forge located in Berlin. You can see it as a European version of GitHub, however, it is operated based on a democratic membership structure.&lt;/p&gt;

&lt;p&gt;That is an important point. Members do not receive policies in a top-down manner. They actually have the opportunity to vote on them.&lt;/p&gt;

&lt;p&gt;Therefore, a 14-day asynchronous vote was held on the proposal in the period from July 9 to July 22, 2026. The vote was closed by the admins Bastian Greshake Tzovaras, Otto Richter, and William Zijl and the results were announced on the following day.&lt;/p&gt;

&lt;p&gt;The proposal was approved by 358 votes in favor to 144 against, with 14 abstentions, for a total of 516 votes cast. That's 516 votes cast, roughly 71% approval, with about half of active members turning out.&lt;/p&gt;

&lt;p&gt;The new Terms of Use state it directly: &lt;em&gt;"Do not upload creations that are primarily composed of code written by 'generative AI'-tools (or services like Claude, OpenAI Codex)."&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "cult" is the wrong word
&lt;/h2&gt;

&lt;p&gt;A cult doesn't conduct an open vote and then lose 144 of them. A cult doesn't accept dissent this openly.&lt;/p&gt;

&lt;p&gt;Codeberg did the most sensible thing here. They requested, they quantified, and they released the numbers of the losers as well as the winners.&lt;/p&gt;

&lt;p&gt;Critics often overlook the fact that Codeberg explicitly stated that they would never resort to using automated content analysis to delete large numbers of repositories. Enforcement is done on a case-by-case basis, following the common sense of the community.&lt;/p&gt;

&lt;p&gt;Small projects, experiments, and repositories that were created before LLMs are not affected. That's not zealotry. That's a maintainer team trying to protect their review bandwidth without becoming code police. 🤷&lt;/p&gt;

&lt;h2&gt;
  
  
  This is about review cost, not vibes
&lt;/h2&gt;

&lt;p&gt;The real argument isn't "AI bad." It's who pays for the flood.&lt;/p&gt;

&lt;p&gt;A paper published on arXiv on July 31, 2026 discussed open-source governance, and in the paper, a Matplotlib maintainer was quoted saying that AI &lt;em&gt;"changes the cost balance between generating and reviewing code."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;One more time. It became inexpensive to create. But it remained expensive to review.&lt;/p&gt;

&lt;p&gt;Every PR that can't be automatically reviewed goes to a human volunteer. When you can spray a hundred plausible-looking commits in an afternoon, the bottleneck moves entirely onto the people saying yes or no.&lt;/p&gt;

&lt;p&gt;Codeberg also feels the pinch in the real world. For instance, a storage drive they previously paid €700 for now costs about €3,700, and they attribute this to AI datacenter expansions distorting the prices of hardware.&lt;/p&gt;

&lt;p&gt;It means that the same machines causing a data flood are also driving up the cost of the disks used to store that data. Isn't that a wild loop?&lt;/p&gt;

&lt;h2&gt;
  
  
  Boundaries attract, not repel
&lt;/h2&gt;

&lt;p&gt;If these were considered behaviors of a cult, people would run away as fast as they could. But instead, it was quite the opposite.&lt;/p&gt;

&lt;p&gt;The Zig programming language community moved its infrastructure over to Codeberg. Why? Well, GitHub was basically forcing AI-assisted entry points onto contributors, and Zig hoped to encounter &lt;em&gt;fewer violations&lt;/em&gt; of its strict no-AI policy over on Codeberg.&lt;/p&gt;

&lt;p&gt;Communities have the autonomy to reject contributions that are beyond their capacity to evaluate. This is what governance is all about. It's similar to a linting rule, CLA, or a code of conduct.&lt;/p&gt;

&lt;p&gt;You may have a different opinion about where exactly Codeberg decided to draw the line. I myself am not entirely certain I would have drawn the line there.&lt;/p&gt;

&lt;p&gt;However, having a different boundary in mind does not justify claiming that the one that was drawn is illegitimate.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;Theo provided funding to an organization based on democracy, but became upset when the democratic decision was not in his favor.&lt;/p&gt;

&lt;p&gt;Establishing a contribution limit is not being overly selective. It's a team of maintainers determining what they can responsibly handle. And they ask for feedback from everyone beforehand. ✅&lt;/p&gt;

&lt;p&gt;I'd like to know what you think about this: How can we differentiate between a healthy community boundary and real gatekeeping, and what decision would you have made on July 22?&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>community</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Platform teams became the new gatekeepers we said we hated</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Sat, 08 Aug 2026 10:12:54 +0000</pubDate>
      <link>https://dev.to/adioof/platform-teams-became-the-new-gatekeepers-we-said-we-hated-2d3o</link>
      <guid>https://dev.to/adioof/platform-teams-became-the-new-gatekeepers-we-said-we-hated-2d3o</guid>
      <description>&lt;p&gt;We killed the ops silo. Then we gave it a golden path and a nicer logo. The platform team was meant to solve our problems. Somehow it became the same disease with a Backstage portal on top. ## The pitch we all bought&lt;/p&gt;

&lt;p&gt;Team Topologies sold platform teams as a way to reduce cognitive load. According to Gartner, 80% of large engineering organizations will have platform teams by 2026. This is an increase from 45% in 2022. But here's the tension nobody wants to name. "You build it, you run it" and "let the platform team handle it" are pulling in opposite directions. You can't advocate ownership and then have all deploys funnel through a dedicated team of specialists. Gotta choose one. ## The bottleneck came back wearing a hoodie&lt;/p&gt;

&lt;p&gt;We disliked the ops team because of the never-ending ticket queue. If you needed a database, you had to submit a request and then wait for someone from another department to approve and create it for you. Platform engineering was supposed to bring self-service. But the State of Platform Engineering Report (Volume 4) reports that 45.3% of platform teams highlight developer adoption as the biggest challenge. Why? Well, 36.6% depend on top-down mandates to coerce developers to use their platform and not because they actually want to. 😬&lt;/p&gt;

&lt;p&gt;Well, it's more like the compliance coach with a big stick. Rachel Sweeney got it right, as quoted by Brian Bensky in his Fairwinds article from July 2025:&lt;/p&gt;

&lt;p&gt;You will always be forced to react to their needs if you impose the use of your abstractions on the team. The ops silo is reactionary. It's the same email but a different sender. ## The portal is not the platform&lt;/p&gt;

&lt;p&gt;According to Kellton Tech, Spotify's IDP solution - known as Backstage - holds an approximate 89% market share amongst IDP adopters. We can assume that every organization is currently engineering a stunning developer portal. Here's the trap. You create a fancy UI, but the functionalities behind it, are still dependent on manual platform team approval. Simply press the button, a human will arrive shortly. Well done! You successfully redesigned the ticket queue, using improved CSS. Charity Majors, CTO of Honeycomb, advocates for "guardrails over gatekeepers." She cautions that strict abstractions lead to "more abstraction pain" and prevent developers from being able to debug their code. Because the platform obscures everything, your engineers are unable to remedy their own incidents. They open a ticket. Rinse and repeat. ## Why the shiny platform still fails&lt;/p&gt;

&lt;p&gt;The failure rate is extremely high when looking at the numbers. The report revealed that 78% of platforms that attempt to address all developer issues and challenges right from the start eventually collapse. It appears that the new big-bang platform is essentially the new big-bang rewrite in a different guise. And it gets even worse than that. 29.6% of platform teams don't measure success at all. If you're not keeping track of developer friction, you won't notice the line that's starting to form. Instead, you'll mistakenly think you're brilliant, all while your users find ways to bypass you. ## What actually separates a road from a wall&lt;/p&gt;

&lt;p&gt;I have seen this happening within my team. The day you start needing permission from a so-called "platform", you've already been defeated. Here's the line I keep coming back to:&lt;/p&gt;

&lt;p&gt;→ A platform you can bypass is a road. A platform you must use is a wall. → If adoption needs a mandate, your product is bad. Fix the product, not the policy. → Guardrails let people move fast and warn them at the edge. Gatekeepers make them stop and knock. → If devs can't debug through your abstraction, you didn't reduce cognitive load. You hid it. Effective platform teams I have encountered function as an in-house product organization. They strive to be chosen. They lose prospects due to being sluggish, which is painful, but it motivates them to improve. The ones who are not good will always bring up organizational policy to justify their actions. That's how you can tell they are not to be trusted. ## The uncomfortable takeaway&lt;/p&gt;

&lt;p&gt;The issue is not platform engineering. The issue is renaming centralized control to "reducing cognitive load". Responsibility was reallocated to a dedicated team and we were still shocked when the blockage reappeared. 🎯&lt;/p&gt;

&lt;p&gt;Changing the name and creating a portal isn't enough to break down a silo. You have to create such a smooth and efficient process that nobody has a reason to work in isolation. Here's a question for you: Do developers opt-in to using your platform team, or are they instructed to use it? If it's the latter, what would happen if you made it optional tomorrow?&lt;/p&gt;

</description>
      <category>devops</category>
      <category>platform</category>
      <category>culture</category>
      <category>debate</category>
    </item>
    <item>
      <title>The slot machine workflow is the real vibe coding problem</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Fri, 07 Aug 2026 19:28:21 +0000</pubDate>
      <link>https://dev.to/adioof/the-slot-machine-workflow-is-the-real-vibe-coding-problem-17d6</link>
      <guid>https://dev.to/adioof/the-slot-machine-workflow-is-the-real-vibe-coding-problem-17d6</guid>
      <description>&lt;p&gt;There's a lot of debate going on right now about whether Artificial Intelligence can write good code.&lt;/p&gt;

&lt;p&gt;The actual issue is not with the code but the lever you are using to retrieve it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The re-roll is the tell
&lt;/h2&gt;

&lt;p&gt;Yes, it's the loop we all know too well. You ask for something, take a look, say "it's not what I had in mind", then ask again, take another look.&lt;/p&gt;

&lt;p&gt;At a certain moment in time, you've stopped reading the differences. You're simply waiting for the result that seems correct, so you can stop making changes.&lt;/p&gt;

&lt;p&gt;Iteration is not trying the same solution multiple times and failing.&lt;/p&gt;

&lt;p&gt;Rerolling is like trying again because you don't like the outcome, with the hope that this time the result will be more favorable. Engineering is about problem-solving, taking into account what you learned from the previous attempt. They are not the same thing. 🔧✨&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this specific loop rots your brain
&lt;/h2&gt;

&lt;p&gt;"Vibe coding" was a term first used by Karpathy in February 2025. According to him, it's when you fully surrender to the vibes and forget the code completely.&lt;/p&gt;

&lt;p&gt;Nice presentation. However, it didn't highlight enough how difficult it is to break the habit.&lt;/p&gt;

&lt;p&gt;The numbers that made me quit. In his March 2026 essay "One More Prompt: The Dopamine Trap of Agentic Coding," former Instacart site reliability engineer Quentin Rousseau noted that on average, Vegas slot machines "win," i.e. pay out, about 5% of the time.&lt;/p&gt;

&lt;p&gt;AI programming tools are giving back 80% or more. The marginal cost of one more attempt falls to almost zero.&lt;/p&gt;

&lt;p&gt;Exactly, that's the trick. A regular slot machine makes you lose enough to quit, but this one makes you win often enough that you never do.&lt;/p&gt;

&lt;p&gt;Steve Yegge was right when he wrote "The AI Vampire" in February 2026: AI coding "dispenses dopamine and adrenaline shots like they're a fire sale.&lt;/p&gt;

&lt;p&gt;Tyler O. captured the scary part in words in his May 2026 article "The Terminal Star": "Source code flutters past and my hunger to read it diminishes."&lt;/p&gt;

&lt;p&gt;That's the whole disease in one sentence. The dopamine trains you to stop reading.&lt;/p&gt;

&lt;h2&gt;
  
  
  The receipts are ugly
&lt;/h2&gt;

&lt;p&gt;If this was just a feeling, that's okay. But the numbers are appearing in the repositories.&lt;/p&gt;

&lt;p&gt;The 2025 report from GitClear conducted an analysis of 211 million lines of code across 3,400 repositories. Refactored or "moved" code, which constituted 25% of all changes in 2021, fell to below 10% in 2024.&lt;/p&gt;

&lt;p&gt;Code is no longer being refactored, it is only expanded.&lt;/p&gt;

&lt;p&gt;Same report: commits with duplicate code blocks spiked &lt;strong&gt;800%&lt;/strong&gt; in 2024. Roughly 6.66% of commits now carry substantial duplication, up from 1.8% in 2023.&lt;/p&gt;

&lt;p&gt;Yes, they do. If re-rolling is free, then why bother looking for the existing function? Just pull the lever, paste the fresh block and move on.&lt;/p&gt;

&lt;p&gt;Another study that is applicable to this context is the DORA report from Google in 2024 which showed that for each 25% increase in AI adoption, delivery stability decreased by 7.2%.&lt;/p&gt;

&lt;p&gt;The more you gamble, the more unsteady your financial situation becomes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part nobody wants to admit
&lt;/h2&gt;

&lt;p&gt;A March 2026 Multitudes study tracked over 500 developers. Engineers using AI tools showed a 19.6% jump in out-of-hour commits, nights and weekends.&lt;/p&gt;

&lt;p&gt;Read that one more time. The tool that was meant to free up your evenings is, in fact, tying you to the desk until late at night.&lt;/p&gt;

&lt;p&gt;That is not being productive. It is a casino where you cannot see outside and there are no clocks.&lt;/p&gt;

&lt;p&gt;I admit I've done it to our own product. It's 11pm, I've reprompted the same function six times, and I couldn't actually explain what the current version does.&lt;/p&gt;

&lt;p&gt;I did not have a vision.&lt;/p&gt;

&lt;p&gt;ThePrimeagen referred to much of this as "demo porn," but that term stuck because it was a fitting description.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I try to break the loop
&lt;/h2&gt;

&lt;p&gt;Not flawlessly. However, these are useful:&lt;/p&gt;

&lt;p&gt;→ Read the diff &lt;em&gt;before&lt;/em&gt; you decide it's wrong. If you can't say why it failed, you haven't earned a re-roll.&lt;/p&gt;

&lt;p&gt;→ Cap your pulls. Three tries, then you stop and think instead of spin.&lt;/p&gt;

&lt;p&gt;→ If you're re-prompting the same thing four times, the prompt isn't the problem. Your understanding is.&lt;/p&gt;

&lt;p&gt;→ Refactor on purpose. That "moved code" number falling off a cliff is a choice, not a law of physics.&lt;/p&gt;

&lt;p&gt;It's not about the tool, it's about the loop. Using a hammer doesn't prevent you from focusing on the nail, but this contraption actually does that.&lt;/p&gt;

&lt;p&gt;The solution is not to abandon AI. It is simply to keep our eyes open while pulling the lever.&lt;/p&gt;

&lt;p&gt;Come on, tell the truth, when was the last time you reposted something without reading it?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>discuss</category>
      <category>devlife</category>
    </item>
    <item>
      <title>The Staff engineer with 4 years of experience is a hiring problem we made</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Fri, 07 Aug 2026 10:17:54 +0000</pubDate>
      <link>https://dev.to/adioof/the-staff-engineer-with-4-years-of-experience-is-a-hiring-problem-we-made-52pa</link>
      <guid>https://dev.to/adioof/the-staff-engineer-with-4-years-of-experience-is-a-hiring-problem-we-made-52pa</guid>
      <description>&lt;p&gt;A hiring manager sparked outrage when they revealed that they automatically reject candidates with Staff or Principal titles who only have 3-4 years of experience. It became a hot topic of discussion on the internet.&lt;/p&gt;

&lt;p&gt;Half the replies called them a gatekeeper. The other half called it common sense.&lt;/p&gt;

&lt;p&gt;They're both missing the point.&lt;/p&gt;

&lt;h2&gt;
  
  
  The candidate didn't inflate anything
&lt;/h2&gt;

&lt;p&gt;A junior engineer doesn't just wake up one day and decide to call themselves a Staff Engineer. It's a title someone else has to give to them.&lt;/p&gt;

&lt;p&gt;It's often handed out by startup founders in lieu of a competitive salary.&lt;/p&gt;

&lt;p&gt;Datapeople analyzed millions of tech job postings from 2022. A quarter of roles that were "junior" in 2019, needing under 4 years of experience, got rebranded with "senior" titles by 2022.&lt;/p&gt;

&lt;p&gt;Ravio's numbers are even stronger. From 2019 to 2023, there were three times as many "Lead" early in career positions, and half as many "Junior".&lt;/p&gt;

&lt;p&gt;The role stayed the same despite the title change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Titles became a currency
&lt;/h2&gt;

&lt;p&gt;Here's the mechanism, said plainly.&lt;/p&gt;

&lt;p&gt;More than 400 organizations were surveyed by Pearl Meyer. 54% were actively using titles to attract talent, a 35% jump from 2018.&lt;/p&gt;

&lt;p&gt;Their managing director Susan Sandlund was frank in saying that "without big pay raises they have to give something to their key employees."&lt;/p&gt;

&lt;p&gt;That's the whole scam in one sentence.&lt;/p&gt;

&lt;p&gt;And employees are well aware of it. A MyPerfectResume survey revealed that 92% feel that businesses resort to exaggerated titles in order to pretend like "there is room for career advancement," all the while withholding potential pay increases.&lt;/p&gt;

&lt;p&gt;The most surprising statistic is that 15% of people actually confessed to accepting a &lt;em&gt;reduced&lt;/em&gt; salary in return for a fancier title.&lt;/p&gt;

&lt;p&gt;We exchanged currency for a term.&lt;/p&gt;

&lt;h2&gt;
  
  
  The word stopped meaning anything
&lt;/h2&gt;

&lt;p&gt;That's the reason an auto-reject seems unfair yet justifiable at the same time.&lt;/p&gt;

&lt;p&gt;A title once used to indicate the size of the scope you worked on. Now it signifies the size of the company you worked for.&lt;/p&gt;

&lt;p&gt;KORE1's market report hit the nail on the head when it said: "a staff engineer at a forty-person startup and a staff engineer at Google are not the same job, the same scope, or the same price." A staff title at a company that gives them away "tells you almost nothing about the person's actual scope."&lt;/p&gt;

&lt;p&gt;Therefore, the manager isn't rejecting the individual. They're rejecting a flawed message.&lt;/p&gt;

&lt;p&gt;However, dismissing the signal by discarding the candidate? That is not a diligent approach. The candidate is the one who suffers from the inflation, not the one causing it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Staff was supposed to mean
&lt;/h2&gt;

&lt;p&gt;Will Larson is the one who wrote a book about this and his definition is quite strict and straightforward.&lt;/p&gt;

&lt;p&gt;A Staff engineer is not a superior Senior engineer; it is a Senior engineer who has segued into one of the Staff roles.&lt;/p&gt;

&lt;p&gt;Scope. Influence. Not tenure, not a raise dodge.&lt;/p&gt;

&lt;p&gt;According to that standard, many "Staff" engineers working for a 40-person startup aren't really at the Staff level. Similarly, some engineers with only 3 years of experience are performing work at the Staff level because small teams require it.&lt;/p&gt;

&lt;p&gt;Having many years of experience is also not a valid measure. According to data from early 2026 provided by Levels.fyi, Staff and Principal level engineers with 5-7 years of experience were making between $700K-$900K. In contrast, some Seniors with 15 years of experience were making less than that.&lt;/p&gt;

&lt;p&gt;The market has changed and today seems to value experience above the "youthful energy" that many managers claim to seek.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part nobody wants to say
&lt;/h2&gt;

&lt;p&gt;Startups deliberately chose this approach, as it is more cost-effective to provide a printed title than to offer a salary at the experienced professional level.&lt;/p&gt;

&lt;p&gt;Index Ventures discovered that 30% of execs who were brought on board during the "first 10" phase of a startup were early power-mongers who had inflated their job titles and only had five years or less of work experience.&lt;/p&gt;

&lt;p&gt;But it only continues to work if the individual decides to switch jobs and that fancy title then turns into a downside.&lt;/p&gt;

&lt;p&gt;We gave people a paper crown and then feigned shock when their next employer refused to take it as payment.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;Please do not interpret titles as scope. Instead, consider them to be &lt;em&gt;context&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;One should inquire about what the individual in question actually owned. Ask about what they inspired. Ask about what fell apart in their absence. That's a 10 minute conversation, not an auto-reject filter.&lt;/p&gt;

&lt;p&gt;→ Title tells you the company's comp philosophy, not the candidate's skill&lt;br&gt;
→ YoE tells you almost nothing on its own&lt;br&gt;
→ Scope is the only thing worth screening for, and it takes real questions&lt;/p&gt;

&lt;p&gt;It's not the candidates who are at fault here. It's us - the entire industry - for transforming an actual job into a retention incentive.&lt;/p&gt;

&lt;p&gt;So my question to you is, if you were hiring tomorrow, would you screen out a 4-year Staff engineer on sight, or would you make them prove the scope? And do you know which one your ATS actually does?&lt;/p&gt;

</description>
      <category>career</category>
      <category>hiring</category>
      <category>culture</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Compliance-grade pentesting is a scan wearing a suit</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Thu, 06 Aug 2026 19:15:06 +0000</pubDate>
      <link>https://dev.to/adioof/compliance-grade-pentesting-is-a-scan-wearing-a-suit-2373</link>
      <guid>https://dev.to/adioof/compliance-grade-pentesting-is-a-scan-wearing-a-suit-2373</guid>
      <description>&lt;p&gt;You paid for a PDF document that was passed off as a penetration test.&lt;/p&gt;

&lt;p&gt;You spent money on a penetration test. All you received was an export from a scanning tool that had the consultant's logo on the report. 🎭&lt;/p&gt;

&lt;h2&gt;
  
  
  The suit doesn't fit
&lt;/h2&gt;

&lt;p&gt;Essendis hit the nail on the head in their 2026 pricing guide. They state the market is flooded with "cheap engagements that are a vulnerability scan wearing a suit."&lt;/p&gt;

&lt;p&gt;That line is stuck in my head. Because that's the one thing founders can actually purchase.&lt;/p&gt;

&lt;p&gt;Netragard raised a red flag on this: automated scans in pentest clothing. You push a button on the tool, push print on the report, and push the box on your checklist.&lt;/p&gt;

&lt;p&gt;Nobody actually tried to break in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the cheap thing keeps winning
&lt;/h2&gt;

&lt;p&gt;Here comes the part no one likes to talk about. They aren't the ones to blame for this.&lt;/p&gt;

&lt;p&gt;According to an analysis in January 2026 from Analogue Computer, the pentesting market is a "market for lemons," and "the market clears not at the price of risk reduction, but at the price of plausible deniability."&lt;/p&gt;

&lt;p&gt;Read that twice. Customers are not buying security, they are buying a checkmark on an audit document.&lt;/p&gt;

&lt;p&gt;In a more polished way, Lorikeet Security expressed the same idea in the beginning of 2026: "Compliance frameworks reward control presence over control effectiveness." An auditor inquires &lt;em&gt;do you perform penetration testing?&lt;/em&gt;, receives a report, and ticks the box.&lt;/p&gt;

&lt;p&gt;The vendor offering a scanner and PDF printer at a low price wins over the human chaining exploits.&lt;/p&gt;

&lt;h2&gt;
  
  
  What SOC 2 actually says (spoiler: not much)
&lt;/h2&gt;

&lt;p&gt;People often assume that SOC 2 requires a pentest but in reality, it doesn't.&lt;/p&gt;

&lt;p&gt;The AICPA's SOC 2 framework does not have the words "penetration test" in it. So, auditors have to rely on the coverage of Trust Services Criteria like CC7.1 in the case of detection and monitoring and CC4.1 in the case of monitoring activities and control evaluation.&lt;/p&gt;

&lt;p&gt;Theater sneaks in through that gap - if your architecture never requires adversary emulation, why would you pay for it?&lt;/p&gt;

&lt;p&gt;PCI DSS version 4.0 is the mature version to follow. Becoming fully mandatory in March 2025, it clearly separates vulnerability scanning (Requirement 11.3) from penetration testing (Requirement 11.4). Additionally, according to 11.4.4 of PCI DSS v4.0, any exploitable vulnerabilities must be corrected and then the testing must be repeated.&lt;/p&gt;

&lt;p&gt;The last word is crucial here. Retested implies that the change that fixed the problem had to be confirmed by someone to actually work. A scanner cannot do that.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to spot the scan in a suit
&lt;/h2&gt;

&lt;p&gt;Essendis provided potential purchasers with the clearest information I have ever come across:&lt;/p&gt;

&lt;p&gt;→ "A firm quoting sight-unseen is planning to run a scanner."&lt;br&gt;
→ If the report looks like a raw export with a logo slapped on, you overpaid for a scan.&lt;br&gt;
→ Real testing means manual business-logic probing, privilege escalation, chained exploits.&lt;/p&gt;

&lt;p&gt;The price itself can be a pretty good indicator. For example, a legitimate web app pentest in 2026 will cost you somewhere between $5,000 and $30,000. If the quote is well below that range and it shows up before anyone has even seen your application, then you probably have your answer.&lt;/p&gt;

&lt;p&gt;In February 2026, Linford &amp;amp; Co put out a manifesto, which they referred to as, "The Penetration Testing Mirage." In it, the firm stated, "running a commercial scanner and printing a PDF is not a penetration test... That is a commodity service that could be performed by an intern on their first day."&lt;/p&gt;

&lt;p&gt;Tough, but true.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;The problem isn't with the scanner. Scanners do their job well.&lt;/p&gt;

&lt;p&gt;The real villain here is deception. The real deception happens when machine-generated content is passed off as the work of a human adversary, and the client is willing to buy into the charade because the box only sees the costume.&lt;/p&gt;

&lt;p&gt;I understand the temptation. As a small team, when you're trying to finalize an enterprise deal, the cheapest option that satisfies the requirement seems like a victory. But one day, someone who doesn't just scan passes through your business logic and finds the door that you never tested. 😬&lt;/p&gt;

&lt;p&gt;Here's something to think about. If the market recognizes only plausible deniability, the solution is not more intelligent auditors. It's the buyers who should change their question from "did we pass?" to "did anyone really try to break in?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you last bought a "pentest," did you check whether a human touched it, or did you just file the PDF and move on?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>compliance</category>
      <category>culture</category>
      <category>discuss</category>
    </item>
    <item>
      <title>An AI chatbot invented a refund policy and a court made the company pay</title>
      <dc:creator>Aditya Agarwal</dc:creator>
      <pubDate>Thu, 06 Aug 2026 10:34:00 +0000</pubDate>
      <link>https://dev.to/adioof/an-ai-chatbot-invented-a-refund-policy-and-a-court-made-the-company-pay-2n2j</link>
      <guid>https://dev.to/adioof/an-ai-chatbot-invented-a-refund-policy-and-a-court-made-the-company-pay-2n2j</guid>
      <description>&lt;p&gt;When a chatbot promises you a discount that doesn't actually exist, who's responsible: the company or the bot? A court made the company pay it anyway.&lt;/p&gt;

&lt;p&gt;This is what should cause sleepless nights for your legal team. Not that an agent deleted a database, but that it made an unapproved promise. 😳&lt;/p&gt;

&lt;h2&gt;
  
  
  The story
&lt;/h2&gt;

&lt;p&gt;In November 2022, Jake Moffatt hastily reserved a flight from Vancouver to Toronto. His grandmother had recently passed away.&lt;/p&gt;

&lt;p&gt;He asked the chatbot about bereavement fares, and it told him he could book a full-price ticket immediately and then apply for a reduced bereavement rate refund within 90 days of the date the ticket was issued.&lt;/p&gt;

&lt;p&gt;No, that was not true. The airline's actual bereavement policy was different.&lt;/p&gt;

&lt;p&gt;Believing in the accuracy of the information provided by the chatbot, Moffatt went ahead and booked the flights, paying $1,630.36 CAD. He submitted the refund request with his grandmother's death certificate on November 17 but Air Canada rejected the claim.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ruling that changes things
&lt;/h2&gt;

&lt;p&gt;Moffatt lodged a claim with the British Columbia Civil Resolution Tribunal. His claim was successful.&lt;/p&gt;

&lt;p&gt;On February 14, 2024, Tribunal Member Christopher C. Rivers ruled entirely in his favor and found Air Canada guilty of negligent misrepresentation. The case is &lt;em&gt;Moffatt v. Air Canada&lt;/em&gt; (2024 BCCRT 149).&lt;/p&gt;

&lt;p&gt;Air Canada went even further by claiming that because a chatbot is not a legal person, it cannot be held responsible for a contract.&lt;/p&gt;

&lt;p&gt;Rivers described it as "a remarkable submission" and stated that "the chatbot is still just a part of Air Canada's website." Voilà!&lt;/p&gt;

&lt;p&gt;Air Canada was required by the tribunal to compensate Moffatt in the amount of $812.02 CAD, which consisted of $650.88 for the difference in the fares, $36.14 in interest before the judgement, and $125 tribunal fees.&lt;/p&gt;

&lt;p&gt;The fine was insignificant, but it set a huge precedent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this is the scary agent story
&lt;/h2&gt;

&lt;p&gt;All our fear reserve is dedicated to agents that perform actions. Agents that deploy code, delete data, or mistakenly send an email to 40,000 recipients.&lt;/p&gt;

&lt;p&gt;But that's not the point here. The point is the person who actually vocalizes things.&lt;/p&gt;

&lt;p&gt;Destroying something is like a noisy action. You notice the mistake, undo it, and then log an incident.&lt;/p&gt;

&lt;p&gt;A promise made under a hallucination is legally unenforceable. It seems like run-of-the-mill, good-natured assistance until a client drags you into court over it.&lt;/p&gt;

&lt;p&gt;Let's break down what was really going wrong with the Air Canada case. At its core, it was a context drift failure of Retrieval-Augmented Generation.&lt;/p&gt;

&lt;p&gt;→ The bot retrieved the correct policy document.&lt;br&gt;
→ It distorted the synthesis on the way out.&lt;br&gt;
→ The output sounded confident and specific.&lt;br&gt;
→ Nobody caught it because it wasn't an &lt;em&gt;error&lt;/em&gt;, it was a sentence.&lt;/p&gt;

&lt;p&gt;Exactly, that summarizes the issue. Your guardrails are there to look out for anomalies, not to catch a well-written incorrect paragraph.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd actually change
&lt;/h2&gt;

&lt;p&gt;If you are deploying a chatbot, do not think of it as a search bar. Treat it as a new employee that can sign contracts.&lt;/p&gt;

&lt;p&gt;That's because, according to the law, it is what was previously determined by a tribunal.&lt;/p&gt;

&lt;p&gt;Let me give you my perspective on this:&lt;/p&gt;

&lt;p&gt;→ Any statement about money, refunds, or entitlements needs a hard-coded template, not a generated one.&lt;br&gt;
→ Log every promise the bot makes, not just the errors it throws. The promises are the liability.&lt;br&gt;
→ Put a verification step between "retrieved the policy" and "told the customer." Context drift lives in that gap.&lt;br&gt;
→ Assume a customer will quote your bot back to you in a legal filing. Write your prompts like they will.&lt;/p&gt;

&lt;p&gt;I'm aware of the friction explanation. Canned responses are more noticeable and less natural than fluid replies.&lt;/p&gt;

&lt;p&gt;However, "fluent" is what ultimately cost Air Canada the lawsuit. The chatbot did not hesitate, it did not stutter, it spoke clearly and confidently about a policy that was not there.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;Credit for bringing this pattern to light belongs in part to Suresh Kumar Ariya Gowder, whose Medium post described the hallucinated bereavement discount as a promise problem not a bug problem.&lt;/p&gt;

&lt;p&gt;The most risky capability of your agent is not that it can take action. It is actually that it can give its word in a way that was never approved by your lawyers.&lt;/p&gt;

&lt;p&gt;This is a question for you: Would you be aware, before the customers, if your support bot assured them that they would receive something the next day that your policy clearly states they would not receive?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>legal</category>
      <category>chatbots</category>
      <category>opinion</category>
    </item>
  </channel>
</rss>
