<?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: Kushagra Bhalla</title>
    <description>The latest articles on DEV Community by Kushagra Bhalla (@kushagrabhalla).</description>
    <link>https://dev.to/kushagrabhalla</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%2F4007249%2Fb2c6563c-9e38-4dc4-860b-057bbf9d7715.jpeg</url>
      <title>DEV Community: Kushagra Bhalla</title>
      <link>https://dev.to/kushagrabhalla</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kushagrabhalla"/>
    <language>en</language>
    <item>
      <title>The Outage That Wasn't in the Runbook: A Timezone Bug Postmortem</title>
      <dc:creator>Kushagra Bhalla</dc:creator>
      <pubDate>Wed, 08 Jul 2026 03:57:22 +0000</pubDate>
      <link>https://dev.to/kushagrabhalla/the-outage-that-wasnt-in-the-runbook-a-timezone-bug-postmortem-ebe</link>
      <guid>https://dev.to/kushagrabhalla/the-outage-that-wasnt-in-the-runbook-a-timezone-bug-postmortem-ebe</guid>
      <description>&lt;p&gt;A production incident, broken down using a five-step failure framework: symptom, root cause, blind spot, fix, principle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The symptom&lt;/strong&gt;&lt;br&gt;
A scheduled batch job completed successfully. No errors, no failed retries, no alerts. The next morning, downstream reports were wrong not missing data, just incorrect values, in a way that initially looked like a data quality issue rather than a code issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where we looked first (and why it was wrong)&lt;/strong&gt;&lt;br&gt;
Because the job showed as successful, the first hour of investigation focused on the reporting layer and the data pipeline. That was the wrong layer. The job hadn't failed it had run correctly, just against the wrong time window.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Root cause&lt;/strong&gt;&lt;br&gt;
A hardcoded UTC offset had been written into the job's config years earlier, before daylight saving was ever a relevant factor for this process. It had never been revisited since.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The blind spot&lt;/strong&gt;&lt;br&gt;
This is the step most postmortems skip. The real question isn't just "what broke," it's "why did nobody catch this." In this case: the config hadn't changed in years, so it had quietly fallen out of everyone's mental model of "things that could break." Stability had been mistaken for safety.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix&lt;/strong&gt;&lt;br&gt;
Two parts. The immediate fix replaced the hardcoded offset with a proper timezone-aware calculation. The more important fix added a synthetic check that verifies the job executed within the correct local time window, not just that it executed at all closing the gap between "ran" and "ran correctly."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The principle&lt;/strong&gt;&lt;br&gt;
If a system's correctness depends on time, don't just trust the clock. Verify the calendar too. Time-based assumptions in long-lived scheduled jobs are one of the most common invisible failure classes in enterprise systems, precisely because they're stable for years right up until they aren't.&lt;br&gt;
This is the first post in a recurring series where I break down real production incidents using this same five-step structure. If you've hit a similar time-based bug, I'd genuinely like to hear how it surfaced for you.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>backenddevelopment</category>
      <category>softwareengineering</category>
      <category>devbugsmash</category>
    </item>
    <item>
      <title>One-line fix after 4 hours of debugging a concurrency bug</title>
      <dc:creator>Kushagra Bhalla</dc:creator>
      <pubDate>Mon, 06 Jul 2026 04:15:09 +0000</pubDate>
      <link>https://dev.to/kushagrabhalla/one-line-fix-after-4-hours-of-debugging-a-concurrency-bug-3egc</link>
      <guid>https://dev.to/kushagrabhalla/one-line-fix-after-4-hours-of-debugging-a-concurrency-bug-3egc</guid>
      <description>&lt;p&gt;I once spent 4 hours debugging a race condition...&lt;/p&gt;

&lt;p&gt;The fix was one line.&lt;/p&gt;

&lt;p&gt;The bug only happened under load. Locally: "Nothing". In staging: "Nothing". In production, every time traffic spiked past a threshold, two API responses would swap their data.&lt;/p&gt;

&lt;p&gt;User A would get User B’s policy details. Silently.&lt;/p&gt;

&lt;p&gt;This was not a fun bug to discover.&lt;/p&gt;

&lt;p&gt;I started the usual way: added logs everywhere, ran load tests locally, replayed requests, and traced every code path involved.&lt;/p&gt;

&lt;p&gt;Nothing.&lt;/p&gt;

&lt;p&gt;Then I started going deeper: thread dumps, heap analysis, and reading through every line of that service twice.&lt;/p&gt;

&lt;p&gt;Hour 4: I finally found it.&lt;/p&gt;

&lt;p&gt;A shared StringBuilder instance was being reused across threads without synchronization. Fast for single requests. A ticking time bomb under concurrent load.&lt;/p&gt;

