<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Software Engineering on Grizzlebit</title>
  <subtitle>Ray Grasso's Blog</subtitle>
  <updated>2026-06-13T10:58:27.452598+08:00</updated>
  <id>https://www.grizzlebit.com/tags/software-engineering/feed.xml</id>
  <link rel="alternate" type="text/html" href="https://www.grizzlebit.com/tags/software-engineering/"/>
  <link rel="self" type="application/atom+xml" href="https://www.grizzlebit.com/tags/software-engineering/feed.xml"/>
  <rights>Copyright © 2026, Ray Grasso</rights>
  <author>
    <name>Ray Grasso</name>
  </author>
  <icon>https://www.grizzlebit.com/images/icon.png</icon>
  <logo>https://www.grizzlebit.com/images/icon.png</logo>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2025/11-11-knowledge-creates-technical-debt/</id>
    <published>2025-11-11T19:35:08+08:00</published>
    <updated>2025-11-11T19:36:27+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>Knowledge Creates Technical Debt ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Luke Plant:</p>
<blockquote>
<p>The “pile of technical debt” is essentially a pile of knowledge – everything we now think is bad about the code represents what we’ve learned about how to do software better. The gap between what it is and what it should be is the gap between what we used to know and what we now know.</p></blockquote>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2025/11-11-knowledge-creates-technical-debt/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://lukeplant.me.uk/blog/posts/knowledge-creates-technical-debt/"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2025/11-11-knowledge-creates-technical-debt/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2025/09-17-seeing-like-a-software-company/</id>
    <published>2025-09-17T08:50:49+08:00</published>
    <updated>2025-09-17T08:52:31+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>Seeing Like a Software Company ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Sean Goedecke:</p>
<blockquote>
<p>This is why tiny software companies are often much better than large software companies at delivering software: it doesn’t matter that the large company is throwing ten times the number of engineers at the problem if the small company is twenty times more efficient.</p>
<p>Why don’t large companies react to this by doing away with all of their processes? Are they stupid? No. The processes that slow engineers down are the same processes that make their work legible to the rest of the company. And that legibility (in dollar terms) is more valuable than being able to produce software more efficiently.</p></blockquote>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2025/09-17-seeing-like-a-software-company/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>, <a href="https://www.grizzlebit.com/tags/work-culture/">Work Culture</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://www.seangoedecke.com/seeing-like-a-software-company/"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2025/09-17-seeing-like-a-software-company/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2025/05-20-how-swifts-server-support-powers-things-cloud/</id>
    <published>2025-05-20T11:01:28+08:00</published>
    <updated>2025-05-20T11:03:19+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>How Swift&#39;s Server Support Powers Things Cloud ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Vojtěch Rylko and Werner Jainek:</p>
<blockquote>
<p>Our legacy Things Cloud service was built on Python 2 and Google App Engine. While it was stable, it suffered from a growing list of limitations. In particular, slow response times impacted the user experience, high memory usage drove up infrastructure costs, and Python’s lack of static typing made every change risky. For our push notification system to be fast, we even had to develop a custom C-based service. As these issues accumulated and several deprecations loomed, we realized we needed a change.</p></blockquote>
<p>They chose to rewrite using Swift on the server.</p>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2025/05-20-how-swifts-server-support-powers-things-cloud/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://www.swift.org/blog/how-swifts-server-support-powers-things-cloud/"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2025/05-20-how-swifts-server-support-powers-things-cloud/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2025/03-13-how-core-git-developers-configure-git/</id>
    <published>2025-03-13T12:16:22+08:00</published>
    <updated>2025-03-13T12:17:02+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>How Core Git Developers Configure Git ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Some nice tips in this.</p>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2025/03-13-how-core-git-developers-configure-git/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>, <a href="https://www.grizzlebit.com/tags/tools/">Tools</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://blog.gitbutler.com/how-git-core-devs-configure-git/"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2025/03-13-how-core-git-developers-configure-git/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2025/03-13-a-practitioners-guide-to-wide-events/</id>
    <published>2025-03-13T12:12:44+08:00</published>
    <updated>2025-03-13T12:15:39+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>A Practitioner&#39;s Guide to Wide Events ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Jeremy Morrell:</p>
