<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Architecture on Jesse Builds Software</title>
    <link>https://jessemcdowell.ca/tags/architecture/</link>
    <description>Recent content in Architecture on Jesse Builds Software</description>
    <generator>Hugo</generator>
    <language>en-CA</language>
    <lastBuildDate>Fri, 09 May 2025 19:33:22 -0700</lastBuildDate>
    <atom:link href="https://jessemcdowell.ca/tags/architecture/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Disambiguating Scalability</title>
      <link>https://jessemcdowell.ca/2025/05/Disambiguating-Scalability/</link>
      <pubDate>Fri, 09 May 2025 19:33:22 -0700</pubDate>
      <guid>https://jessemcdowell.ca/2025/05/Disambiguating-Scalability/</guid>
      <description>&lt;p&gt;Although it was years ago, I still remember the conversation vividly. I was having my regular check-in with the CTO. It was also sunny outside, and the view from his office was particularly nice that day.&lt;/p&gt;&#xA;&lt;p&gt;He asked me, &amp;ldquo;Is our app scalable?&amp;rdquo; After a moment of thought, I answered, &amp;ldquo;Yes.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;I spent the next few years remembering that conversation, wondering what would have happened if I had asked what he meant by scalable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Architectural Decision: Using Obsidian For Work Notes - 2025-01</title>
      <link>https://jessemcdowell.ca/2025/03/Architectural-Decision-Using-Obsidian-For-Work-Notes/</link>
      <pubDate>Sun, 02 Mar 2025 13:59:08 -0800</pubDate>
      <guid>https://jessemcdowell.ca/2025/03/Architectural-Decision-Using-Obsidian-For-Work-Notes/</guid>
      <description>&lt;p&gt;I have been feeling frustrated with my personal organization of late. I had a bit of time before starting a new project, so I put some time into improving my process. The post below is a simplified version of the notes I took while I looked for alternatives. I&amp;rsquo;m sharing this as an example of how I do research, and as a more realistic example of &lt;a href=&#34;https://jessemcdowell.ca/resources/architectural-report-template/&#34;&gt;the architectural report structure I typically use&lt;/a&gt;, which &lt;a href=&#34;https://jessemcdowell.ca/2023/11/Using-Architectural-Decision-Records/&#34;&gt;I&amp;rsquo;ve written about before&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Case of the Premature Power Outage</title>
      <link>https://jessemcdowell.ca/2025/02/Case-of-the-Premature-Power-Outage/</link>
      <pubDate>Mon, 03 Feb 2025 19:40:52 -0800</pubDate>
      <guid>https://jessemcdowell.ca/2025/02/Case-of-the-Premature-Power-Outage/</guid>
      <description>&lt;p&gt;Many years ago I worked on a large system with a number of interconnected services that had grown organically over the years. As new services were added, they became dependent on each other in ways that nobody on the team fully understood. When our hosting provider announced a planned outage, we had to figure out how to safely shut the system off, and more importantly, how to safely and quickly start it back up again afterward. We had never done either of these things before, so we put a lot of effort in to make sure it would go smoothly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Pragmatic Potato Tech Stack</title>
      <link>https://jessemcdowell.ca/2024/06/Pragmatic-Potato-Tech-Stack/</link>
      <pubDate>Mon, 24 Jun 2024 12:02:43 -0700</pubDate>
      <guid>https://jessemcdowell.ca/2024/06/Pragmatic-Potato-Tech-Stack/</guid>
      <description>&lt;p&gt;I &lt;a href=&#34;https://jessemcdowell.ca/2023/11/Announcing-Pragmatic-Potato-Software/&#34;&gt;recently launched my new company&lt;/a&gt;, &lt;a href=&#34;https://pragmaticpotato.com/&#34;&gt;Pragmatic Potato Software Inc&lt;/a&gt;. The creation of a company itself is pretty easy, but setting up everything you need to do business can become overwhelming quickly. There are a lot of compelling options available, each promising the moon. It&amp;rsquo;s not that simple though.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m going to be writing about the technology stack I&amp;rsquo;m using to run my company, and why I made the choices I did. There is a lot more to a company than its technology, but I&amp;rsquo;m not an expert in setting those up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cross-Cutting Concerns - Ten Approaches</title>
      <link>https://jessemcdowell.ca/2024/05/Cross-Cutting-Concerns/</link>
      <pubDate>Mon, 27 May 2024 13:18:08 -0700</pubDate>
      <guid>https://jessemcdowell.ca/2024/05/Cross-Cutting-Concerns/</guid>
      <description>&lt;p&gt;One often (and ironically) repeated rule in programming is: don&amp;rsquo;t repeat yourself. We repeat it so much we even have an abbreviation: DRY. There are good reasons for this advice. Duplicating and modifying code can be a quick and easy way to get a feature done, but it can also lead to problems over time. It&amp;rsquo;s harder to understand code when the valuable logic is mixed with reams of low-value boilerplate. Subtle differences can also sneak in, leading to inconsistent behaviour across the application. Things get even more difficult if you want to make a change.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The True Cost of Dependencies</title>
      <link>https://jessemcdowell.ca/2024/03/The-True-Cost-of-Dependencies/</link>
      <pubDate>Wed, 27 Mar 2024 15:35:10 -0700</pubDate>
      <guid>https://jessemcdowell.ca/2024/03/The-True-Cost-of-Dependencies/</guid>
      <description>&lt;p&gt;I used to use Getform for a contact form on &lt;a href=&#34;https://pragmaticpotato.com&#34;&gt;my consulting company website&lt;/a&gt;. I recently received an email from them announcing that their free tier was dropping from 50 submissions per month to a lifetime limit of 25. This makes it useless for anything more than a trial, and their lowest tier is a more expensive than other similar options.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m not here to complain about companies taking back free offerings. I don&amp;rsquo;t like the change, and I wish they&amp;rsquo;d given me more than three days of notice, but they are a businesses, and businesses need to make money. It is a good reminder though: even if something is free to use, it still takes time and effort to integrate, to maintain, and you may occasionally need to throw it out and find a replacement.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Architectural Decision Records</title>
      <link>https://jessemcdowell.ca/2023/11/Using-Architectural-Decision-Records/</link>
      <pubDate>Tue, 21 Nov 2023 17:51:51 -0800</pubDate>
      <guid>https://jessemcdowell.ca/2023/11/Using-Architectural-Decision-Records/</guid>
      <description>&lt;p&gt;Architectural Decision Records are a simple technique that promotes good architectural thinking and better collaboration. They don&amp;rsquo;t need to be big or complicated to be effective, but they do take some time, and are yet another step between setting goals and delivering value. If you use them in the right circumstances they can be a big help.&lt;/p&gt;&#xA;&lt;div class=&#34;table-of-contents&#34;&gt;&#xA;    &lt;nav id=&#34;TableOfContents&#34;&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#what-is-an-architectural-decision-record&#34;&gt;What is an Architectural Decision Record?&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#why-use-architectural-decision-records&#34;&gt;Why use Architectural Decision Records?&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#when-should-i-use-an-architectural-decision-record-process&#34;&gt;When should I use an Architectural Decision Record process?&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#can-i-introduce-an-architectural-decision-record-process-to-an-existing-project&#34;&gt;Can I introduce an Architectural Decision Record process to an existing project?&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#what-architectural-decision-record-template-should-i-use&#34;&gt;What Architectural Decision Record template should I use?&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#where-should-i-store-architectural-decision-records&#34;&gt;Where should I store Architectural Decision Records?&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#maintaining-architectural-decision-records&#34;&gt;Maintaining Architectural Decision Records&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#summary&#34;&gt;Summary&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/nav&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;what-is-an-architectural-decision-record&#34;&gt;What is an Architectural Decision Record?&lt;/h2&gt;&#xA;&lt;p&gt;An Architectural Decision Record (often abbreviated ADR) is just as the name implies: a document that describes an architectural decision. It can include various details, but should at a minimum describe the problem being solved and the solution that was chosen. It can be a simple text document with a page or two of text, or it can be longer with specific sections that are important to the team.&lt;/p&gt;</description>
    </item>
    <item>
      <title>This Blog: Hexo-generated static site hosted on GitHub Pages</title>
      <link>https://jessemcdowell.ca/2023/11/This-Blog-Hexo-generated-static-site-hosted-on-GitHub-Pages/</link>
      <pubDate>Wed, 01 Nov 2023 10:34:32 -0700</pubDate>
      <guid>https://jessemcdowell.ca/2023/11/This-Blog-Hexo-generated-static-site-hosted-on-GitHub-Pages/</guid>
      <description>&lt;p&gt;A couple of years ago I switched this blog from a WordPress site hosted on GoDaddy to a statically generated site. The new setup is faster, more secure, and cheaper to operate. And it was easy to do!&lt;/p&gt;&#xA;&lt;div class=&#34;table-of-contents&#34;&gt;&#xA;    &lt;nav id=&#34;TableOfContents&#34;&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#static-vs-dynamic-websites&#34;&gt;Static vs Dynamic websites&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#comments-and-contact-pages-on-a-static-website&#34;&gt;Comments and contact pages on a static website&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#https-and-custom-domains&#34;&gt;HTTPS and custom domains&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#price-of-static-websites&#34;&gt;Price of static websites&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#creating-editing-and-publishing-posts&#34;&gt;Creating, editing, and publishing posts&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#converting-from-wordpress-to-hexo&#34;&gt;Converting from WordPress to Hexo&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#summary&#34;&gt;Summary&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/nav&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;static-vs-dynamic-websites&#34;&gt;Static vs Dynamic websites&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wordpress.org/&#34;&gt;WordPress&lt;/a&gt; is a very popular blogging platform. You can use it hosted on WordPress.com, or any number of other web providers that offer it. Because it&amp;rsquo;s open source, you can also host it yourself easily. In my case, I had a virtual server running in GoDaddy where I maintained the installation myself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Regarding Test Coverage Targets</title>
      <link>https://jessemcdowell.ca/2023/08/Regarding-Test-Coverage-Targets/</link>
      <pubDate>Mon, 21 Aug 2023 11:28:52 -0700</pubDate>
      <guid>https://jessemcdowell.ca/2023/08/Regarding-Test-Coverage-Targets/</guid>
      <description>&lt;p&gt;Unit tests are undeniably a good thing, but you only realize the full benefits of them when you have enough tests that you can make changes with confidence. If you can make a change, run your tests, and be comfortable enough to ship your changes, then you and your team can get work done much faster. More drastic changes to the shared code become feasible. Life gets better.&lt;/p&gt;&#xA;&lt;p&gt;It makes sense then that teams want to ensure that code is sufficiently covered with tests. Nobody wants to count tests every time they review a PR, so tools are added that check it automatically. It&amp;rsquo;s then a small step to set a coverage target, and suddenly you have a machine checking every PR for tests. This all makes sense to me, and it was my first instinct too. I don&amp;rsquo;t recommend this approach any more.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My Architectural Report Template</title>
      <link>https://jessemcdowell.ca/2023/08/My-Architectural-Report-Template/</link>
      <pubDate>Tue, 08 Aug 2023 12:45:13 -0700</pubDate>
      <guid>https://jessemcdowell.ca/2023/08/My-Architectural-Report-Template/</guid>
      <description>&lt;p&gt;As an architect I&amp;rsquo;ve been asked to answer a lot of hard questions. I used to waste time figuring out how to structure my answers, preventing me from getting into a good flow sooner. Now I have a simple template that is easy to use, easy to read, and saves me that wasted time up front.&lt;/p&gt;&#xA;&lt;p&gt;This template works for simple reports that are only a couple of pages, but can easily be adjusted or expanded for more complicated or much larger documents.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Horizontal One-on-Ones and Talking Practice</title>
      <link>https://jessemcdowell.ca/2023/07/Horizontal-One-on-Ones-and-Talking-Practice/</link>
      <pubDate>Tue, 18 Jul 2023 15:35:11 -0700</pubDate>
      <guid>https://jessemcdowell.ca/2023/07/Horizontal-One-on-Ones-and-Talking-Practice/</guid>
      <description>&lt;p&gt;When I was promoted to the role of architect it was a new role in the organization. The stakeholders I had to work with were not used to talking to an architect, and weren&amp;rsquo;t sure what I did or when I should be involved in a conversation. I started using recurring one-on-one meetings with each stakeholder separately. It worked great. It&amp;rsquo;s also made me a much better communicator.&lt;/p&gt;&#xA;&lt;p&gt;One of the first and most important lessons I learned as an architect is that you can&amp;rsquo;t design a good architecture without a good understanding of its requirements. You can design a system in a vacuum, it&amp;rsquo;s also much easier to do it this way, but it&amp;rsquo;s far less likely to serve the organization. Gathering, validating, and documenting technical requirements is tough work, but an essential part of being an architect.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