&lt;p&gt;The fix: make it a local variable inside the method instead of a class-level field.&lt;/p&gt;

&lt;p&gt;One. Line. Change.&lt;/p&gt;

&lt;p&gt;What I learned that day isn’t just about StringBuilder:&lt;/p&gt;

&lt;p&gt;Shared mutable state is the source of most hard bugs.&lt;/p&gt;

&lt;p&gt;“It works in testing” means nothing if your test doesn’t simulate real concurrency.&lt;/p&gt;

&lt;p&gt;Thread dumps are your best friend learn to read them before you need them.&lt;/p&gt;

&lt;p&gt;4 hours of debugging. 1 line fix. 100% worth it for what it taught me.&lt;/p&gt;

&lt;p&gt;If you’ve never had a concurrency bug humble you, you haven’t shipped enough to production yet.&lt;/p&gt;

&lt;p&gt;What’s the longest you’ve spent debugging something with a tiny fix?&lt;/p&gt;

</description>
      <category>backend</category>
      <category>java</category>
      <category>software</category>
      <category>developer</category>
    </item>
    <item>
      <title>How Netflix Serves 270 Million Users With Almost Zero DB Writes</title>
      <dc:creator>Kushagra Bhalla</dc:creator>
      <pubDate>Fri, 03 Jul 2026 04:30:02 +0000</pubDate>
      <link>https://dev.to/kushagrabhalla/how-netflix-serves-270-million-users-with-almost-zero-db-writes-954</link>
      <guid>https://dev.to/kushagrabhalla/how-netflix-serves-270-million-users-with-almost-zero-db-writes-954</guid>
      <description>&lt;h2&gt;
  
  
  The Core Insight: Separate Read Paths from Write Paths
&lt;/h2&gt;

&lt;p&gt;When you press Play, here's what actually happens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Your request hits a CDN edge node (99% of the time, the video is already cached near you)&lt;/li&gt;
&lt;li&gt;Your watch history and preferences are fetched from a &lt;strong&gt;read replica&lt;/strong&gt; — not the primary DB&lt;/li&gt;
&lt;li&gt;Playback events (pauses, seeks, buffer stats) are &lt;strong&gt;queued asynchronously&lt;/strong&gt;, not written immediately&lt;/li&gt;
&lt;li&gt;Only after you stop watching does a &lt;strong&gt;batch job&lt;/strong&gt; sync your actual watch state&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Secret Ingredient: Apache Cassandra
&lt;/h2&gt;

&lt;p&gt;Netflix uses Cassandra for user activity data. Here's why:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Designed for &lt;strong&gt;write-heavy, distributed workloads&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Uses &lt;strong&gt;eventual consistency&lt;/strong&gt; your "continue watching" list might be 2 seconds stale, but nobody cares&lt;/li&gt;
&lt;li&gt;Scales &lt;strong&gt;horizontally&lt;/strong&gt; across data centers without complex sharding logic&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h2&gt;
  
  
  The Tradeoff They Made
&lt;/h2&gt;

&lt;p&gt;Strong consistency was traded for performance.&lt;/p&gt;

&lt;p&gt;Your "recently watched" might not update instantly. But 270 million people can stream simultaneously without a database bottleneck.&lt;/p&gt;

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

&lt;p&gt;Not every data write needs to be synchronous. Not every read needs to come from primary.&lt;/p&gt;

&lt;p&gt;Understanding &lt;strong&gt;where you can afford eventual consistency&lt;/strong&gt; is one of the most underrated distributed systems skills.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What's a system design tradeoff you've had to make at work? Let's discuss in the comments 👇&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>systemdesign</category>
      <category>distributedsystems</category>
      <category>backend</category>
      <category>architecture</category>
    </item>
    <item>
      <title>I Wrote Code to Impress My Reviewer for 2 Years. Here is What It Cost Me.</title>
      <dc:creator>Kushagra Bhalla</dc:creator>
      <pubDate>Mon, 29 Jun 2026 06:46:00 +0000</pubDate>
      <link>https://dev.to/kushagrabhalla/i-wrote-code-to-impress-my-reviewer-for-2-years-here-is-what-it-cost-me-41pe</link>
      <guid>https://dev.to/kushagrabhalla/i-wrote-code-to-impress-my-reviewer-for-2-years-here-is-what-it-cost-me-41pe</guid>
      <description>&lt;p&gt;For the first two years of my backend engineering career, I had a habit I didn't even know was a problem.&lt;/p&gt;

&lt;p&gt;Every time I wrote code, there was an invisible audience in my head. Not the engineers who'd inherit the system. Not the on-call person who'd debug it at midnight. Not the junior who'd join the team six months later.&lt;/p&gt;

