<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>theflyingcoders</title><link>https://theflyingcoders.dev/</link><description>Recent content on theflyingcoders</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Mon, 14 Sep 2026 09:00:00 +0100</lastBuildDate><atom:link href="https://theflyingcoders.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>How this blog is built and hosted for nothing</title><link>https://theflyingcoders.dev/blog/how-this-blog-is-built/</link><pubDate>Mon, 14 Sep 2026 09:00:00 +0100</pubDate><guid>https://theflyingcoders.dev/blog/how-this-blog-is-built/</guid><description>This site has no server and costs nothing to run. Here is the whole stack, why every piece is the boring choice on purpose, and how fast I can stand one up for you.</description></item><item><title>How I lay out a Go repo: three layers, one direction</title><link>https://theflyingcoders.dev/blog/how-i-lay-out-a-go-repo/</link><pubDate>Sat, 12 Sep 2026 09:00:00 +0100</pubDate><guid>https://theflyingcoders.dev/blog/how-i-lay-out-a-go-repo/</guid><description>Domain imports nothing and internal owns the logic. Transports hold none of it, whether that is an HTTP handler or a queue consumer, and the data layer swaps under the service without a handler noticing.</description></item><item><title>Three is a pattern: conventions that survive generated code</title><link>https://theflyingcoders.dev/blog/three-is-a-pattern/</link><pubDate>Thu, 10 Sep 2026 09:00:00 +0100</pubDate><guid>https://theflyingcoders.dev/blog/three-is-a-pattern/</guid><description>&lt;p&gt;An agent will happily write the same function four times in four files, each slightly different, each passing its own test. So will a tired human on a Friday. The volume just went up, so the habit that keeps a codebase coherent has to be written down where anyone, and anything, working in the repo will read it. Here is the one I lean on hardest.&lt;/p&gt;</description></item><item><title>Services</title><link>https://theflyingcoders.dev/services/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://theflyingcoders.dev/services/</guid><description>Three things we do. Most engagements start as a scoped piece of one of them, and we&amp;rsquo;d rather tell you it&amp;rsquo;s the wrong one than sell you the wrong one.</description></item><item><title>Start a conversation</title><link>https://theflyingcoders.dev/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://theflyingcoders.dev/contact/</guid><description>&lt;p&gt;Mail is best: &lt;a href="mailto:hello@theflyingcoders.dev"&gt;hello@theflyingcoders.dev&lt;/a&gt;. No forms required, no discovery call before the discovery call.&lt;/p&gt;</description></item><item><title>theflyingcoders is one platform architect, writing in the open.</title><link>https://theflyingcoders.dev/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://theflyingcoders.dev/about/</guid><description>&lt;p&gt;I&amp;rsquo;m Mark Smith. I&amp;rsquo;ve spent 10 years on backend platforms, mostly Go, mostly the services other teams quietly depend on. The &amp;ldquo;we&amp;rdquo; everywhere else on this site is deliberate: engagements sometimes bring in people I&amp;rsquo;ve worked with for years. The person answering your mail is still me.&lt;/p&gt;</description></item></channel></rss>