<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Engineering on sbgrl.me</title><link>https://sbgrl.me/tags/engineering/</link><description>Recent content in Engineering on sbgrl.me</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>sylvain.bougerel@gmail.com (Sylvain Bougerel)</managingEditor><webMaster>sylvain.bougerel@gmail.com (Sylvain Bougerel)</webMaster><copyright>© 2026 Sylvain Bougerel</copyright><lastBuildDate>Fri, 01 May 2026 10:01:00 +0800</lastBuildDate><atom:link href="https://sbgrl.me/tags/engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>Why I continue to review code</title><link>https://sbgrl.me/posts/why-i-continue-to-review-code/</link><pubDate>Fri, 01 May 2026 10:01:00 +0800</pubDate><author>sylvain.bougerel@gmail.com (Sylvain Bougerel)</author><guid>https://sbgrl.me/posts/why-i-continue-to-review-code/</guid><description>&lt;p&gt;Given the increase in velocity from coding assistants such as Claude Code and Copilot, automated review had become a necessity. Since we rolled out &lt;a href="https://coderabbit.ai" target="_blank" rel="noreferrer"&gt;Coderabbit&lt;/a&gt; on our project, almost everybody stopped reviewing code. It didn&amp;rsquo;t happen immediately, but organically.&lt;/p&gt;
&lt;p&gt;As it turns out, Coderabbit is a formidable reviewer: with only a bit of context in the commit messages and a well-written &lt;code&gt;AGENTS.md&lt;/code&gt;, Coderabbit will often be more thorough in reviews than most of my colleagues. And if that wasn&amp;rsquo;t enough, Coderabbit is almost always available—&lt;a href="https://status.coderabbit.ai/" target="_blank" rel="noreferrer"&gt;98.3% of the time in the last 30 days&lt;/a&gt;, not good for typical SLA targets but much better than colleagues—and a fraction of their cost.&lt;/p&gt;
&lt;p&gt;Eventually everybody stopped reviewing code&amp;hellip; Save for me.&lt;/p&gt;
&lt;p&gt;For one thing, coding assistants can hallucinate blunders that neither humans—regrettably—nor Coderabbit will catch:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;NON_EDITABLE_BOOKING_STATUSES&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Set&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;cancelled&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;canceled&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;declined&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;withdrawn&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;I took that snippet from a merge request submitted yesterday. We do not have any &lt;code&gt;declined&lt;/code&gt; or &lt;code&gt;canceled&lt;/code&gt; statuses in our entire domain model—they simply don&amp;rsquo;t exist. I chose this example because it&amp;rsquo;s one of the simplest. The day before, a merge request had a complete re-implementation of a 200+ lines utility we already had. This happens all the time.&lt;/p&gt;
&lt;p&gt;But most importantly, if the phone rings because of an issue on the system, &lt;strong&gt;I&lt;/strong&gt; need to get on the call and fix the issue. When my work has potential to impact my personal life and my weekends with family, there&amp;rsquo;s no AI that I will trust enough. And every alert, whether it fires on the job or not, still costs the whole team velocity when we scramble for unplanned work.&lt;/p&gt;
&lt;p&gt;Ultimately, our customers don&amp;rsquo;t care who wrote the code: &amp;ldquo;We&amp;rsquo;re sorry, Claude wrote that line and Coderabbit didn&amp;rsquo;t catch the problem&amp;rdquo; is not a good look. No matter how powerful our tools have become, responsibility is still mine. So I&amp;rsquo;ll keep on reviewing code.&lt;/p&gt;</description></item><item><title>AI exacerbated the divide between engineers</title><link>https://sbgrl.me/posts/ai-exacerbated-the-divide-between-engineers/</link><pubDate>Sat, 25 Apr 2026 22:12:00 +0800</pubDate><author>sylvain.bougerel@gmail.com (Sylvain Bougerel)</author><guid>https://sbgrl.me/posts/ai-exacerbated-the-divide-between-engineers/</guid><description>&lt;p&gt;Any complex product requires deep context about the product&amp;rsquo;s domains, architecture, implementation. And if you want to make effective use of AI to solve a problem, you need to inject the right subset of that entire context into the prompt, or that smart auto-complete will spit out costly nonsense.&lt;/p&gt;
&lt;p&gt;Naturally, engineers with the best understanding of the context, the capacity to articulate the problem and the skills to implement it are even stronger with AI: they can provide better input to the model and quickly validate its output. The once derided 10x engineer is starting to become a reality for anyone who can use AI to implement a correct solution at a fraction of the time it would have taken them.&lt;/p&gt;
&lt;p&gt;On the other end of the spectrum, weaker engineers are now compelled to keep up with the pace set by their stronger peers, only they can neither prompt the LLM effectively nor validate what it produces. So they just let the garbage out—knowingly or not.&lt;/p&gt;
&lt;p&gt;If you feel like you&amp;rsquo;ve become a &amp;ldquo;man-in-the-middle&amp;rdquo;—a proxy between somebody else&amp;rsquo;s request and an LLM—you will be phased out. The great engineers of today learned the ropes at a time AI didn&amp;rsquo;t exist, when they could invest in their fundamentals. Give yourself the same gift: carve out time to use less AI, and start learning again so you can close the divide.&lt;/p&gt;</description></item></channel></rss>