<blockquote>
<p>Adopting Wide Event-style instrumentation has been one of the highest-leverage changes I’ve made in my engineering career. The feedback loop on all my changes tightened and debugging systems became so much easier. Systems that were scary to work on suddenly seemed a lot more manageable.</p></blockquote>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2025/03-13-a-practitioners-guide-to-wide-events/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://jeremymorrell.dev/blog/a-practitioners-guide-to-wide-events/"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2025/03-13-a-practitioners-guide-to-wide-events/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2024/10-07-scaling-the-linear-sync-engine/</id>
    <published>2024-10-07T19:51:24+10:00</published>
    <updated>2024-10-07T19:56:21+10:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>Scaling the Linear Sync Engine ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Fascinating deep dive into hitting and overcoming the scaling issues affecting the sync engine <a href="https://linear.app/blog/scaling-the-linear-sync-engine">Linear</a> built.</p>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2024/10-07-scaling-the-linear-sync-engine/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-design/">Software Design</a>, <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://www.youtube.com/watch?v=Wo2m3jaJixU"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2024/10-07-scaling-the-linear-sync-engine/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2022/09-11-the-greg-pass-strategy-for-getting-unstuck/</id>
    <published>2022-09-11T19:58:59+08:00</published>
    <updated>2024-11-04T09:50:52+10:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>The Greg Pass Strategy for Getting Unstuck ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Tony Stubblebine:</p>
<blockquote>
<p>Many things at Twitter were broken to the point that they could bring the entire site to a halt. Greg’s strategy, now distorted through multiple retellings and my own foggy memory, was to focus on short-term triage rather than long-term fixes.</p>
<p>Essentially, he realized that a collection of temporary, duct-taped fixes was the only thing that would give the Twitter team the breathing room to start working on longer-term fixes.</p>
<p>I think of this in school grade terms. Greg went looking for all the Fs and then turned them into Ds. Then he turned all the Ds into Cs and then all the Cs into Bs, etc.</p></blockquote>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2022/09-11-the-greg-pass-strategy-for-getting-unstuck/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/processes/">Processes</a>, <a href="https://www.grizzlebit.com/tags/productivity/">Productivity</a>, <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://betterhumans.pub/the-greg-pass-strategy-for-getting-unstuck-7f7d0e75be5d"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2022/09-11-the-greg-pass-strategy-for-getting-unstuck/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2022/08-07-evaluating-team-members-contributions-to-a-maintainable-code-base/</id>
    <published>2022-08-07T20:28:45+08:00</published>
    <updated>2022-08-07T20:28:45+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>Evaluating Team Members’ Contributions to a Maintainable Code Base ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Skills that lead to good code stewardship.</p>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2022/08-07-evaluating-team-members-contributions-to-a-maintainable-code-base/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/management/">Management</a>, <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://chelseatroy.com/2021/10/29/a-rubric-for-evaluating-team-members-contributions-to-a-maintainable-code-base/"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2022/08-07-evaluating-team-members-contributions-to-a-maintainable-code-base/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2022/05-13-agile-and-the-long-crisis-of-software/</id>
    <published>2022-05-13T20:05:13+08:00</published>
    <updated>2023-03-21T19:47:59+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>Agile and the Long Crisis of Software ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Miriam Posner:</p>
<blockquote>
<p>You could say, then, that by the late 1960s, software development was facing three crises: a crying need for more programmers; an imperative to wrangle development into something more predictable; and, as businesses saw it, a managerial necessity to get developers to stop acting so <em>weird</em>.</p></blockquote>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2022/05-13-agile-and-the-long-crisis-of-software/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://logicmag.io/clouds/agile-and-the-long-crisis-of-software/"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2022/05-13-agile-and-the-long-crisis-of-software/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2022/03-29-cupidfor-joyful-coding/</id>
    <published>2022-03-29T11:34:40+08:00</published>
    <updated>2022-03-29T11:34:40+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>CUPID—for Joyful Coding ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Dan North:</p>
<blockquote>
<p>The five CUPID properties are:</p>
<ul>
<li>Composable: plays well with others</li>
<li>Unix philosophy: does one thing well</li>
<li>Predictable: does what you expect</li>
<li>Idiomatic: feels natural</li>
<li>Domain-based: the solution domain models the problem domain in language and structure</li>
</ul></blockquote>
<p>Also this belter from Martin Fowler.</p>
<blockquote>
<p>“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”</p></blockquote>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2022/03-29-cupidfor-joyful-coding/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://dannorth.net/2022/02/10/cupid-for-joyful-coding/"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2022/03-29-cupidfor-joyful-coding/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2021/12-29-we-need-to-talk-about-testing/</id>
    <published>2021-12-29T15:07:54+08:00</published>
    <updated>2023-03-21T19:47:59+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>We Need to Talk About Testing ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Dan North:</p>
