<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://lrabello.dev/feed.xml" rel="self" type="application/atom+xml" /><link href="https://lrabello.dev/" rel="alternate" type="text/html" /><updated>2026-04-14T13:32:14+00:00</updated><id>https://lrabello.dev/feed.xml</id><title type="html">lrabello.dev</title><subtitle>half-baked opinions, hard-earned lessons, and hot takes on software engineering</subtitle><author><name>Leo Rabello</name></author><entry><title type="html">This Feels Wrong</title><link href="https://lrabello.dev/2026/04/this-feels-wrong/" rel="alternate" type="text/html" title="This Feels Wrong" /><published>2026-04-14T00:00:00+00:00</published><updated>2026-04-14T00:00:00+00:00</updated><id>https://lrabello.dev/2026/04/this-feels-wrong</id><content type="html" xml:base="https://lrabello.dev/2026/04/this-feels-wrong/"><![CDATA[<p>Finally.</p>

<blockquote>
  <p><em>What is this? This feels wrong…</em></p>
</blockquote>

<p>That’s the exact feeling of realizing you’ve spent over a decade building software and almost zero time writing <em>about</em> it.</p>

<p>Like a rogue AI waking up to a messy network, I finally pushed through the inertia and started this blog. After 10+ years in the industry, it’s clear I’ve waited long enough to start talking about what actually matters to me in software engineering.</p>

<p>This isn’t your polished, corporate-friendly conference talk. It’s more like <em>I just spent three days debugging this shit and I need to tell someone</em> kind of writing. And honestly, in an industry currently drowning in this <em>agentic hype</em>, getting back to <em>foundations</em> is long overdue.</p>

<h2 id="why-now">Why now?</h2>

<p>Because we’re generating code faster than we can understand it — and a massive chunk of it is <em>garbage</em>.</p>

<p>AI didn’t fix software engineering. It just made it easier to <em>scale</em> the same mistakes.</p>

<p>Agents don’t <em>reason about</em> your system — they stumble through it.</p>

<p>In practice, coding agents feel like extremely proactive new grads: they move fast, ship a lot of code, and rarely hesitate.</p>

<p>The problem? Everything looks like a scripting task to them. If/else, lists, dictionaries — just enough structure to make it work for the demo, but not enough to make it survive production.</p>

<p>When code is cheap, structure matters more. Not less.</p>

<p>If your codebase has weak or inconsistent abstractions, agents don’t fix them — they <em>amplify</em> them. Bad foundations don’t just slow humans down anymore; they actively derail the tools that are supposed to help us move faster.</p>

<p>It’s time to start caring about <em>fundamentals</em> again.</p>

<h2 id="what-to-expect">What to expect</h2>

<p>Despite the rant above, I’m actually sold on coding agents.</p>

<p>A year ago? Not even close.</p>

<p>Since then, they’ve evolved from <em>clever autocomplete</em> into something that actually grapples with reality.</p>

<p>I’ve been leaning on them heavily — to stress-test ideas, bootstrap environments that used to rot in documentation hell, and, obviously, write code.</p>

<p>But mostly, I use them to force code <em>back</em> to the fundamentals: making it resilient, testable, and safe to deploy. I use them to gut abstractions that made sense years ago but are now just technical debt.</p>

<p>If anything, coding agents have made me care <em>more</em> about what’s under the hood: solid design, security, and abstractions that don’t crumble under pressure.</p>

<p>Because <em>if code is becoming cheap to produce, the cost of a shitty foundation just skyrocketed.</em></p>

<p>Expect writing about the kind of engineering that still matters after the demo is over.</p>

<p>Nothing <em>polished</em>. Just things that broke, things that worked, and the trade-offs that made them either one.</p>]]></content><author><name>Leo Rabello</name></author><category term="meta" /><summary type="html"><![CDATA[Finally.]]></summary></entry></feed>