<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software on Maceage's Blog</title><link>https://blog.maceage.com/categories/software/</link><description>Recent content in Software on Maceage's Blog</description><generator>Hugo</generator><language>en-au</language><copyright>© Graham Mace</copyright><lastBuildDate>Mon, 05 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.maceage.com/categories/software/index.xml" rel="self" type="application/rss+xml"/><item><title>Conway's Law</title><link>https://blog.maceage.com/posts/2026/conways-law/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2026/conways-law/</guid><description>&lt;p&gt;&lt;small&gt;&lt;i&gt;(Originally drafted in July 2019 during my tenure at Xero. Republished here in October 2026 with updated context and removed proprietary references)&lt;/i&gt;&lt;/small&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&amp;ldquo;A system is never the sum of its parts. It is the product of the interactions of its parts.&amp;rdquo; — &lt;a href="https://en.wikipedia.org/wiki/Russell_L._Ackoff" target="_blank"&gt;Dr. Russell Ackoff&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;Every sufficiently large software platform gives its users the impression that it&amp;rsquo;s a single, unified thing running on unicorns and magic. In reality, it has always boiled down to software running on servers that is developed and managed by &lt;em&gt;people&lt;/em&gt;. And those people - how they communicate, where they sit, who owns what - quietly shape the systems they build in ways they rarely notice.&lt;/p&gt;</description></item><item><title>Big-O Notation: A Refresher</title><link>https://blog.maceage.com/posts/2024/big-o-notation-a-refresher/</link><pubDate>Thu, 24 Oct 2024 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2024/big-o-notation-a-refresher/</guid><description>&lt;p&gt;Big-O notation is a fundamental concept in computer science that helps us understand the efficiency of algorithms and data structures. It gives us a language to analyse and compare the performance of different algorithms based on input size – without getting bogged down in hardware details or constant factors.&lt;/p&gt;&#10;&lt;p&gt;Despite reading books, watching videos, and implementing algorithms, Big-O notation is one of those topics that never properly stuck in my head.&lt;/p&gt;</description></item><item><title>System Design Learnings</title><link>https://blog.maceage.com/posts/2024/system-design-learnings/</link><pubDate>Fri, 30 Aug 2024 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2024/system-design-learnings/</guid><description>&lt;p&gt;As a software engineer who grew up developing desktop applications before moving into web development, I spent most of my career in the depths of application code rather than infrastructure.&lt;/p&gt;&#10;&lt;p&gt;Hosting and networking were handled by other teams or companies – my responsibility was writing software that ran on top of that stack, not worrying about the foundation beneath it.&lt;/p&gt;&#10;&lt;p&gt;But that landscape has shifted. System design interviews are now ubiquitous in tech hiring, particularly at scale-focused companies. These interviews assess your ability to architect and scale systems – a skill set that&amp;rsquo;s become as crucial as coding ability itself.&lt;/p&gt;</description></item><item><title>Codifying Architecture: Diagrams as Code</title><link>https://blog.maceage.com/posts/2024/codifying-architecture/</link><pubDate>Sun, 03 Mar 2024 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2024/codifying-architecture/</guid><description>&lt;p&gt;&lt;small&gt;&lt;i&gt;(Originally drafted in August 2019 during my tenure at Xero. Republished here in March 2024 with updated context and removed proprietary references)&lt;/i&gt;&lt;/small&gt;&lt;/p&gt;&#10;&lt;p&gt;Engineers love writing code. There&amp;rsquo;s nothing quite like instantly seeing the fruits of your labour appear on a screen – immediate feedback and the joy of getting something working.&lt;/p&gt;&#10;&lt;p&gt;Engineers, however, tend to hate writing documentation. It takes time, it&amp;rsquo;s seen as overhead to &amp;ldquo;real work,&amp;rdquo; and so it falls by the wayside. The next engineer to come along is told: &lt;em&gt;&amp;ldquo;Oh, that&amp;rsquo;s out of date – just look at the &amp;lsquo;self-documenting&amp;rsquo; code instead.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>The C4 Model: From Attendee to Facilitator</title><link>https://blog.maceage.com/posts/2024/the-c4-model/</link><pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2024/the-c4-model/</guid><description>&lt;p&gt;&lt;small&gt;&lt;i&gt;(Originally drafted in December 2019 during my tenure at Xero. Republished here in February 2024 with updated context and removed proprietary references)&lt;/i&gt;&lt;/small&gt;&lt;/p&gt;&#10;&lt;p&gt;In late 2019, I attended a workshop at &lt;a href="https://yowcon.com/" target="_blank"&gt;YOW! Melbourne&lt;/a&gt; run by &lt;a href="https://simonbrown.je/" target="_blank"&gt;Simon Brown&lt;/a&gt;, the creator of the C4 model. It turned out to be one of the most useful conference sessions I&amp;rsquo;ve ever been to.&lt;/p&gt;&#10;&lt;p&gt;What made it valuable wasn&amp;rsquo;t salesmanship – though you could be forgiven for initially wondering whether you were sitting through a pitch. Simon was excellent at explaining &lt;em&gt;why&lt;/em&gt; the format exists, why other approaches tend to fall down, and what C4 offers compared to heavier alternatives like &lt;a href="https://www.omg.org/uml/" target="_blank"&gt;UML&lt;/a&gt; and &lt;a href="https://www.bpmn.org/" target="_blank"&gt;BPMN&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>(Re)Sharpening Your Codebase</title><link>https://blog.maceage.com/posts/2024/re-sharpening-your-codebase/</link><pubDate>Sun, 28 Jan 2024 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2024/re-sharpening-your-codebase/</guid><description>&lt;p&gt;&lt;small&gt;&lt;i&gt;(Originally drafted in November 2017 during my tenure at Xero. Republished here in January 2024 with updated context and removed proprietary references)&lt;/i&gt;&lt;/small&gt;&lt;/p&gt;&#10;&lt;p&gt;If you haven&amp;rsquo;t heard of &lt;a href="https://www.jetbrains.com/resharper/" target="_blank"&gt;ReSharper&lt;/a&gt;, then you&amp;rsquo;re dead to me.&lt;/p&gt;&#10;&lt;p&gt;OK, so maybe my opening statement was a bit harsh. But seriously, ReSharper is awesome if you know what it&amp;rsquo;s capable of.&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;ve spent many years of my career effectively masquerading as a &lt;a href="https://www.jetbrains.com/" target="_blank"&gt;JetBrains&lt;/a&gt; salesman. I&amp;rsquo;ve used ReSharper in my C# development ever since becoming a .NET developer back in the &lt;a href="https://en.wikipedia.org/wiki/Visual_Studio#2005" target="_blank"&gt;VS2005&lt;/a&gt; days (yes, yes, you can play the world&amp;rsquo;s smallest violin for me).&lt;/p&gt;</description></item><item><title>My Tools of the Trade</title><link>https://blog.maceage.com/posts/2024/tools-of-the-trade/</link><pubDate>Sun, 14 Jan 2024 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2024/tools-of-the-trade/</guid><description>&lt;p&gt;&lt;small&gt;&lt;i&gt;(Originally drafted in December 2019 during my tenure at Xero. Republished here in January 2024 with updated context and removed proprietary references)&lt;/i&gt;&lt;/small&gt;&lt;/p&gt;&#10;&lt;p&gt;A blog post about the software I actually use every day – why I use it, and what it gives me. Less a product review, more a snapshot of how one person tries to keep a digital life manageable.&lt;/p&gt;&#10;&lt;h2 id="the-philosophy-bit"&gt;The philosophy bit&lt;/h2&gt;&#10;&lt;p&gt;&lt;img src="there-is-no-cloud.png#center" alt="There is no cloud" loading="lazy"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;Cloud-based software has revolutionised the workplace. Most of what we use day-to-day arrives through a browser, and new features ship seamlessly without ever touching your local machine. But desktop software isn&amp;rsquo;t going anywhere – after all, a cloud-based server is just someone else&amp;rsquo;s machine, and it still needs software installed locally to operate.&lt;/p&gt;</description></item></channel></rss>