<blockquote>
<p>The purpose of testing is to increase confidence for stakeholders through evidence.</p></blockquote>
<p>…</p>
<blockquote>
<p>You are testing <em>if and only if</em> you are increasing confidence for stakeholders through evidence.</p></blockquote>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2021/12-29-we-need-to-talk-about-testing/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://dannorth.net/2021/07/26/we-need-to-talk-about-testing/"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2021/12-29-we-need-to-talk-about-testing/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2021/10-22-bringing-personalised-search-to-etsy/</id>
    <published>2021-10-22T09:32:39+08:00</published>
    <updated>2023-03-21T19:47:59+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>Bringing Personalised Search to Etsy ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>A look at how Etsy tailored their search results to individual customers.</p>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2021/10-22-bringing-personalised-search-to-etsy/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://codeascraft.com/2020/10/29/bringing-personalized-search-to-etsy/"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2021/10-22-bringing-personalised-search-to-etsy/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2021/09-08-why-is-it-getting-harder-to-apply-software-architecture/</id>
    <published>2021-09-08T20:27:30+08:00</published>
    <updated>2023-03-21T19:47:59+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>Why Is It Getting Harder to Apply Software Architecture? ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>George Fairbanks:</p>
<blockquote>
<p>There are two parts to software development: creating a design and expressing it as code. The code is tangible but the design is conceptual. Keeping a project healthy means doing both well. Here’s my concern: whenever you mix the conceptual with the tangible, it’s easier to neglect the conceptual. When you miss a tangible target, it’s obvious, but when you miss a conceptual target, you might not recognize it, or might rationalize that, because it’s impossible to measure, you were really quite close.</p>
<p>Blindly applying a factory process to software development will drive improvements to the tangible part (the code) at the expense of the conceptual part (the design). We see plenty of examples of this today, where teams have great feature velocity at first, are puzzled when velocity slows, and eventually the project is abandoned. As Cunningham warned, if we bolt features onto an existing codebase without consolidating those ideas into the code, the design will suffer, and over time “[e]ntire engineering organizations can be brought to a standstill under the debt load of an unconsolidated implementation.”</p></blockquote>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2021/09-08-why-is-it-getting-harder-to-apply-software-architecture/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://www.computer.org/csdl/magazine/so/2021/04/09461037/1uCdDdrewzC"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2021/09-08-why-is-it-getting-harder-to-apply-software-architecture/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2021/06-13-time-in-programming/</id>
    <published>2021-06-13T10:49:28+08:00</published>
    <updated>2023-03-21T19:47:59+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>Time in Programming ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <blockquote>
<p>A curated collection on the missing aspect of managed time in programming.</p></blockquote>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2021/06-13-time-in-programming/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://prabros.com/readings-on-time"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2021/06-13-time-in-programming/"></link>
    
  </entry>
  
  <entry>
    <id>https://www.grizzlebit.com/links/2021/06-13-a-story-about-revision-histories/</id>
    <published>2021-06-13T10:47:04+08:00</published>
    <updated>2023-03-21T19:47:59+08:00</updated>
    <author><name>Ray Grasso</name></author>
    
    <title>A Story About Revision Histories ↬</title>
    <content type="html" xml:base="https://www.grizzlebit.com/links/" xml:lang="en"><![CDATA[<div>
  <p>Lovingly craft those commits, friends.</p>

  <p>
    
    <a href="https://www.grizzlebit.com/links/2021/06-13-a-story-about-revision-histories/">↬</a>
     ∙ Tagged in <a href="https://www.grizzlebit.com/tags/software-engineering/">Software Engineering</a>.</p>
</div>
]]></content>
    <link rel="alternate" href="https://www.youtube.com/watch?v=1NoNTqank_U"></link>
    <link rel="related" href="https://www.grizzlebit.com/links/2021/06-13-a-story-about-revision-histories/"></link>
    
  </entry>
  
</feed>
