<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software Architecture on Michael-F-Bryan</title><link>https://adventures.michaelfbryan.com/tags/software-architecture/</link><description>Recent content in Software Architecture on Michael-F-Bryan</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 26 Aug 2026 15:15:33 +0800</lastBuildDate><atom:link href="https://adventures.michaelfbryan.com/tags/software-architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>The Accidental Application Runtime</title><link>https://adventures.michaelfbryan.com/posts/accidental-application-runtime/</link><pubDate>Fri, 21 Aug 2026 18:00:00 +0800</pubDate><guid>https://adventures.michaelfbryan.com/posts/accidental-application-runtime/</guid><description>&lt;p&gt;Imagine you look after the software for a small 3D-print farm: a rack of printers and a Go service running on a box in the corner. The service started life as a dashboard. Somebody wanted to see what each printer was doing without walking over to it, so you wrote a little HTTP server, and because the handlers needed live printer state, the server&amp;rsquo;s setup code connected to the printers and started a goroutine to poll them. That was completely reasonable.&lt;/p&gt;</description></item><item><title>Link Time Dependency Injection</title><link>https://adventures.michaelfbryan.com/posts/the-linker-trick/</link><pubDate>Sun, 30 Mar 2025 12:59:58 +0800</pubDate><guid>https://adventures.michaelfbryan.com/posts/the-linker-trick/</guid><description>&lt;p&gt;Have you ever been in a situation where, because of how the code is structured, it&amp;rsquo;s practically impossible to inject a dependency into the component that needs it? Even global variables - ubiquitously reviled for their ability to do &amp;ldquo;spooky action at a distance&amp;rdquo; - weren&amp;rsquo;t spooky enough.&lt;/p&gt;&#10;&lt;p&gt;In this article, I&amp;rsquo;ll share a technique I discovered while working on a WebAssembly-based CAD package that allows for dependency injection at link time. This technique is particularly useful when traditional dependency injection methods aren&amp;rsquo;t available or practical.&lt;/p&gt;</description></item><item><title>A Thought Experiment: Using the ECS Pattern Outside of Game Engines</title><link>https://adventures.michaelfbryan.com/posts/ecs-outside-of-games/</link><pubDate>Sat, 28 Dec 2019 00:00:00 +0800</pubDate><guid>https://adventures.michaelfbryan.com/posts/ecs-outside-of-games/</guid><description>&lt;p&gt;It&amp;rsquo;s been about 6 months since I watched Catherine West&amp;rsquo;s excellent &lt;a href="https://www.youtube.com/watch?v=aKLntZcp27M" class="external-link" target="_blank" rel="noopener"&gt;Using&#10;Rust for Game Development&lt;/a&gt;&#10; sent me down the &lt;em&gt;Entity-Component-System&lt;/em&gt;&#10;(ECS) rabbit hole, and I thought I&amp;rsquo;d share some of my findings.&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;ve been meaning to write about this for quite a while now but it took a&#10;while to put my thoughts into a cohesive article without throwing massive&#10;walls of code at you.&lt;/p&gt;&#10;&lt;aside class="notice notice--note"&gt;&#10; &lt;p class="notice__label"&gt;&#10; &lt;i class="fa-solid fa-note-sticky" aria-hidden="true"&gt;&lt;/i&gt;&#10; &lt;span&gt;Note&lt;/span&gt;&#10; &lt;/p&gt;&#10; &lt;div class="notice__body"&gt;&#10;&lt;p&gt;This article is mainly focused around the high-level decisions you make when&#10;designing a project, so there won&amp;rsquo;t be as much code as normal. That said, all&#10;code written in this article is available &lt;a href="https://github.com/Michael-F-Bryan/arcs" class="external-link" target="_blank" rel="noopener"&gt;on GitHub&lt;/a&gt;&#10;. Feel free to&#10;browse through and steal code or inspiration.&lt;/p&gt;</description></item></channel></rss>