<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software Engineering on Sumner Evans</title><link>https://sumnerevans.com/tags/software-engineering/</link><description>Recent content in Software Engineering on Sumner Evans</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 15 Oct 2026 12:05:24 -0600</lastBuildDate><atom:link href="https://sumnerevans.com/tags/software-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>How I Want to Use AI</title><link>https://sumnerevans.com/posts/software-engineering/sgil/</link><pubDate>Fri, 25 Sep 2026 06:25:00 -0600</pubDate><guid>https://sumnerevans.com/posts/software-engineering/sgil/</guid><description>&lt;div class="admonition abstract"&gt;&#10; &lt;div class="admonition-header"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"&gt;&lt;path d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/&gt;&lt;/svg&gt;&#10; &lt;span&gt;TL;DR&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="admonition-content"&gt;&#10; &lt;p&gt;The chat-based workflow encouraged by existing AI harnesses results in a&#10;fragmented source of truth for the desired functionality of the software.&lt;/p&gt;&#10;&lt;p&gt;To centralise the source of truth, we should use Markdown as Source (MaS). We&#10;should adopt a Specify, Generate, Inspect, Loop (SGIL) workflow which puts&#10;human-written Markdown files stored in source control front-and-centre.&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/div&gt;&lt;h2 id="my-current-ai-workflow"&gt;&#10; My Current AI Workflow&#10; &lt;a&#10; class="permalink"&#10; href="#my-current-ai-workflow"&#10; aria-label="Permalink to My Current AI Workflow"&#10; &gt;&lt;!--&#10;tags: [zoom-filled, link, url, connection, hyperlink, reference, attach, join, typography, writing]&#10;category: Text&#10;version: "1.0"&#10;unicode: "eade"&#10;--&gt;&#10;&lt;svg aria-hidden="true" class="hi-svg-inline" fill="none" height="1em" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"&gt;&#10; &lt;path d="M9 15l6 -6" /&gt;&#10; &lt;path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464" /&gt;&#10; &lt;path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;I &lt;em&gt;hate&lt;/em&gt; my AI workflow. I don&amp;rsquo;t know how everyone else is using AI, but&#10;currently my workflow looks something like:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Open Claude and type a chat message indicating what I want it to do.&lt;/li&gt;&#10;&lt;li&gt;Look at the code or plans it generates and test the functionality of the code&#10;it produced.&lt;/li&gt;&#10;&lt;li&gt;Type a chat message clarifying my ask or correcting the AI&amp;rsquo;s assumptions.&#10;Normally this involves telling it what I dislike about the code it generated.&lt;/li&gt;&#10;&lt;li&gt;Go to 2.&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>Stop Using Conventional Commits</title><link>https://sumnerevans.com/posts/software-engineering/stop-using-conventional-commits/</link><pubDate>Tue, 02 Jun 2026 06:25:00 -0600</pubDate><guid>https://sumnerevans.com/posts/software-engineering/stop-using-conventional-commits/</guid><description>&lt;p&gt;You&amp;rsquo;ve almost certainly encountered&#10;&lt;a&#10; href="https://www.conventionalcommits.org/en/v1.0.0/"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;Conventional Commits&lt;/a&gt; before.&#10;It may have reared its ugly head in the changelog of an open source project&#10;you&amp;rsquo;ve used. It may have been the enforced commit format for an open source&#10;project you contributed to. A lot of people swear by it. I swear &lt;em&gt;at&lt;/em&gt; it.&lt;/p&gt;&#10;&lt;p&gt;Even though it is used by&#10;&lt;a&#10; href="https://github.com/angular/angular/blob/main/contributing-docs/commit-message-guidelines.md"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;a&lt;/a&gt;&#10;&lt;a&#10; href="https://electronjs.org/docs/development/pull-requests#commit-message-guidelines"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;large&lt;/a&gt;&#10;&lt;a&#10; href="https://contribute.freecodecamp.org/how-to-open-a-pull-request/#prepare-a-good-pr-title"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;number&lt;/a&gt;&#10;&lt;a&#10; href="https://jayex.io/community/code/#the-commit-message"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;of&lt;/a&gt;&#10;&lt;a&#10; href="https://github.com/conventional-changelog/commitlint/blob/master/.github/CONTRIBUTING.md"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;popular&lt;/a&gt;&#10;&lt;a&#10; href="https://github.com/semantic-release/semantic-release/blob/master/CONTRIBUTING.md#commit-message-format"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;open&lt;/a&gt;&#10;&lt;a&#10; href="https://github.com/nuxt/nuxt/blob/main/CONTRIBUTING.md#commit-conventions"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;source&lt;/a&gt;&#10;&lt;a&#10; href="https://github.com/vitejs/vite/blob/main/.github/commit-convention.md"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;projects&lt;/a&gt;,&#10;Conventional Commits is an actively bad standard which&#10;&lt;strong&gt;&lt;a&#10; href="#focus-failure"&gt;encourages focus on the wrong things&lt;/a&gt; and&#10;&lt;a&#10; href="#broken-promises"&gt;fails to deliver on its promises&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Three Resume Tips</title><link>https://sumnerevans.com/posts/software-engineering/resume-tips/</link><pubDate>Thu, 07 May 2026 06:25:00 -0600</pubDate><guid>https://sumnerevans.com/posts/software-engineering/resume-tips/</guid><description>&lt;p&gt;I have been asked a few times to review student resumes and in my&#10;&lt;a&#10; href="https://sumnerevans.com/portfolio/#experience-canam-tech-lead"&gt;current position&lt;/a&gt;&#10;I review quite a few resumes of potential candidates.&lt;/p&gt;&#10;&lt;p&gt;I think a lot of resume advice out there is tied to formatting, presentation,&#10;and writing style. While all of that is important, I think that it&amp;rsquo;s been&#10;well-adjudicated.&lt;/p&gt;&#10;&lt;p&gt;In this article, I would like discuss the &lt;em&gt;content&lt;/em&gt; of your resume. I&amp;rsquo;m going to&#10;describe three rules that I made up to guide your resume&amp;rsquo;s content.&lt;/p&gt;</description></item><item><title>Building a Software Career in an LLM World</title><link>https://sumnerevans.com/posts/software-engineering/building-swe-career-in-llm-world/</link><pubDate>Tue, 02 Sep 2025 06:25:00 -0600</pubDate><guid>https://sumnerevans.com/posts/software-engineering/building-swe-career-in-llm-world/</guid><description>&lt;div class="admonition abstract"&gt;&#10; &lt;div class="admonition-header"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"&gt;&lt;path d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/&gt;&lt;/svg&gt;&#10; &lt;span&gt;TL;DR&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="admonition-content"&gt;&#10; &lt;p&gt;Getting an entry-level software &lt;em&gt;job&lt;/em&gt; is harder now than at any time in at&#10;least the last decade.&lt;/p&gt;&#10;&lt;p&gt;Building a &lt;em&gt;career&lt;/em&gt; in software is (and always has been) hard, but highly&#10;rewarding if you succeed.&lt;/p&gt;&#10;&lt;p&gt;The key is to take &lt;strong&gt;ownership&lt;/strong&gt; of both your work and your career trajectory.&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/div&gt;&lt;p&gt;In this article, I am going to discuss how to build a career in the software&#10;industry. We will explore &lt;a&#10; href="#career-tracks"&gt;career tracks&lt;/a&gt;, and discuss the&#10;&lt;a&#10; href="#making-senior-software-engineer-and-beyond"&gt;attributes needed to&#10;become a senior software engineer&lt;/a&gt;.&#10;Then I will provide my view of&#10;&lt;a&#10; href="#how-llms-affect-career-tracks"&gt;how LLMs will affect the software engineering&#10;industry and job market&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Vibe Coding Doesn't Require LLMs</title><link>https://sumnerevans.com/posts/software-engineering/vibe-coding-doesnt-require-llms/</link><pubDate>Sun, 10 Aug 2025 06:25:00 -0600</pubDate><guid>https://sumnerevans.com/posts/software-engineering/vibe-coding-doesnt-require-llms/</guid><description>&lt;p&gt;I recently read&#10;&lt;a&#10; href="https://alexkondov.com/i-know-when-youre-vibe-coding/"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;&lt;em&gt;I Know When You&amp;rsquo;re Vibe Coding&lt;/em&gt;&lt;/a&gt;&#10;by &lt;a&#10; href="https://alexkondov.com/"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;Alex Kondov&lt;/a&gt; in which he described certain&#10;characteristic &amp;ldquo;smells&amp;rdquo; of vibe-coded software. For example, he points to LLMs&#10;proclivity to pave their own path and go against established patterns within a&#10;project.&lt;/p&gt;&#10;&lt;p&gt;The article resonated with me, but I realized that it resonated with me at a&#10;deeper level than just explaining my interactions with LLM-written software. I&#10;realized that &lt;em&gt;I&amp;rsquo;ve seen these &amp;ldquo;smells&amp;rdquo; before in pre-LLM software (especially&#10;that written by students).&lt;/em&gt;&lt;/p&gt;</description></item><item><title>7 Things I've Learned After 7 Years as a Software Engineer</title><link>https://sumnerevans.com/posts/software-engineering/7-things-ive-learned-in-7-years-as-swe/</link><pubDate>Sun, 06 Jul 2025 06:25:00 -0600</pubDate><guid>https://sumnerevans.com/posts/software-engineering/7-things-ive-learned-in-7-years-as-swe/</guid><description>&lt;p&gt;A few months ago, I was asked to give the keynote address at the BlasterHacks&#10;hackathon hosted at Mines by their &lt;a&#10; href="https://acm.mines.edu/"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;ACM&lt;/a&gt; chapter. I&#10;wasn&amp;rsquo;t quite sure what would be interesting to talk about for the keynote, so I&#10;asked some friends. &lt;a&#10; href="https://byronsharman.com/"&#10; title="(opens in new tab)"&#10; rel="external" target="_blank"&#10; &gt;Byron&lt;/a&gt; suggested that I either&#10;talk about hackathon advice or career advice. Since I was giving a hackathon&#10;keynote, I decided to focus my presentation on hackathon advice. I went to six&#10;hackathons while I was a student at Mines, and won prizes at all but one of them&#10;so I felt I had something interesting to say about the topic.&lt;/p&gt;</description></item><item><title>What Happens After You Push?</title><link>https://sumnerevans.com/posts/software-engineering/what-happens-after-you-push/</link><pubDate>Tue, 25 Feb 2025 06:25:00 -0600</pubDate><guid>https://sumnerevans.com/posts/software-engineering/what-happens-after-you-push/</guid><description>&lt;p&gt;In this article we are going to be investigating how the code you write gets to&#10;your users. This article is intended for consumption by computer science and&#10;software engineering students to provide insights into technologies and&#10;processes you might encounter in industry. This will be focused specifically on&#10;software delivery in web-based SaaS offerings rather than more traditional&#10;software delivery methods such as those seen in embedded systems. Every software&#10;project has different process for building, testing, and deploying to users and&#10;I&amp;rsquo;m not going to discuss every possible technology which might be used for each&#10;of these steps. Rather, I&amp;rsquo;m going to be describing what &lt;em&gt;kinds&lt;/em&gt; of software&#10;might be used. I&amp;rsquo;ll describe how these systems affect the day-to-day work of&#10;software engineers, and I&amp;rsquo;ll also provide some thoughts on how you might&#10;integrate some of these ideas into your own personal projects.&lt;/p&gt;</description></item><item><title>Is Getting A Master's Degree in Computer Science Worth It?</title><link>https://sumnerevans.com/posts/school/is-getting-a-masters-in-cs-worth-it/</link><pubDate>Mon, 26 Feb 2024 06:37:50 -0600</pubDate><guid>https://sumnerevans.com/posts/school/is-getting-a-masters-in-cs-worth-it/</guid><description>&lt;p&gt;&amp;ldquo;Master of Science in Computer Science&amp;rdquo;, it sounds so grand, doesn&amp;rsquo;t it? But is&#10;it worth it? I&amp;rsquo;m writing this post to give my perspective on whether getting a&#10;master&amp;rsquo;s degree is worth the effort and money. I&amp;rsquo;m assuming that you are&#10;&lt;em&gt;currently in a computer science undergraduate program&lt;/em&gt; and are considering&#10;whether to continue on to get a computer science master&amp;rsquo;s degree. &lt;strong&gt;I want to be&#10;very clear, this post is my opinion only.&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>