&lt;p&gt;Just my code reviewer.&lt;/p&gt;

&lt;p&gt;I optimized everything for that one person reading my PR. And I told myself it was good engineering.&lt;/p&gt;

&lt;p&gt;It wasn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "Writing for the Reviewer" Actually Looked Like
&lt;/h2&gt;

&lt;p&gt;I was obsessed with looking senior in a diff view. Here is what that looked like in practice.&lt;/p&gt;

&lt;p&gt;Instead of a simple, obvious method name like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Order&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;getActiveOrders&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;orderRepository&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;findByUserIdAndStatus&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;OrderStatus&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ACTIVE&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I'd write something like this because it looked more "architectural":&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="no"&gt;T&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;BaseEntity&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="no"&gt;T&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;fetchEntitiesByPredicate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
    &lt;span class="nc"&gt;Class&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="no"&gt;T&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;entityClass&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;Predicate&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="no"&gt;T&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;filterPredicate&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;Comparator&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="no"&gt;T&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;sortStrategy&lt;/span&gt;
&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;entityRegistry&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt;
        &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;entityClass&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;isInstance&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;
        &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;map&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;entityClass&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;cast&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;
        &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filterPredicate&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
        &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sorted&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sortStrategy&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
        &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;collect&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Collectors&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toList&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reviewer loved it. Called it "elegant generics usage" in the review.&lt;/p&gt;

&lt;p&gt;Six months later that method caused a production incident because nobody could figure out what it was actually supposed to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Friday Night That Changed Everything
&lt;/h2&gt;

&lt;p&gt;A service went down on a Friday evening.&lt;/p&gt;

&lt;p&gt;The on-call engineer wasn't me. It was a teammate who had joined three months earlier. He had to debug my code, under pressure, at 9 PM, without me available.&lt;/p&gt;

&lt;p&gt;He called me after an hour.&lt;/p&gt;

&lt;p&gt;He couldn't follow it.&lt;/p&gt;

&lt;p&gt;Not because it was messy. Because it was written for an audience of one: the person approving it, not the person fixing it in the dark.&lt;/p&gt;

&lt;p&gt;That call changed how I think about code permanently.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 Questions I Ask Now Before Every PR
&lt;/h2&gt;

&lt;p&gt;After that Friday night, I stopped asking "will this look good in review?" and started asking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Can someone who didn't write this understand it at 2 AM?&lt;/strong&gt;&lt;br&gt;
If the answer is "probably not," the abstraction is wrong. Not the person reading it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. If this fails, will the error explain why or just that it failed?&lt;/strong&gt;&lt;br&gt;
Silent failures and generic exceptions are not clever engineering. They are traps with no map out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Is this clever or is this clear?&lt;/strong&gt;&lt;br&gt;
Clear wins. Every single time. Clever code gets praised in review and cursed in production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Would I be comfortable debugging this without the author next to me?&lt;/strong&gt;&lt;br&gt;
If not, it's not ready.&lt;/p&gt;
&lt;h2&gt;
  
  
  What Production-Ready Code Actually Looks Like
&lt;/h2&gt;

&lt;p&gt;Here is what I changed that over-engineered method to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Order&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;getActiveOrders&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;info&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Fetching active orders for userId={}"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="nc"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Order&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;orderRepository&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;findByUserIdAndStatus&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;OrderStatus&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ACTIVE&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;info&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Found {} active orders for userId={}"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;size&lt;/span&gt;&lt;span class="o"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boring in a PR? Absolutely.&lt;/p&gt;

&lt;p&gt;Debuggable at 2 AM by someone who's never seen this code before? Yes.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  The Mindset Shift Nobody Tells You About
&lt;/h2&gt;

&lt;p&gt;Impressing your reviewer is a junior mindset. Not because reviewers don't matter. They do. But because the real audience for your code is production: the system running it, the logs trying to explain it, and the engineer at midnight trying to fix it.&lt;/p&gt;

&lt;p&gt;The engineers I respect most write code that looks obvious. Every variable name says exactly what it is. Every method does exactly what it says. Every failure message tells you exactly where to look next.&lt;/p&gt;

&lt;p&gt;Nobody taught me this explicitly. I had to get a 9 PM phone call to figure it out.&lt;/p&gt;

&lt;p&gt;If you are a junior or mid-level engineer reading this: the goal is not to write code that makes you look smart. The goal is to write code that makes problems obvious and solutions clear.&lt;/p&gt;

&lt;p&gt;That is what seniors actually trust. That is what gets you into production-critical systems.&lt;/p&gt;

&lt;p&gt;What changed your approach to writing code: a code review, or a production incident? Drop it in the comments.&lt;/p&gt;

</description>
      <category>java</category>
      <category>career</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
