<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Adam Caudill</title><link>https://adamcaudill.com/</link><description>Recent content on Adam Caudill</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Copyright &amp;copy; 2003-2025 Adam Caudill</copyright><lastBuildDate>Sat, 07 Feb 2026 04:34:13 -0500</lastBuildDate><atom:link href="https://adamcaudill.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Sweet Dreams</title><link>https://adamcaudill.com/writing/2026/02/07/sweet-dreams/</link><pubDate>Sat, 07 Feb 2026 04:34:13 -0500</pubDate><guid>https://adamcaudill.com/writing/2026/02/07/sweet-dreams/</guid><description>&lt;p&gt;&lt;em&gt;This is a short story, an exploration of technology &amp;amp; human motivations, and the nature of escapism.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;She popped the earbuds in her ears, scrolled through the list on her phone, selected an item, and clicked play. An entirely routine routine, an act utterly relatable, a nightly ritual for countless people around the world. Slowly rising, as if drawing closer, was the sound of rain. A soft &amp;amp; rhythmic pattering, steadily building. Her eyes closed; breathing became slower and deeper. After a few minutes, a soothing voice spoke: &amp;ldquo;your selected dream will soon begin.&amp;rdquo;&lt;/p&gt;&lt;p&gt;She slipped into a shallow sleep, lying upon a bed of beige, in a room with beige walls, wearing a beige gown. The only colour to be found in this room was the dark &amp;amp; polished oak of her furniture.&lt;/p&gt;&lt;p&gt;It had been a long, difficult, and uncomfortable day. An exhausting day, ineffably so. She needed a break. She needed something light. She needed a sweet dream.&lt;/p&gt;&lt;p&gt;The voice resumed: &amp;ldquo;You are wearing a gown of rich red, covered in delicate pink lace. The gown is made of the lightest and softest silk. It feels cool against your skin, like a gentle breeze on a crisp spring morning. You are lying on a bed, soft as feathers, deep and cool, on blankets of pink and purple, soft as the finest cashmere. You wake, fully rested, fully restored, fully relaxed.&amp;rdquo;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;She rolled over in bed, and next to her was a tray, laden with delicacies. Champagne with sliced strawberries. A crepe, filled with chocolate &amp;amp; hazelnut, dusted with powdered sugar, and topped with shaved chocolate. Blueberries and cream. Caramelised pears. Orange and vanilla scones.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Oh! Breakfast in bed!&amp;rdquo;&lt;/p&gt;&lt;p&gt;Each dish was prepared to perfection, sweet, and entirely delectable.&lt;/p&gt;&lt;p&gt;After eating her fill, she stood and stretched. A shiver ran down her spine and the cool silk of her red gown caressed her skin.&lt;/p&gt;&lt;p&gt;Walking to the restroom, her feet sinking into the plush purple rug, she found a hot bath already drawn, the air sweet with the scent of lavender, jasmine, and the rose petals that rested upon the surface of the water. The temperature of the water was perfect. On a small table next to the bath was a bowl of strawberries and a dish of cream; a sweet snack for a long bath. Purple towels and a red silk robe were there and waiting on her to need them.&lt;/p&gt;&lt;p&gt;A perfectly lazy, relaxed, and pampered morning.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Emerging from her room, with its soft pink walls, after a long bath, she found her way to the kitchen, where brunch was waiting. French toast topped with berries and powdered sugar. Raspberry scones. Apple strudel. Cinnamon rolls topped with cream cheese. The room was filled with the scent of the variety of freshly baked treats. A bottle of champagne had been mixed into a pitcher of freshly squeezed orange juice; all the mimosas a person could drink.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mmm! Smells Good. Everything looks so sweet.&amp;rdquo;&lt;/p&gt;&lt;p&gt;The food was again prepared to absolute perfection, though she ate more deliberately than she had earlier. After eating, she changed into a more comfortable outfit, and continued to explore the house.&lt;/p&gt;&lt;p&gt;In the living room, she found a selection of her favourite books arrayed on a table next to a comfortable chair, along with a warm wool throw, and a bottle of red wine. A temptation too great to resist.&lt;/p&gt;&lt;p&gt;Hours passed as she read in peace. Despite regularly drinking from her wine glass, the level never seemed to drop. With the sun setting as the day drew to a close, only upon standing did it occur to her just how often she had been sipping the wine. Her sudden lack of balance made it clear that she had substantially more than she should have.&lt;/p&gt;&lt;p&gt;She stumbled into the kitchen, looking for something to eat, looking for something to help her sober up. Chocolate cake. Apple pie. Crème brûlée. Ice cream. Cookies, lemon cookies, tea cookies, sugar cookies, cookies everywhere.&lt;/p&gt;&lt;p&gt;As her world began spinning more and more as the effects of the alcohol intensify, she walks back to her room. The cashmere blankets are gone. Pink and purple cotton candy cover the bed instead.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;She sat bolt upright in her bed. An earbud went flying from her ear. She looked around and saw the familiar beige and oak of her bedroom. She moved, cautiously, trying to understand if she was actually drunk, or if it was just a dream. She felt for her familiar quilted blankets, and laughed at finding them instead of a bed covered in cotton candy.&lt;/p&gt;&lt;p&gt;She walked to the restroom, the cold tile stung her feet, as she searched the room for the missing earbud.&lt;/p&gt;&lt;p&gt;A few minutes later she was back in bed, both earbuds pressed firmly into her ears. Instead of picking a specific dream, she tapped the auto button. The familiar sound of rain started, and soon the voice returned: &amp;ldquo;You are lying on a bed, firm and cold. You feel the rich black leather against your skin.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Her eyes snapped open. Her cheeks flushed. &amp;ldquo;Nope! No. No. Not that one. Not tonight. Nope.&amp;rdquo;&lt;/p&gt;&lt;p&gt;She pressed the pause button on her phone, and spent a couple minutes carefully looking through the list. She scrolled through the dozens of categories available. Holidays. Life events. Romance. Horror. She picked one from the Places category.&lt;/p&gt;&lt;p&gt;The sound of rain resumed, and eventually the voice was back: &amp;ldquo;You are wearing a light lace gown, white and pure. It rests weightlessly on your skin. A cool and gentle breeze blows. You are surrounded by trees, tall and green; young pines and ancient oaks. The air is filled with the sound of birds and the smell of flowers. Ahead of you is an open glade, filled with wild flowers, white and yellow and red.&amp;rdquo;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;She looked around as the breeze blew through her hair. She reached out, ran her fingers along the trunk of an oak tree that was likely hundreds of years old. She felt the countless layers of bark, scars left behind from years immemorial of growth. This venerable tree, regal and mute, had witnessed much over the many seasons it had stood at the edge of this glade. She wished it could share those stories.&lt;/p&gt;&lt;p&gt;She walked away from the trees, into the open air of the clearing. A great ring of flowers and grass, hundreds of feet in width. As the birds chirped and danced in the air above her, she smiled softly. Over the years, she had been here more times than she could count. It was peaceful, beautiful, and happy.&lt;/p&gt;&lt;p&gt;&amp;ldquo;I love this place&amp;rdquo; she said, as the memories flooded through her mind. For the briefest moment though, there was a flicker of doubt. Which memories were real, and which were dreams? As quickly as it arrived, the doubt, the question, it faded away.&lt;/p&gt;&lt;p&gt;She ran through the grass, she picked flowers, she laid in the grass and watched the clouds float across the sky. If it had been minutes or hours, she neither knew nor cared. She was in her favourite place. She felt the thing she wanted more than anything else, peace.&lt;/p&gt;&lt;p&gt;In a world far away, a world that she was entirely unaware of, the screen of a cell phone activated and displayed a message: &amp;ldquo;Critical Dream Management Error. Exit dream and restart app immediately.&amp;rdquo;&lt;/p&gt;&lt;p&gt;In the warm sun, she closed her eyes, lying in the grass, enjoying the heat on her skin. She drifted into a long dreamless nap. Time passed beyond her reckoning. When she finally woke, she stood, stretched, and was momentarily confused upon seeing her red gown with pink lace. &amp;ldquo;Red?&amp;rdquo; She wondered aloud, almost certain that she had been wearing white. Though she soon laughed off the concern.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;In a room with beige walls, a beige bed, slept a woman wearing a beige gown. On her nightstand, an alarm clock blared. Minutes turned to hours. She didn&amp;rsquo;t stir.&lt;/p&gt;&lt;p&gt;A message appeared on the woman&amp;rsquo;s phone: &amp;ldquo;Unable to automatically terminate dream. User must end dream session immediately.&amp;rdquo;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;As she walked through the glade, simply enjoying the sights and sounds, she spotted a lovely purple flower. When she saw it, her first thought was that it would look delightful in her hair. She stooped to pick it, but when she did, it shattered like glass. She picked another, and it shattered. And another. And another. It made no sense. In all her time in the heaven of peace, never had she experienced anything like this.&lt;/p&gt;&lt;p&gt;&amp;ldquo;This is weird, but it&amp;rsquo;s fine. As long as I don&amp;rsquo;t pick the flowers, everything is still perfect.&amp;rdquo;&lt;/p&gt;&lt;p&gt;She resolved to not pick anymore flowers, but she still ran through the grass, still watched the clouds, and took more naps in the warm light of the sun. Time passed, though she was still indifferent to how much.&lt;/p&gt;&lt;p&gt;While exploring the edge of the forest, where the trees provided shade to the glade, she picked a single leaf from a tree. In the moment, every other leaf on the tree shrivelled and fell. Then the tree, as if aging hundreds of years in seconds, itself withered, died, and was left as a rotten husk. What had been alive and beautiful only moments earlier, was now a symbol of death.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Well that&amp;rsquo;s disturbing, but it&amp;rsquo;s fine. As long as I don&amp;rsquo;t pick the flowers or leaves, everything is still perfect.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Time passed, and she still ran through the grass, still watched the clouds, and still took naps in the warm light of the sun. After one nap though, she noticed something odd. The grass where she had been was dried and dead. She walked around the spot where she had been napping to inspect the grass, and as she did, she saw her footsteps. Each place she stepped, the grass was now dead.&lt;/p&gt;&lt;p&gt;&amp;ldquo;I guess it&amp;rsquo;s a good thing I like this spot. As long as I don&amp;rsquo;t pick the flowers or leaves or walk around, everything is still perfect.&amp;rdquo;&lt;/p&gt;&lt;p&gt;She sat in that spot, listening to the birds, watching the clouds. Hours went by. Or maybe days. She couldn&amp;rsquo;t tell anymore. She still felt peace. Constrained and restricted, but still peace, which is what mattered.&lt;/p&gt;&lt;p&gt;A faint buzz, an annoying but faint droning, what she had assumed were bees flying around the glade, was growing louder and harder to ignore. An undeniable pang formed in her belly. For the first time in what felt like days, she was hungry. She looked around, but there was nothing to eat.&lt;/p&gt;&lt;p&gt;She stood, stretched lazily, and took a single step. She hesitated. Frozen, she looked at the small spot she&amp;rsquo;d been sitting, the path out of the glade, then back again. Minutes ticked by.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Do I really need to eat?&amp;rdquo;&lt;/p&gt;</description></item><item><title>Five Years with Hugo</title><link>https://adamcaudill.com/2026/01/10/five-years-with-hugo/</link><pubDate>Sat, 10 Jan 2026 01:29:22 +0000</pubDate><guid>https://adamcaudill.com/2026/01/10/five-years-with-hugo/</guid><description>&lt;p&gt;During a break over Christmas 2020, I rebuilt this site, moving from WordPress to &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt;. After more than 5 years of publishing with Hugo, I&amp;rsquo;d like to share what I&amp;rsquo;ve learned, what&amp;rsquo;s worked, what hasn&amp;rsquo;t, and why for once, I&amp;rsquo;m happy with the platform I&amp;rsquo;m using.&lt;/p&gt;&lt;p&gt;This review builds on two recent articles, &lt;em&gt;&lt;a href="https://adamcaudill.com/2026/01/02/five-hundred/"&gt;Five Hundred&lt;/a&gt;&lt;/em&gt;, a retrospective of 500 posts to this site, and &lt;em&gt;‌&lt;a href="https://adamcaudill.com/2026/01/04/lessons-learned-from-20-years-why-you-should-blog/"&gt;Lessons Learned from 20 Years &amp;amp; Why You Should Blog&lt;/a&gt;&lt;/em&gt;, a look back at 20 years of publishing here, and the value of writing &amp;amp; blogging more generally. In this post, I will be diving into publishing with Hugo specifically, what’s good, what’s not, and what you should think about if you are considering it.&lt;/p&gt;&lt;h2 id="writing-friction"&gt;Writing Friction&lt;/h2&gt;&lt;p&gt;In the &lt;em&gt;&lt;a href="https://adamcaudill.com/2026/01/04/lessons-learned-from-20-years-why-you-should-blog/"&gt;Lessons Learned&lt;/a&gt;&lt;/em&gt; post I spoke about the need to carefully consider the friction of the tools you use, as any bit of friction can reduce the motivation and time dedicated to writing. As such, I should address this first and foremost.&lt;/p&gt;&lt;p&gt;In 2012, I &lt;a href="https://adamcaudill.com/2012/04/12/moving-to-octopress/"&gt;moved to Octopress&lt;/a&gt;, and away from WordPress, there were a variety of reasons for this, though security and performance were major factors. By the end of 2015, I moved back to WordPress. The reason? Friction. With static state generation, the process of creating a new post was slower, took more time &amp;amp; effort, and as a result, I did so less frequently.&lt;/p&gt;&lt;p&gt;By 2020, I was ready to embrace that friction. When I switched from WordPress to Hugo, I knew that each post would take more time, that I wouldn’t post as often. Yet, this isn’t a flaw for me, it’s a feature.&lt;/p&gt;&lt;p&gt;During the 2010s, I posted here 146 times, with an average length of 817 words. So far, in the 2020s, I’ve posted 52 articles, with an average length of 1,629 words. I post less often, though each sees greater effort and more depth, each is a greater investment to ensure that it’s worth the time to read.&lt;/p&gt;&lt;p&gt;While I will loudly caution people to watch for friction, and warn that it can lead to less motivation to spend limited free time writing, it’s not always a flaw. If you are already going to spend several hours (or more) on an article, the additional friction of using a static generator really does become insignificant.&lt;/p&gt;&lt;p&gt;Hugo works great if you don’t mind the friction; at this point, the friction isn’t a problem for how I write today.&lt;/p&gt;&lt;h2 id="markdown-all-the-things"&gt;Markdown All The Things&lt;/h2&gt;&lt;p&gt;Hugo supports various formats for content, though the best support is for &lt;a href="https://www.markdownguide.org/"&gt;Markdown&lt;/a&gt;, and is what this site uses exclusively. When I switched this site from WordPress to Octopress in 2012, I had manually converted a decade’s worth of content to Markdown from the HTML that WordPress generates. Thankfully, after that all content has been in Markdown.&lt;/p&gt;&lt;p&gt;Even when I switched from Octopress back to WordPress, I took advantage of the fact that WordPress supports Markdown as well. This made later moves much, much easier.&lt;/p&gt;&lt;p&gt;I could explain why you do want to write in Markdown, for a variety of reasons, though Anil Dash recently &lt;a href="https://www.anildash.com/2026/01/09/how-markdown-took-over-the-world/"&gt;documented the success of Markdown&lt;/a&gt; quite well, as such, you should read his article if you want a deeper dive.&lt;/p&gt;&lt;h2 id="themes--design"&gt;Themes &amp;amp; Design&lt;/h2&gt;&lt;p&gt;Hugo has a &lt;a href="https://themes.gohugo.io/"&gt;rich collection of themes&lt;/a&gt; available, many of these are remarkably well designed and impressive contributions from their talented designers. I selected a clean and simple theme, &lt;a href="https://themes.gohugo.io/themes/hugo-kiera/"&gt;Kiera&lt;/a&gt;, and spent a week extending it, expanding the features, redesigning the home page, adding the sidebar, and countless other changes.&lt;/p&gt;&lt;p&gt;Hugo builds on the &lt;a href="https://pkg.go.dev/html/template"&gt;Go Template&lt;/a&gt; system, which allows the themes to be quite robust and flexible, supporting extensive embedded logic. While this doesn’t offer the degree of flexibility that I would truly like - such as having full access to Go&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; - it does work well and can do almost anything one would need.&lt;/p&gt;&lt;p&gt;The template files are HTML&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;, and easy to edit and customise for your particular desires, it’s one of the easier and more pleasant templating systems that I’ve worked with.&lt;/p&gt;&lt;h2 id="frequent-changes"&gt;Frequent Changes&lt;/h2&gt;&lt;p&gt;The team behind Hugo are constantly working to improve the framework, fix bugs, add features, improve flexibility, and address design constraints. As I write this, on the 10th day of January, there have already been 4 releases this year.&lt;/p&gt;&lt;p&gt;This constant change does come at a price though, as there is a steady stream of new deprecation warnings that are added, signalling the future change or removal of some feature. There are also infrequent but very real breaking changes that slip in, without any clear warning. Over the last 5 years, there’s been at least two of these breaking changes each year, leaving the site broken in some way.&lt;/p&gt;&lt;p&gt;Thankfully, most of these breaking changes have been in less important areas, or places where I’m leveraging functionality that’s very much non-standard (as is my wont to do).&lt;/p&gt;&lt;p&gt;To help detect these issues, I’ve found it to be quite useful to use two different GitHub Actions jobs in the repository that houses this site, one performs a build against the version of Hugo that I’m currently using, and the other builds against the latest version. While this won’t catch all issues, it does surface many issues before they start breaking deployments.&lt;/p&gt;&lt;h2 id="hosting"&gt;Hosting&lt;/h2&gt;&lt;p&gt;To keep the costs low, avoid maintaining another server, and ensure good performance, I opted to use Cloudflare Pages to host the site. This integrates cleanly with GitHub, it supports preview URLs, including for branches, which is an ideal way to get feedback before publishing, and allows me to write on any device, even without a local build environment, as it’s built on Cloudflare’s servers.&lt;/p&gt;&lt;p&gt;While there are quite a few providers that now offer similar services for static or otherwise edge-deployed sites, at the time Cloudflare offered the best features and the lowest price.&lt;/p&gt;&lt;p&gt;One beauty of Hugo and other static generators is that the site can be hosted anywhere. I intentionally don’t perform any edge compute, so this site could be hosted on a Raspberry Pi if I wanted. This adds great flexibility to move the site should the need arise, without needing to change or rebuild anything.&lt;/p&gt;&lt;h2 id="easy-extensibility"&gt;Easy Extensibility&lt;/h2&gt;&lt;p&gt;One thing I love about Hugo and other static generators, is that I can easily extend the build process to add new functionality that isn’t part of the framework itself. I’ve done this to add &lt;a href="https://adamcaudill.com/2021/09/06/hugo-content-based-related-content/"&gt;automated related content&lt;/a&gt;, &lt;a href="https://adamcaudill.com/2021/10/04/generating-content-stats-for-hugo/"&gt;generating content stats&lt;/a&gt;, and others. This allows you to achieve things that would normally require a dynamic website, or even perform more compute-intensive operations that simply couldn’t be performed in real-time in a server.&lt;/p&gt;&lt;p&gt;This allows you to think outside of the box in a way that would be difficult, and build rich and innovative features. It also allows you to extend these custom features without being bound to the framework. An example of this is the fairly simple content stats script mentioned above, which counts simple things like the number of words. Today, that has &lt;a href="https://adamcaudill.com/stats/"&gt;expanded&lt;/a&gt;, and even includes details such as Flesch reading ease score or the &lt;em&gt;hapax legomenon&lt;/em&gt; count. It’s evolved, and without needing to touch the framework itself.&lt;/p&gt;&lt;h2 id="what-else-would-i-use"&gt;What else would I use?&lt;/h2&gt;&lt;p&gt;If I was to rethink my use of Hugo, if I was to switch again, what would I use? After having used many platforms &amp;amp; frameworks, there are a few (and only a few) candidates I’d consider:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://ghost.org/"&gt;Ghost&lt;/a&gt; - This would be my first choice, and the most likely thing I would move to. It’s very clean, easy to use, minimal friction, and an overall great writing experience.&lt;/li&gt;&lt;li&gt;&lt;a href="https://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; - This is a very robust static generator, well designed, and extremely flexible. It has most of the benefits of Hugo, though does have some sharp edges in my experience.&lt;/li&gt;&lt;li&gt;&lt;a href="https://wordpress.org"&gt;WordPress&lt;/a&gt; - This is the classic and ubiquitous option, well established, massive collection of themes available, huge plugin ecosystem. While I was once a big fan of WordPress, it has evolved in ways that seem to be more suited being a CRM for more complex sites, and less focused on being a great writing platform&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There are many, many other options, though most of them I would avoid for one of two reasons:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Platform Lock-in - I don’t want my writing to be restricted to a single platform that’s eagerly waiting for the next payment. Of the options here, all can be self-hosted.&lt;/li&gt;&lt;li&gt;Writing not a Priority - Any framework or platform used needs to be focused on writing and making it easy and pleasant to &lt;em&gt;actually write&lt;/em&gt;. There are dozens of other static generators, but many are too focused on other use cases to be good for writers.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="will-i-switch-again"&gt;Will I switch again?&lt;/h2&gt;&lt;p&gt;This is a great question, and I’ve no idea. My writing habits may change, my needs may shift again, but for now, Hugo is ideal for my needs.&lt;/p&gt;&lt;p&gt;I’ve become quite a fan of Hugo, built at least a dozen sites using it, and I don’t plan on switching to anything else for the foreseeable future. If you are re-evaluating your writing platform, I would wholeheartedly recommend Hugo.&lt;/p&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:1"&gt;&lt;p&gt;With the &lt;a href="https://gohugo.io/hugo-modules/use-modules/"&gt;Hugo Modules&lt;/a&gt; system, you can bring in the full power of Go, though this does create a more complex build environment. For my uses, I’ve avoided that level of complexity.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:2"&gt;&lt;p&gt;While the files are HTML, the embedded Go Template code is obviously not standard HTML, and thus unlikely to receive proper syntax highlighting. As the code can be rather complex, this can make reading it somewhat difficult. There is a plugin for VSCode that addresses this, though it’s sadly broken and abandoned; I’ve &lt;a href="https://github.com/adcaudill/language-hugo-vscode"&gt;forked the project&lt;/a&gt; to correct the worst issues.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:3"&gt;&lt;p&gt;For those familiar with the WordPress history, Project Gutenberg represented a substantial shift in focus and approach, and one that I’ve never cared for. It added undue complexity to the writing experience, which, with the complexity that has grown over the years as it’s evolved into a more general purpose CRM, makes it less and less fit for a dedicated writing platform.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description></item><item><title>AI &amp; IAM: Focus on Fundamentals</title><link>https://adamcaudill.com/2026/01/09/ai-iam-focus-on-fundamentals/</link><pubDate>Fri, 09 Jan 2026 06:29:22 +0000</pubDate><guid>https://adamcaudill.com/2026/01/09/ai-iam-focus-on-fundamentals/</guid><description>&lt;p&gt;A recent article, &lt;em&gt;The Future of Cybersecurity Includes Non-Human Employees&lt;/em&gt;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, discussed the growing need to manage access granted to the rapidly expanding number of AI agents being deployed in companies. This is a deeply important topic, and particularly timely, as many are facing this challenge today. While I do want to address that topic, I also want to address how this is being framed.&lt;/p&gt;&lt;p&gt;Aside from leaning into an inflammatory tone with the use of &amp;ldquo;Non-Human Employees&amp;rdquo; as part of the title of the piece, there&amp;rsquo;s a deeper issue I see with how this is being framed, and it&amp;rsquo;s also related to AI. Importantly, this is far from unique to this article, but a trend across discussions of AI (and other new &amp;amp; emerging technologies). For the pragmatic security practitioner, a clear understanding of this framing device and the danger of accepting it unchallenged is of particular import.&lt;/p&gt;&lt;p&gt;Let&amp;rsquo;s take a closer look.&lt;/p&gt;&lt;h2 id="reframing-for-ai"&gt;Reframing for AI&lt;/h2&gt;&lt;p&gt;&amp;ldquo;Everything old is new again,&amp;rdquo; a phrase first uttered by Jonathan Swift, or Winston Churchill, or maybe it was Mark Twain&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; - whoever it was, it&amp;rsquo;s a simple phrase that&amp;rsquo;s apt as ever. With each substantial new technology, every existing challenge, every solved problem, every known risk gets reframed and repackaged and relabelled. For marketing teams, this is a fantastic opportunity to stake a claim on new territory, to assert leadership in solving some critical issue, to announce their solutions for these &amp;ldquo;new&amp;rdquo; problems.&lt;/p&gt;&lt;p&gt;AI is here, and everything is new again.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Non-human employees are becoming the future of cybersecurity, and enterprises need to prepare accordingly. As organizations scale Artificial Intelligence (AI) and cloud automation, there is exponential growth in Non-Human Identities (NHIs), including bots, AI agents, service accounts and automation scripts. In fact, 51% of respondents in ConductorOne&amp;rsquo;s 2025 Future of Identity Security Report said the security of NHIs is now just as important as that of human accounts. - &lt;em&gt;The Hacker News&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Here, in these first two sentences, my main objections to the framing are already clear.&lt;/p&gt;&lt;p&gt;Many of the challenges and risks aren&amp;rsquo;t actually new at all; they are the same as those that we in the security industry have been addressing for years. It&amp;rsquo;s new names for an old problem. They call it &amp;ldquo;Non-Human Identities&amp;rdquo; - for the last few decades this was called a service account. A new name for an old and well understood thing.&lt;/p&gt;&lt;p&gt;The danger of this framing is that it seeks to leverage new names and the association with a new technology to separate it from the well-established and well-understood approaches that have been refined over years of diligent work and careful analysis. This is great when you can sell something that addresses the problem. It’s the only thing this reframing is good for.&lt;/p&gt;&lt;p&gt;In reality, service accounts for AI are effectively the same as service accounts for any other form of automation&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;. As such, the mitigations for service accounts apply to agentic AI, and should be applied. This includes all of the controls that should always be applied, such as:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Least Privilege: As always, accounts should have the tightest possible set of privileges to complete the task, no more.&lt;/li&gt;&lt;li&gt;Separation of Concerns: Credentials and other secrets should be used for a single well-defined purpose, and nothing else. They should not be re-used for other processes or systems.&lt;/li&gt;&lt;li&gt;Credential Lifetime: Credentials should have the shortest possible lifetime, and be easily rotated.&lt;/li&gt;&lt;li&gt;Actionable Logging &amp;amp; Alerts: All automation should have clear logs, and alerts for unusual activity.&lt;/li&gt;&lt;li&gt;IP &amp;amp; Location Restrictions: Credentials used for automation should only be permitted within a known environment, any use outside of this controlled environment, should trigger accounts being disabled and immediate alerts.&lt;/li&gt;&lt;li&gt;Leak Detection: Logs and other automation artefacts should be automatically checked for secrets, authentication tokens, and other sensitive material.&lt;/li&gt;&lt;li&gt;Clear Ownership: The automated processes, data, and credential should have clear documented owners, with clear responsibilities - especially should issues arise.&lt;/li&gt;&lt;li&gt;Human Validation: When taking substantial actions, actions that can’t be reverted, or otherwise have significant impact, a human should be in the loop to validate that the action is intended and the results are desired.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;These apply to agentic AI just as much as they apply to any other service accounts. In other words: the key is to focus on the fundamentals. Regardless of the underlying technology, the key to achieving meaningful security is to focus on the fundamentals first, &lt;em&gt;then&lt;/em&gt; moving on to looking at the unique challenges.&lt;/p&gt;&lt;h2 id="non-deterministic-automation"&gt;Non-Deterministic Automation&lt;/h2&gt;&lt;p&gt;Agentic AI and other forms of LLM-based automation are fundamentally similar to other forms of automation, though there is a substantial point that is critical to understand: it’s non-deterministic. If I automate a process using Python, the process is fixed, and the behaviour is deterministic - which is to say, it will always do the same thing&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;. With AI, it will by its very nature, do something different each time it’s used&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&lt;p&gt;It is this factor that presents the first meaningful difference between traditional automation and LLM-based automation. As the automation can’t be assumed to produce a consistent result, and may misbehave in truly unpredictable ways, this introduces some new risks that need to be addressed.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;AI may attempt to perform actions beyond the intended scope, making the limitation of permissions particularly important. Implementing the principle of least privilege and maintaining strict separation of concerns are critical to avoid unintended activities.&lt;/li&gt;&lt;li&gt;AI may send secrets to search engines or other third-parties, making it important to restrict traffic and build deeper monitoring &amp;amp; leak detection&lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref"&gt;6&lt;/a&gt;&lt;/sup&gt; into the process. This results in short credential lifetimes and IP &amp;amp; location restrictions being more important than normal&lt;sup id="fnref:7"&gt;&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref"&gt;7&lt;/a&gt;&lt;/sup&gt;. It also shows the value of integrating proxies for web traffic, and wrappers &amp;amp; frameworks for code, to provide additional controls directly in the automation.&lt;/li&gt;&lt;li&gt;AI is subject to prompt injection, intentional or otherwise, which can cause radical departures from the intended behaviour, and thus any credentials or access the automation has can be abused in ways that would entirely defy expectations. This results in all input being potentially dangerous, and thus putting secrets at risk. This furthers the need to take the most restrictive and cautious approach possible.&lt;/li&gt;&lt;li&gt;AI agents can take unexpected paths to achieve results, as such, it’s critical that the permissions granted don’t include the ability to mint new tokens, assign permissions, or assume other roles. It would not be surprising to see an AI agent attempt this to circumvent an access control that resulted in an error message.&lt;/li&gt;&lt;li&gt;&lt;em&gt;et cetera&lt;/em&gt;. This list could grow, though there is a clear pattern, and it’s that pattern that matters.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There are a number of unique risks that come with giving agentic AI credentials and access to systems, though all of them are addressed by existing high-level controls. Yes, the details of the controls, and the best approach to effectuate those controls may be different, the underlying controls are the same.&lt;/p&gt;&lt;p&gt;It’s this change that matters, where a secret is used for a defined &lt;em&gt;intent&lt;/em&gt;, bound to a deterministic process, is now unbound to intent, and can be used in response to unexpected error messages, poisoned prompts, unanticipated data, or simply hallucinated steps in the process. Of course, with this change to unbind a secret to intent, it also can shift the impact to entirely different parts of the system or different data. This is where the practitioner needs to change how they reason about these risks and how they apply the controls to mitigate the risks.&lt;/p&gt;&lt;h2 id="fundamentals-always-come-first"&gt;Fundamentals Always Come First&lt;/h2&gt;&lt;p&gt;If you are facing the question of how to secure access for agentic AI&lt;sup id="fnref:8"&gt;&lt;a href="#fn:8" class="footnote-ref" role="doc-noteref"&gt;8&lt;/a&gt;&lt;/sup&gt;, focus on fundamentals first. Follow the best practices for any service account, ensure that those controls are in place, solid, and validated. Once that’s done, then start looking at the unique risks.&lt;/p&gt;&lt;p&gt;If you focus excessively on what’s different about AI-based automation, you risk missing the basic controls that will address most of the unique issues - and the issues that impact your other service accounts.&lt;/p&gt;&lt;p&gt;As is always the case in security, follow the fundamentals.&lt;/p&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:1"&gt;&lt;p&gt;&lt;a href="https://thehackernews.com/2026/01/the-future-of-cybersecurity-includes.html"&gt;The Hacker News&lt;/a&gt;, January 7, 2026. The article does share insight, though ends as a sales pitch for a Keeper product.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:2"&gt;&lt;p&gt;When in doubt, it&amp;rsquo;s common to attribute most any quote to Mark Twain, as he was an incredible source of fantastic quotes, though the collection of apocryphal quotes are far larger and far more impressive. In this case, finding the true source of this statement is far from clear, though Jonathan Swift is likely the best fit for oldest variant of it. Or, you can just go with Stephen King&amp;rsquo;s &amp;ldquo;sooner or later, everything old is new again&amp;rdquo; line from &lt;em&gt;The Colorado Kid&lt;/em&gt;.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:3"&gt;&lt;p&gt;The article uses the term “Non-Human Employees”, though I reject this framing entirely. While I have written exploring the further-future issue of &lt;a href="https://adamcaudill.com/2025/02/17/when-ai-becomes-i/"&gt;artificial life and intelligence&lt;/a&gt;, though we aren’t remotely close to this. As noted in the linked article, from what I believe to be a reasonably educated position on the topic, I don’t anticipate seeing this in my lifetime. As such, these are not, by any accurate definition, employees - this is automation.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:4"&gt;&lt;p&gt;This is a slight oversimplification, though is fundamentally accurate, in that the instructions executed will be the same, though depending on how the code is written, it may still result in somewhat different outcomes. For the sake of this comparison, executing a fixed and pre-defined set of instructions is sufficient to call this type of automation deterministic.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:5"&gt;&lt;p&gt;As above, this is a slight oversimplification, though to a lesser extent. LLMs are, by definition, statistical models and produce inconsistent results, even when given identical prompts. While the level of entropy involved can be tuned, reducing the variance in results, the fact remains the the models are statistical, and it’s not possible to ensure consistent results.&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:6"&gt;&lt;p&gt;Leak detection for credentials and API keys is particularly important for all cases, though there is one that is very much unique to LLMs: secrets have been known to find their way into LLM training materials, resulting in others gaining access to API keys that may still be valid. This is just one of the various issues that can occur if prompts are used for training.&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:7"&gt;&lt;p&gt;There is also the matter of PII and other sensitive data that can be leaked, but for the sake of this article, I will maintain a focus on IAM and associated secrets management. Broader questions around AI safety are best addressed separately.&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:8"&gt;&lt;p&gt;The question of &lt;em&gt;if&lt;/em&gt; you should use agentic AI is left as an exercise for the reader.&amp;#160;&lt;a href="#fnref:8" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description></item><item><title>On Privacy Nihilism</title><link>https://adamcaudill.com/2026/01/06/on-privacy-nihilism/</link><pubDate>Tue, 06 Jan 2026 20:29:22 +0000</pubDate><guid>https://adamcaudill.com/2026/01/06/on-privacy-nihilism/</guid><description>&lt;p&gt;Amongst the steady stream of marketing emails for gift cards and other last minute gifts in the days before Christmas, buried in the noise sent when people are least likely to see it, was a notice. It was an all-too-familiar “we take your privacy seriously, but” email. Perfectly timed to make it clear that privacy wasn’t that important.&lt;/p&gt;&lt;p&gt;This wasn’t just my email address being leaked, this was &lt;em&gt;everything&lt;/em&gt;. Name, address, income, employer, &lt;em&gt;social security number&lt;/em&gt;. Each record stolen was essentially an identity theft kit; everything needed in one place. From a privacy and data security perspective, few things are worse.&lt;/p&gt;&lt;p&gt;Yet the only thing remarkable about my reaction to that notice was that it was entirely unremarkable, more blasé than nonplussed. This was far from the first such notice, not even in the first dozen such notices. This has in fact become so routine that I’ve simply lost count of the number of occurrences thus far, it’s in the dozens.&lt;/p&gt;&lt;p&gt;The state of privacy and data security has become so deficient &amp;amp; dysfunctional that my oldest child had his first data breach notification, revealing his social security number to attackers, at less than &lt;em&gt;6 months old&lt;/em&gt;. He never had a chance to protect his information.&lt;/p&gt;&lt;p&gt;While I’ve focused on - and fought for - user privacy for much of my career, this unending series of failures has changed how I see my own privacy.&lt;/p&gt;&lt;h2 id="failure-made-personal"&gt;Failure Made Personal&lt;/h2&gt;&lt;p&gt;As an industry, we have solved some of the hardest technical problems, we’ve devised solutions to many of the thorniest issues, and we’ve created tools and techniques to make finding and fixing issues easier than ever. Annual spending on security is now estimated to be an incredible $200,000,000,000&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;. That’s a remarkable number of zeros.&lt;/p&gt;&lt;p&gt;Yet, hacks have far from stopped. But for some, myself included, the caring has.&lt;/p&gt;&lt;p&gt;While I still fight for the privacy of users, I’m generally a privacy nihilist when it comes to my own information. I’ve given up. Call it emotional exhaustion or cynical realism, I’ve accepted that my data has been leaked and stolen so many times that there’s no point in making any extraordinary effort to protect it.&lt;/p&gt;&lt;p&gt;That said, that doesn’t mean we should abandon protecting others, forgetting what &lt;a href="https://adamcaudill.com/2025/12/10/good-faith-moral-duty-and-selfishness/"&gt;we owe each other&lt;/a&gt; in a moral sense, or abdicating the responsibility that comes with skills and abilities we’ve developed.&lt;/p&gt;&lt;h2 id="incentives"&gt;Incentives&lt;/h2&gt;&lt;p&gt;We can, and should, do better. We can, and should avoid such absurd situations as babies receiving data breach notifications, yet this is the world that we live in. And I have some thoughts as to why.&lt;/p&gt;&lt;p&gt;In 2018, I drafted an article about a breach - that article wasn’t published at the time - I’d like to share a portion of it here. It seems to have aged fairly well.&lt;/p&gt;&lt;div class="indent-text"&gt;&lt;p&gt;There is much said about the cost of a breach, on &lt;a href="https://www.comparitech.com/blog/information-security/data-breach-share-price/"&gt;stock prices&lt;/a&gt; to fines, fees, and lawsuits. However there is little agreement on these numbers and there is a common opinion that many of these estimates overstate the cost. One analysis from &lt;del&gt;this year&lt;/del&gt; 2018 puts the cost at $141 per record stolen, however looking at the impact to specific well known breaches, this number appears to be vastly higher than the actual cost.&lt;/p&gt;&lt;p&gt;When a business makes budget decisions, they look at many things, from regulatory and contractual requirements to estimates of breach costs (legal, public relations, sales, &amp;amp;c). All of these factors feed into the decision on what can be spent on security while maximising profit. This makes the cost of a breach extremely important: the lower the cost, the easier it is to justify spending less to prevent one. This is an unfortunate reality of business; in every decision there is a certain amount of risk accepted, and reducing that risk by too much means a loss of profits that investors expect to see.&lt;/p&gt;&lt;p&gt;There have been efforts in the United States and around the world to fine those companies that fail to properly protect sensitive data, however at least in the United States, the regulations that have made it into law so far have fairly limited impact. In the case of credit card data being stolen, the issuing banks absorb much of the cost. In some cases the banks are able to recover some of the losses, however the amount recovered isn&amp;rsquo;t substantial.&lt;/p&gt;&lt;p&gt;In the 2013 Target breach, approximately 40 million cards were exposed, banks sued Target claiming hundreds of millions in losses. Target settled for $106.4M, or roughly $2.66 per card lost. According to the 2016 Target annual report (the most recent available in 2018), the cost of the breach was approximately $300M, though with insurance and tax deductions, this was reduced substantially. This is for a company with around $3B in annual profits. While having 40M cards stolen seems like a devastating breach, the long term cost and impact has been effectively inconsequential.&lt;/p&gt;&lt;p&gt;This leads us to a disturbing realisation if you care about your data: many companies are investing just enough to achieve legal &amp;amp; regulatory compliance, but not enough to keep your data from being stolen.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;In the 8 years since I wrote those words, they have weighed on me, and my view of how most companies treat the data they’re entrusted with. Some companies work hard to protect data, limit what they collect, and invest heavily in avoiding the need to send out one of those emails. Others, not so much.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Show me the incentive and I&amp;rsquo;ll show you the outcome. - &lt;em&gt;Charlie Munger&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Incentives are often aligned towards simple solutions, shifting responsibility, compliance often as theatre, and security too often seen as a means to avoid liability instead of achieving actual results.&lt;/p&gt;&lt;p&gt;One of the simplest ways to look at business leadership is that it’s a continuous balancing act of risks. Often, investments are focused on bringing these risks down to the point that the probabilities shift to the favour of the business. Once that’s done, it can be difficult to justify spending more. This is especially true for costs that are largely externalised to other parties, and especially individuals who have little opportunities to resist the imposition of these costs.&lt;/p&gt;&lt;p&gt;The challenge for those in the industry has long been finding ways to protect users, with the resources available.&lt;/p&gt;&lt;h2 id="fighting-the-good-fight"&gt;Fighting the Good Fight&lt;/h2&gt;&lt;p&gt;For much of my career I’ve focused on protecting the privacy and security of users, from my work in applied cryptography, to writing and speaking on privacy &amp;amp; data security, and of course, advocating for end-user privacy protections everywhere I go. Not because I’m zealously protecting my own information - that ship has sailed - but because we can and should do a better job of protecting people.&lt;/p&gt;&lt;p&gt;One thing I’ve always loved about the security community is that we will always do everything we can to help others, to protect people, to put in the time, effort, and energy needed to go beyond what should be possible with the resources available. A group of people that still solve problems just because they are hard.&lt;/p&gt;&lt;p&gt;Personally, I’ve little hope for my information, though I will never give up on protecting everyone else. Some who saw the title of this essay likely assumed that this was an abdication of privacy and the need to protect data. I hope you see the point is actually quite different: even if the effort is futile for some of us, the collective effort is more important than ever to achieve results.&lt;/p&gt;&lt;p&gt;We can and should do better.&lt;/p&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:1"&gt;&lt;p&gt;&lt;a href="https://www.gartner.com/en/newsroom/press-releases/2024-08-28-gartner-forecasts-global-information-security-spending-to-grow-15-percent-in-2025"&gt;Gartner forecast&lt;/a&gt; - $212B in 2025.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description></item><item><title>Dynamic Social Media Images for Hugo</title><link>https://adamcaudill.com/2026/01/06/dynamic-social-media-images-for-hugo/</link><pubDate>Tue, 06 Jan 2026 03:29:22 +0000</pubDate><guid>https://adamcaudill.com/2026/01/06/dynamic-social-media-images-for-hugo/</guid><description>&lt;p&gt;I&amp;rsquo;m a big fan of &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; as a publishing platform, it&amp;rsquo;s the framework behind this site, and is incredibly flexible - if you are willing to invest the time and effort to make it truly yours. It&amp;rsquo;s fast, versatile, and has robust theming support. However, it&amp;rsquo;s also a static site generator, so doing anything dynamic means doing some extra work (as you have to do it at build time).&lt;/p&gt;&lt;p&gt;My life philosophy can be summed up to &amp;ldquo;work hard to be lazy&amp;rdquo; - in this case, that means I want a solution for social media sharing (OpenGraph) images that I will work without me needing to think about them again. This way, when a link is shared to Bluesky, Mastodon, LinkedIn, or other platforms, a reasonable image will be shown - even if I didn&amp;rsquo;t include an image for the article.&lt;/p&gt;&lt;p&gt;More importantly, I was a solution that&amp;rsquo;s smart about what images it uses.&lt;/p&gt;&lt;p&gt;The solution I use here will select the image to be used, with a series of fallback options, so that there is always an image. In the case of the code below, it uses the following options, in order:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;images&lt;/code&gt; from the frontmatter.&lt;/li&gt;&lt;li&gt;&lt;code&gt;photo&lt;/code&gt; from the frontmatter.&lt;/li&gt;&lt;li&gt;Image resources for the page with &amp;ldquo;feature&amp;rdquo; in the name.&lt;/li&gt;&lt;li&gt;Image resources for the page with &amp;ldquo;cover&amp;rdquo; or &amp;ldquo;thumbnail&amp;rdquo; in the name.&lt;/li&gt;&lt;li&gt;The first image on the page.&lt;/li&gt;&lt;li&gt;A generated image with the page title.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This ensures that there will always be an image, that it will make the most reasonable choice about what that image is, and, importantly, that I don&amp;rsquo;t need to lift a finger. There&amp;rsquo;s nothing to forget, no risk of there being no image.&lt;/p&gt;&lt;p&gt;This is an ideal solution for people like me that sometimes will add images, but often won&amp;rsquo;t This ensures that when shared on social media, it always looks good.&lt;/p&gt;&lt;h2 id="generating-images"&gt;Generating Images&lt;/h2&gt;&lt;p&gt;The final fallback option, the generated image with the page title is the most recent addition to this design, as in the past the code simply used a single static image. These images are generated using Hugo&amp;rsquo;s native &lt;a href="https://gohugo.io/functions/images/text/"&gt;images.Text&lt;/a&gt; filter, making it quite easy to apply text to an image (it does just what it says on the box). This is a surprisingly friendly and feature.&lt;/p&gt;&lt;p&gt;This does require a little setup, there are two files that will need to be added to your &lt;code&gt;assets/&lt;/code&gt; directory.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Font: You will need to add the font you want to use to the &lt;code&gt;assists/fonts&lt;/code&gt; directory. A broad selection of these can be found on the &lt;a href="https://github.com/google/fonts/"&gt;Google Fonts Github repo&lt;/a&gt;. Personally, I used &lt;a href="https://fonts.google.com/specimen/IM+Fell+English"&gt;IM Fell English&lt;/a&gt;, as I love the history behind it, though there are countless options available to suit your site and taste.&lt;/li&gt;&lt;li&gt;Background Image: You will also need the background image, 1200 x 630 pixels, in the &lt;code&gt;assets/og-image&lt;/code&gt; directory. This is the image that the text will be applied to.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In the code below, you will need to update the file names as appropriate.&lt;/p&gt;&lt;p&gt;In the code below, you&amp;rsquo;ll see the heavy lifting for the image generation:&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-go-html-template" data-lang="go-html-template"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$fontPath&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;fonts/IMFeENrm28P.ttf&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$imagePath&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;og-image/bg.jpeg&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$filter&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$r&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$text&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.Title&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$font&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;resources&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;.Get&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$fontPath&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$r&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;resources&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;.Get&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$imagePath&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$opts&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;dict&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;alignx&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;left&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;aligny&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;bottom&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;color&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;#ffffff&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;font&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$font&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;linespacing&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;size&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;80&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;x&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;10&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;y&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;sub&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.Height&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;25&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$filter&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;images&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;.Text&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$text&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$opts&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is a thankfully straightforward implementation of this feature, loading the font and image as resources, collecting the page title as the text to apply, then defining the set of options we&amp;rsquo;ll use to apply the text. In my case, to match the site&amp;rsquo;s header, the text is white, the text is placed at the bottom left, and the offset are selected to keep the text visible without running off the image.&lt;/p&gt;&lt;p&gt;This image processing is quite fast, though for large sites, it can slow the generation process down. In my case, the slowdown is approximately 4 seconds.&lt;/p&gt;&lt;h2 id="the-code"&gt;The Code&lt;/h2&gt;&lt;p&gt;The theme for this site started as the publicly available &lt;a href="https://github.com/funkydan2/hugo-kiera/tree/master"&gt;Kiera&lt;/a&gt; theme, though has been almost entirely rebuilt, and this incudes often replacing the use of Hugo&amp;rsquo;s built-in theme components, and replacing or extending them. The code for my OpenGraph image handling is no different, starting as a &lt;a href="https://github.com/gohugoio/hugo/blob/release-0.118.2/tpl/tplimpl/embedded/templates/opengraph.html#L6-L17"&gt;11 lines&lt;/a&gt; of code built into Hugo, it grew substantially.&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-go-html-template" data-lang="go-html-template"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.IsPage&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$imgs&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;findRE&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;lt;img.*src=(?:\&amp;#34;|&amp;#39;)(.*?)(?:\&amp;#34;|&amp;#39;).*?&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.Content&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;1&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$imgs&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$img&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;index&lt;/span&gt; &lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;$imgs&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;0&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$first_img&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;replaceRE&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;lt;img.*src=(?:\&amp;#34;|&amp;#39;)(.*?)(?:\&amp;#34;|&amp;#39;).*?&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;$1&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$img&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$first_img&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$first_img&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$first_img&lt;/span&gt; &lt;span style="color:#f92672"&gt;|&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;absURL&lt;/span&gt;&lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$.Scratch.Set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;first_img&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$first_img&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$fontPath&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;fonts/IMFeENrm28P.ttf&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$imagePath&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;og-image/bg.jpeg&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$filter&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$r&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$text&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.Title&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$font&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;resources&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;.Get&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$fontPath&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$r&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;resources&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;.Get&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$imagePath&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$opts&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;dict&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;alignx&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;left&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;aligny&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;bottom&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;color&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;#ffffff&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;font&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$font&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;linespacing&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;size&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;80&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;x&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;10&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;y&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;sub&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.Height&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;25&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$filter&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;images&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;.Text&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$text&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$opts&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$.Params.images&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;range&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;first&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;6&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;meta&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;property&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;og:image&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;content&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.&lt;/span&gt; &lt;span style="color:#f92672"&gt;|&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;absURL&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$.Params.photo&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;meta&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;property&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;og:image&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;content&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.&lt;/span&gt; &lt;span style="color:#f92672"&gt;|&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;absURL&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$images&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$.Resources.ByType&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;image&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$featured&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$images&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;.GetMatch&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;*feature*&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;not&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$featured&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$featured&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$images&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;.GetMatch&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;{*cover*,*thumbnail*}&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$featured&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;meta&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;property&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;og:image&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;content&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$featured&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;.Permalink&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$.Scratch.Get&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;first_img&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;meta&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;property&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;og:image&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;content&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$r&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.&lt;/span&gt; &lt;span style="color:#f92672"&gt;|&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;images&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;.Filter&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;$filter&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;meta&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;property&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;og:image&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;content&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.Permalink&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;{{-&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;end&lt;/span&gt; &lt;span style="color:#75715e"&gt;-}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For my site, I&amp;rsquo;ve placed this in a dedicated file, &lt;code&gt;opengraph_image.html&lt;/code&gt;, which is included as a partial in my header file. Whenever possible, I keep self-contained blocks such as this in separate files to improve readability and keep any other files from uncontrollable growth.&lt;/p&gt;&lt;p&gt;This provides an approach that is incredibly simple for day-to-day use, while being extremely flexible and ensuring a positive sharing experience for readers. This can be implemented in only a few minutes but will save you time and leave you with one less thing to worry about in the future.&lt;/p&gt;&lt;p&gt;If you are building or improving a Hugo site, I hope this was useful to you.&lt;/p&gt;</description></item><item><title>Lessons Learned from 20 Years &amp; Why You Should Blog</title><link>https://adamcaudill.com/2026/01/04/lessons-learned-from-20-years-why-you-should-blog/</link><pubDate>Sun, 04 Jan 2026 08:29:22 +0000</pubDate><guid>https://adamcaudill.com/2026/01/04/lessons-learned-from-20-years-why-you-should-blog/</guid><description>&lt;p&gt;Twenty years ago, I started publishing articles and essays here, and I recently published the &lt;a href="https://adamcaudill.com/2026/01/02/five-hundred/"&gt;500th post&lt;/a&gt; to this site. After writing &lt;strong&gt;267,897&lt;/strong&gt; words here and investing &lt;strong&gt;2,100&lt;/strong&gt; hours into this site, I&amp;rsquo;ve learned a few things, made some mistakes, and I&amp;rsquo;d like to share some of these insights with you. Whether you are a veteran of the blogosphere or questioning if you should dip your toes in the waters (you should), I think you will find some useful information here.&lt;/p&gt;&lt;p&gt;This isn&amp;rsquo;t a how-to, this isn&amp;rsquo;t a collection of best practices, and this certainly isn&amp;rsquo;t a &amp;ldquo;how to get rich as a blogger&amp;rdquo; guide. This is what I&amp;rsquo;ve learned from making mistakes over the last 20+ years, and how you can avoid them, or maybe this will help you see that you&amp;rsquo;ve been making the same mistake.&lt;/p&gt;&lt;p&gt;I hope that you will find this to be helpful. Also, there&amp;rsquo;s no narrative arc, so feel free to jump around and focus on the sections that are most interesting to you.&lt;/p&gt;&lt;h2 id="tools-matter"&gt;Tools Matter&lt;/h2&gt;&lt;p&gt;The tools you use to collect ideas, draft posts, and systems used to publish your writing are far more important than they may seem at first. This isn&amp;rsquo;t just a matter of fighting bad tools, but because each tool or system used has a tendency to add a bit of friction to the process, and the greater the friction, the less you will write over time.&lt;/p&gt;&lt;p&gt;This friction builds up over time, compounding, and eventually thwarts the desire to actually write.&lt;/p&gt;&lt;h3 id="minimise-friction"&gt;Minimise Friction&lt;/h3&gt;&lt;p&gt;Whether you are using a (self-)hosted platform or a static generator, pick a framework that doesn&amp;rsquo;t get in your way. Pick something that allows you to write with the smallest number of annoyances and extra steps.&lt;/p&gt;&lt;p&gt;A great example of this is &lt;a href="https://ghost.org/"&gt;Ghost&lt;/a&gt;, it&amp;rsquo;s clean and simple. Or &lt;a href="https://write.as/"&gt;write.as&lt;/a&gt;, which has a beautiful focus on simplicity &amp;amp; elegance. Or any of a dozen other options.&lt;/p&gt;&lt;p&gt;While it&amp;rsquo;s important to look at the features, to ensure it&amp;rsquo;ll do what you need, it&amp;rsquo;s more important to choose an option that stays out of your way. Don&amp;rsquo;t compromise on ease of use for any other feature, as nothing else matters if you eventually lose interest in writing.&lt;/p&gt;&lt;h3 id="dynamic-vs-static"&gt;Dynamic vs. Static&lt;/h3&gt;&lt;p&gt;There are two types of publishing frameworks, those that dynamically generate the pages on the server, such as Ghost or WordPress, and static generators that build the files needed, and can be served without any code running on the server.&lt;/p&gt;&lt;p&gt;These static generators shift all the work to your computer over the server, allowing the site you publish to be more secure, incredibly fast, and opens the door to far more (and cheaper) hosting options. The tradeoff is that adding content is more time consuming and complex.&lt;/p&gt;&lt;p&gt;This site uses &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt;, as with Hugo, the added complexity is low enough that the tradeoffs are worth it. There are a &lt;a href="https://github.com/myles/awesome-static-generators"&gt;huge number&lt;/a&gt; of options for static generators, each with a different set of tradeoffs.&lt;/p&gt;&lt;h3 id="tools-are-temporary-data-is-forever"&gt;Tools are Temporary. Data is Forever&lt;/h3&gt;&lt;p&gt;It&amp;rsquo;s critical to carefully select the tools you use, and re-evaluate these from time to time, ensuring that they are actually serving your workflow well. If your tools aren&amp;rsquo;t working, &lt;em&gt;throw them out&lt;/em&gt;. While moving data and overhauling workflows may be a temporary inconvenience, that pain won&amp;rsquo;t last as long as using the wrong tools.&lt;/p&gt;&lt;p&gt;Thankfully, nearly all blogging platforms offer export &amp;amp; import systems, making it a straightforward process to move between platforms. While this isn&amp;rsquo;t always as easy as one would like, the important thing is that the option is there. It&amp;rsquo;s important that you aren&amp;rsquo;t forced into a single platform.&lt;/p&gt;&lt;p&gt;One important thing to remember if you look at changing platforms, make sure you pay attention to anything that could break links. From the URL structure for your posts, to the location of your RSS feed, make sure that you either match these after the move, or add redirects to ensure that nothing breaks.&lt;/p&gt;&lt;h3 id="own-your-name"&gt;Own Your Name&lt;/h3&gt;&lt;p&gt;No matter what you use, make sure that you are using a domain name that you own. This isn&amp;rsquo;t just for branding, it&amp;rsquo;s to ensure that you always have the freedom to switch platforms, tools, underlying technologies, you name it. This way you always have options.&lt;/p&gt;&lt;p&gt;While this does add some cost, it also ensures that you aren&amp;rsquo;t beholden to any single company. If they make a change you don&amp;rsquo;t like, just move your site.&lt;/p&gt;&lt;h3 id="my-tool-stack"&gt;My Tool Stack&lt;/h3&gt;&lt;p&gt;As noted above, this site is built using &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt;, though it didn&amp;rsquo;t start there. Originally, back in 2006, this site used &lt;a href="https://wordpress.org/"&gt;WordPress&lt;/a&gt;, then moved to Octopress, then to &lt;a href="https://jekyllrb.com/"&gt;Jekyll&lt;/a&gt;, then back to WordPress, and then, in 2021, to Hugo.&lt;/p&gt;&lt;p&gt;For writing, most posts start in &lt;a href="https://getdrafts.com/"&gt;Drafts&lt;/a&gt;, a great app for iOS and macOS, that has fantastic markdown support and using iCloud to sync between devices. I will typically use this to capture the first notes of an idea, and then work on the prose on and off, sometimes over years. This is one of my favourite parts of my workflow, it&amp;rsquo;s fantastic.&lt;/p&gt;&lt;p&gt;Once a piece is ready for serious focus, I then move to &lt;a href="https://ia.net/writer"&gt;iA Writer&lt;/a&gt;, one of the best dedicated writings apps I&amp;rsquo;ve used. This is where the real work happens, and it has a feature set that&amp;rsquo;s ideal for actually getting that work done.&lt;/p&gt;&lt;p&gt;If I need to share an early copy of a piece for review or editing, I use &lt;a href="https://ellipsus.com/"&gt;Ellipsus&lt;/a&gt;, due to its great collaboration features.&lt;/p&gt;&lt;h2 id="writing--content-choices"&gt;Writing &amp;amp; Content Choices&lt;/h2&gt;&lt;p&gt;What you write, how you approach it, and even how you think about where you&amp;rsquo;re publishing this work is extremely important. And, unsurprisingly for anyone who&amp;rsquo;s been a reader for a while, I have thoughts.&lt;/p&gt;&lt;h3 id="build-a-website-not-a-blog"&gt;Build a Website, Not a Blog&lt;/h3&gt;&lt;p&gt;While I will say that I&amp;rsquo;ve been blogging for decades, this is &lt;em&gt;not&lt;/em&gt; a blog. This site includes a blog, but it&amp;rsquo;s &lt;em&gt;not just a blog&lt;/em&gt;. I publish articles about current events, essays, research, fiction, photography, it&amp;rsquo;s also where I keep my resume, and a whole variety of other things. This goes well beyond a blog, and I encourage others to do the same.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Why?&lt;/em&gt; Let me explain.&lt;/p&gt;&lt;p&gt;Your site is an archive of your work, your growth, your career, and your life. Wins and losses, lessons learned, and insight into who you are - not just one facet of you - all of these things matter, and all deserve to be given space.&lt;/p&gt;&lt;p&gt;Use your space on the internet for everything you can. It&amp;rsquo;s not just a place to share thoughts, but a place to share what matters to you, what people should know, and gives you a place to bring everything together. It&amp;rsquo;s important to understand and accept that not every reader will be interested in everything you post. You can&amp;rsquo;t please all the people all the time, so the best approach is to instead tailor each piece to a specific audience, and if others appreciate it, all the better.&lt;/p&gt;&lt;p&gt;Grow beyond blogging, own the space and make it yours.&lt;/p&gt;&lt;h3 id="ignore-the-analytics"&gt;Ignore the Analytics&lt;/h3&gt;&lt;p&gt;This site used to be hosted on a platform that would count views for each post, and then I used Google Analytics to gather more data about the traffic this site got, what topics were popular, and which ones didn&amp;rsquo;t perform well. Using analytics like that is basically blogging 101.&lt;/p&gt;&lt;p&gt;Years ago I moved to a platform that can&amp;rsquo;t count views, then I removed Google Analytics. This is one of the most freeing decisions I&amp;rsquo;ve made in running this site. It allowed me to focus not on what would get the most reliable traffic, but instead on topics that mattered to me, or were learned through painful experience, or were being poorly addressed in media.&lt;/p&gt;&lt;p&gt;When you focus on the numbers, you soon find yourself serving the numbers, instead of those that could learn the most from your knowledge and experience. Ignore the numbers, write what you care about, and say what you need to say.&lt;/p&gt;&lt;h3 id="think-in-decades-not-quarters"&gt;Think In Decades, Not Quarters&lt;/h3&gt;&lt;p&gt;When you are planning your posts, it&amp;rsquo;s helpful to think about the intended use &lt;a href="https://adamcaudill.com/2020/11/27/write-like-you-are-running-out-of-time/"&gt;lifespan of the post&lt;/a&gt;. Will it still be useful in a month? In a year? Five years, or even 10 years? While it&amp;rsquo;s useful to write content about what&amp;rsquo;s happening today, there&amp;rsquo;s substantial value in writing for the next decade.&lt;/p&gt;&lt;p&gt;Writing content that will still be valid and, more importantly, useful in the next decade means that you&amp;rsquo;re building up a corpus that goes so far beyond news cycles. Your content is likely going beyond specific technologies. This creates a rich set of references that you can link to, and content that will always be useful, and will help you to grow an audience that values your insight.&lt;/p&gt;&lt;p&gt;In the special &lt;a href="https://adamcaudill.com/2026/01/02/five-hundred/"&gt;500th post&lt;/a&gt; retrospective, I&amp;rsquo;ve cited quite a few posts, many of which are several years old, yet are still useful and actionable today.&lt;/p&gt;&lt;h3 id="be-authentic"&gt;Be Authentic&lt;/h3&gt;&lt;p&gt;Readers want to hear your &lt;em&gt;voice&lt;/em&gt;, and even if you don&amp;rsquo;t know what it is yet, every writer has a voice. One major difference between sites that get traffic and those that get lost in the noise, is providing an authentic voice that people can sympathise with.&lt;/p&gt;&lt;p&gt;Be you, not a fake persona, not the person that you think people want, and especially, &lt;a href="https://adamcaudill.com/2025/12/27/why-i-will-never-write-with-ai/"&gt;don&amp;rsquo;t use AI as a cheat code&lt;/a&gt; as a way to create content faster.&lt;/p&gt;&lt;p&gt;Providing a real, relatable, and authentic view of yourself is the most important thing you can do to build an audience that will come back, will give you feedback, and will share your work with others that can benefit from it.&lt;/p&gt;&lt;h3 id="quality-over-quantity"&gt;Quality Over Quantity&lt;/h3&gt;&lt;p&gt;The early posts here weren&amp;rsquo;t great, to say the least. The posts were short and frequent, several posts each month, yet the quality was far from ideal. Over the years, I&amp;rsquo;ve shifted more and more to exclusively long-form content, with the average length of posts in the 2020s being over 1,600 words, with several exceeding 5,000 words.&lt;/p&gt;&lt;p&gt;While the typical guide for bloggers is to push for a regular &amp;amp; frequent posting cadence, I&amp;rsquo;ve found this to be a mistake. Taking time, as much as needed, to create a better and deeper post is far more useful to readers than a short aside that provokes little thought.&lt;/p&gt;&lt;p&gt;The posts here are sometimes built over months (or more), and may have dozens of hours of work invested in them. This level of effort is clear to readers, and provides far more long-term value.&lt;/p&gt;&lt;h3 id="link-dont-repeat"&gt;Link, Don&amp;rsquo;t Repeat&lt;/h3&gt;&lt;p&gt;Once you&amp;rsquo;ve invested the time to cover a topic well, don&amp;rsquo;t repeat yourself in later posts, link back to the original. This both keeps your older content alive, it allows you to focus on being clear as possible for the topic at hand, instead of trying to cover multiple topics at once.&lt;/p&gt;&lt;p&gt;As you build up your corpus of long-lived content, you will find plenty of opportunities build on your existing content, and write topics that build on what you&amp;rsquo;ve written before. By creating these &amp;ldquo;base posts&amp;rdquo;, posts that exist primarily to make an underlying point and be linked to, you can create an evolving argument.&lt;/p&gt;&lt;p&gt;While I still struggle with remembering to look for opportunities to link to prior posts, it&amp;rsquo;s worth the effort.&lt;/p&gt;&lt;h2 id="own-your-space--write"&gt;Own Your Space &amp;amp; Write&lt;/h2&gt;&lt;p&gt;While I&amp;rsquo;m &lt;a href="https://adamcaudill.com/2025/12/29/is-long-form-writing-dead/"&gt;concerned about the state of reading&lt;/a&gt;, I&amp;rsquo;m a firm believer that it&amp;rsquo;s more important than ever to &lt;a href="https://adamcaudill.com/2026/01/02/five-hundred/#writing-is-more-important-than-ever"&gt;share knowledge and experience&lt;/a&gt;. Now isn&amp;rsquo;t the time to retreat, much the opposite, it&amp;rsquo;s time to lift everyone else up.&lt;/p&gt;&lt;p&gt;I started to draft a longer argument here about why you should blog if you aren&amp;rsquo;t already, though JA Westenberg recently made this argument beautifully in &lt;em&gt;&lt;a href="https://www.joanwestenberg.com/the-case-for-blogging-in-the-ruins/"&gt;The Case for Blogging in the Ruins&lt;/a&gt;&lt;/em&gt;. You should go read that.&lt;/p&gt;&lt;h2 id="the-next-decade"&gt;The Next Decade&lt;/h2&gt;&lt;p&gt;The next decade of this website has begun, and I&amp;rsquo;ve no intention of stopping anytime soon. This is a way to refine my skills, to share my experiences, to help others avoid my mistakes, and to pay a debt to all those that helped me when I was just getting started.&lt;/p&gt;&lt;p&gt;Writing like this, while time consuming, is a gift to yourself and the world, and one that I believe is worthwhile. Here&amp;rsquo;s to the next decade.&lt;/p&gt;</description></item><item><title>Five Hundred</title><link>https://adamcaudill.com/2026/01/02/five-hundred/</link><pubDate>Fri, 02 Jan 2026 08:29:22 +0000</pubDate><guid>https://adamcaudill.com/2026/01/02/five-hundred/</guid><description>&lt;p&gt;The year was 2006 when I registered &lt;code&gt;adamcaudill.com&lt;/code&gt; and set up WordPress to host this site. I had recently moved, started a new job as a software developer, and I wanted a new place to share thoughts, code, and the insight I was gathering along the way. I made the very &lt;a href="https://adamcaudill.com/2006/02/25/starting-over/"&gt;first post&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;It will be 20 years, next month, since that first post, a short note from someone still finding his legs in the industry and far from finding his legs as a writer. Through the 2000s, the average length of the posts was only 240 words. Far from the long-windedness common in my more recent work.&lt;/p&gt;&lt;p&gt;This post marks the &lt;em&gt;500th post&lt;/em&gt; here.&lt;/p&gt;&lt;p&gt;During 2006, I posted frequently, several times each month. Most of these posts were short, filled with typos, and were generally short asides about news in technology. These early, and often embarrassing posts, are easily browsed on the &lt;a href="https://adamcaudill.com/archive/"&gt;archive&lt;/a&gt; page. Over time, activity died down, sometime only posting once in a year. Though the changes to the content were even larger.&lt;/p&gt;&lt;p&gt;My philosophy about how and what I wrote evolved, and eventually &lt;a href="https://adamcaudill.com/2020/11/27/write-like-you-are-running-out-of-time/"&gt;articulated&lt;/a&gt;, to long-form articles and essays that are less about breaking news, and more often about topics that will be relevant for years. Discussions meant to be thought provoking. Insight earned from hard experience. Original &lt;a href="https://adamcaudill.com/research/"&gt;research&lt;/a&gt;, and technology tips meant to address challenges not documented elsewhere. These extensive tomes even explored philosophy and religion.&lt;/p&gt;&lt;p&gt;From the articles and &lt;a href="https://adamcaudill.com/essays/"&gt;essays&lt;/a&gt;, I started publishing &lt;a href="https://adamcaudill.com/writing/"&gt;short stories&lt;/a&gt; and other fiction, expanding my writing efforts and refining those skills. Investing in a &lt;a href="https://adamcaudill.com/2025/12/27/why-i-will-never-write-with-ai/#why-i-started-writing"&gt;skill I view as critical&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Based on the latest &lt;a href="https://adamcaudill.com/stats/"&gt;calculations&lt;/a&gt;, I’ve invested &lt;strong&gt;1,391&lt;/strong&gt; hours writing the &lt;strong&gt;267,897&lt;/strong&gt; words you see here. A huge investment in sharing the lessons I’ve learned, though an investment I’ve always viewed as worthwhile. If I can help people to learn something new, refine a skill, grow as a leader, or see something from a new perspective, then it has been a worthwhile investment. We stand on the shoulders of those that came before; sharing what I can feels like &lt;a href="https://adamcaudill.com/2025/12/10/good-faith-moral-duty-and-selfishness/"&gt;what I owe&lt;/a&gt; to the community.&lt;/p&gt;&lt;h2 id="blogging-in-an-age-of-decreased-reading"&gt;Blogging in an Age of Decreased Reading&lt;/h2&gt;&lt;p&gt;While the number of blogs is growing, &lt;a href="https://adamcaudill.com/2025/12/29/is-long-form-writing-dead/"&gt;reading seems to be dying&lt;/a&gt;, the value of maintaining a blog and sharing lessons is timeless and even if fewer people are reading, some will, and hopefully they will find something useful.&lt;/p&gt;&lt;p&gt;From studies on &lt;a href="https://adamcaudill.com/2021/06/25/crew-resource-management-for-security-teams/"&gt;Crew Resource Management&lt;/a&gt; that took weeks of work, to arguing for changes to how the industry handles &lt;a href="https://adamcaudill.com/2015/11/19/responsible-disclosure-is-wrong/"&gt;vulnerability disclosure&lt;/a&gt; that is still cited to this day (a decade later), all of these efforts have resulted in great feedback and, more importantly, led people to think about how they work, these efforts matter.&lt;/p&gt;&lt;p&gt;Not everything here has been happy, &lt;a href="https://adamcaudill.com/2016/01/08/rance-goodbye-friend/"&gt;the loss of friends&lt;/a&gt;, and &lt;a href="https://adamcaudill.com/2022/01/10/death-cancer-and-missed-chances/"&gt;coworkers and family&lt;/a&gt;. There are others that deserve to be memorialised here, though I didn’t have the heart to write the words. I still don’t.&lt;/p&gt;&lt;p&gt;This site has been witness to many things, including much that should have been written but wasn’t. There are many stories, both personal and professional, that, looking back, I do wish I had written. Stories that should have been told &amp;amp; recorded. Alas, such is hindsight.&lt;/p&gt;&lt;p&gt;All in all, I am proud of what you see here, despite the flaws &amp;amp; omissions.&lt;/p&gt;&lt;h2 id="writing-is-more-important-than-ever"&gt;Writing is More Important than Ever&lt;/h2&gt;&lt;p&gt;The security industry is changing, &lt;a href="https://adamcaudill.com/2025/12/23/25-unemployment-in-tech/"&gt;unemployment is high&lt;/a&gt; and &lt;a href="https://adamcaudill.com/2025/01/30/millions-of-jobs/"&gt;jobs are at risk&lt;/a&gt;, sharing knowledge is critical to the next generation of professionals, who are among the hardest hit. From how to &lt;a href="https://adamcaudill.com/2022/05/22/on-productivity/"&gt;work productively&lt;/a&gt;, &lt;a href="https://adamcaudill.com/2021/09/24/communicating-with-respect/"&gt;avoiding pitfalls in communication&lt;/a&gt;, how to &lt;a href="https://adamcaudill.com/2020/11/30/leading-experts/"&gt;lead people more experienced than them&lt;/a&gt;, to learning how to &lt;a href="https://adamcaudill.com/2016/07/20/threat-modeling-for-applications/"&gt;evaluate risk&lt;/a&gt;, there is much we can teach, if we take the time. And when the time comes, we can make sure they get &lt;a href="https://adamcaudill.com/2021/09/25/taking-responsibility-for-the-spotlight/"&gt;their turn in the spotlight&lt;/a&gt;, and &lt;a href="https://adamcaudill.com/2020/03/27/checklist-starting-a-security-consulting-firm/"&gt;set them up for success&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;We need to provide solid guidance on &lt;a href="https://adamcaudill.com/2021/07/03/on-automatic-updates-and-supply-chain-attacks/"&gt;avoiding security issues&lt;/a&gt;, we need to &lt;a href="https://adamcaudill.com/2021/05/19/best-practices-vs-inane-practices/"&gt;refute obvious mistakes&lt;/a&gt;, help people &lt;a href="https://adamcaudill.com/2020/05/23/dezinformatsiya/"&gt;avoid disinformation&lt;/a&gt;, and provide the insight to &lt;a href="https://adamcaudill.com/2021/07/04/declaring-war-on-ransomware/"&gt;end common threats&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;With the rise of AI, and the incredible implications it brings to all knowledge workers, it’s by sharing knowledge, sharing insight, and lifting all up, that they have the best chance to not just survive, but thrive in this uncertain future.&lt;/p&gt;&lt;p&gt;While generative AI can sound, for a time, like an expert, it’s knowledge, insight, understanding, and logic that is critical to the future of the security industry, and the brilliant community that powers it.&lt;/p&gt;&lt;p&gt;We owe it to the next generation to share what we’ve learned.&lt;/p&gt;&lt;h2 id="looking-ahead"&gt;Looking Ahead&lt;/h2&gt;&lt;p&gt;Despite the challenges facing the economy, the job market, the rise of generative AI, and political turmoil, the security community is a truly amazing group, and a community that I’ve always been honoured to be a member of.&lt;/p&gt;&lt;p&gt;For me, I’ve been sharing my experience throughout my career, and the content of this site stretches back to 2003. I intend to continue to write and share for as long as I am able.&lt;/p&gt;</description></item><item><title>Whose Monkeys Are These?</title><link>https://adamcaudill.com/2026/01/01/whose-monkeys-are-these/</link><pubDate>Thu, 01 Jan 2026 08:29:22 +0000</pubDate><guid>https://adamcaudill.com/2026/01/01/whose-monkeys-are-these/</guid><description>&lt;p&gt;Over the course of my career, I&amp;rsquo;ve found that there are some principles that are key for people and teams to be effective. One of these is that everything should have an owner. Everything should have someone that is responsible. Everything should have a designated person whose job it is to care about it. This might a be bug or vulnerability reports in software, it could be routine processes, or who responds to certain emails.&lt;/p&gt;&lt;p&gt;When there isn&amp;rsquo;t clear ownership, things slip through the cracks, things are forgotten about, and minor issues can quickly become anything but minor.&lt;/p&gt;&lt;p&gt;This works well enough for many things where ownership is clear and agreed upon, but things get ugly when that thing is a problem. Here, human nature starts getting in the way, and leads to unfortunate outcomes. In this essay, I&amp;rsquo;d like to explore how people deal with the problems they see.&lt;/p&gt;&lt;h2 id="not-my-circus-not-my-monkeys"&gt;Not My Circus, Not My Monkeys&lt;/h2&gt;&lt;p&gt;The Polish idiom &amp;ldquo;nie mój cyrk, nie moje małpy&amp;rdquo; is, perhaps, my favourite phrasing of the statement &amp;ldquo;that&amp;rsquo;s not my problem.&amp;rdquo; Some variant of this statement is made countless times everyday in Slack threads and email exchanges, sometimes rightfully staying out of other people&amp;rsquo;s area of responsibility, but far more often, to avoid a problem that they don&amp;rsquo;t see as theirs to address.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;An SEP is something we can&amp;rsquo;t see, or don&amp;rsquo;t see, or our brain doesn&amp;rsquo;t let us see, because we think that it&amp;rsquo;s somebody else&amp;rsquo;s problem. That&amp;rsquo;s what SEP means. Somebody Else&amp;rsquo;s Problem. The brain just edits it out, it&amp;rsquo;s like a blind spot. - &lt;em&gt;Douglas Adams, Life, the Universe and Everything&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;In reality, when problems are found, people react in very different ways. From my experience, there are 3 kinds of people, when they see a problem, they will do one of these things:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Unless it&amp;rsquo;s clearly theirs, they assume it&amp;rsquo;s somebody else&amp;rsquo;s problem and stop thinking about it.&lt;/li&gt;&lt;li&gt;Unless they&amp;rsquo;re told it&amp;rsquo;s theirs, they assume it&amp;rsquo;s somebody else&amp;rsquo;s problem and stop thinking about it.&lt;/li&gt;&lt;li&gt;Unless they see somebody else handling it, they assume it&amp;rsquo;s their problem.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;When a person says &amp;ldquo;that&amp;rsquo;s not my problem,&amp;rdquo; they are probably in the first group. It&amp;rsquo;s not clearly theirs, so they drop it, move on, and focus on other things. As they don&amp;rsquo;t perceive it as their responsibility to address (or ensure that someone else is addressing it), it drops from their mind.&lt;/p&gt;&lt;p&gt;This form of automatic anti-ownership is both understandable, and, to me at least, disappointing. Instead of claiming ownership, at least until a better fitting owner is identified, they avoid making a concerted effort to not have ownership. This strategy greatly increases the odds of the problem slipping through the cracks.&lt;/p&gt;&lt;p&gt;Where the first group exhibits an active aversion to owning issues they see, the second group exhibits an indifference to it. Unless given the order to take ownership, they adopt a more passive approach and pay little heed to this issue unless told to.&lt;/p&gt;&lt;p&gt;This is not to say that anyone in either of the first two groups are avoiding work, or unwilling to take ownership, but that due to the nature of different personality types, incentives, and organisational dynamics, people can be disinclined to adopt a problem that isn’t clearly theirs.&lt;/p&gt;&lt;p&gt;We’ve all seen this, right?&lt;/p&gt;&lt;p&gt;None of these traits though should be particularly surprising to anyone with a non-trivial amount of leadership experience. These are common traits, and lead to common issues, and are simply part of the routine within teams. Enough &lt;del&gt;ink&lt;/del&gt; electrons have been spilled covering these archetypes, so I won’t belabour the point on them. Instead, I will focus on the third personality type.&lt;/p&gt;&lt;h2 id="the-cost-of-ownership"&gt;The Cost of Ownership&lt;/h2&gt;&lt;p&gt;For those people that assume a problem is theirs unless (or until) they see that someone else is handling it, those that are proactive about accepting ownership, they do so at both visible and invisible costs. It’s these costs and the motivation that pushes them to proactively accept ownership that we will be discussing here.&lt;/p&gt;&lt;p&gt;In general, people that are proactive are seen positively, are more likely to be promoted, are often given greater responsibility. After all, they are already accepting greater responsibility without being asked to.&lt;/p&gt;&lt;h3 id="ownership-proactive-acceptance-vs-seeking"&gt;Ownership: Proactive Acceptance vs. Seeking&lt;/h3&gt;&lt;p&gt;Before we move on, I would like to look at a seemingly subtle difference, which is, in reality, an important distinction in both behaviour and motivation.&lt;/p&gt;&lt;p&gt;The archetype - the people - I’m describing here are those that proactively accept ownership of problems they see, though they do not seek ownership. The difference is critical: one accepts what they see, the other seeks to expand what they own. The latter may be seeking greater control or influence, while the former only seeks to ensure that problems are addressed.&lt;/p&gt;&lt;p&gt;This oft misunderstood distinction can lead to conflict or discord, though the motivations are entirely different, as those that seek to expand control are less likely to be motivated to actually address problems, but to leverage problems to achieve other aims. Where those that proactively accept are instead motivated to achieve a resolution to the problem, or at least a resolution to their perceived responsibility for it.&lt;/p&gt;&lt;p&gt;As this essay is a study of how problems are perceived, and not how they can be leveraged, I will not be further exploring those that seek to use problems (and other forces and events) for their advantage.&lt;/p&gt;&lt;h3 id="the-responsibility-of-knowledge"&gt;The Responsibility of Knowledge&lt;/h3&gt;&lt;p&gt;For those that proactively accept ownership, they feel a deep sense of responsibility for issues they see, even if they are outside the direct scope of their role. Some portion of this may be rooted in loyalty and concern for their company, some may be linked to a broader sense of what they &lt;a href="https://adamcaudill.com/2025/12/10/good-faith-moral-duty-and-selfishness/"&gt;owe to coworkers&lt;/a&gt;, either way, that sense of responsibility is real. It’s also difficult to ignore, creating an unavoidable and inescapable weight once they become aware of a problem.&lt;/p&gt;&lt;p&gt;Once the knowledge of the problem comes into existence, the increasingly oppressive weight of the problem grows. And it will continue to grow until that responsibility is, one way or another, discharged.&lt;/p&gt;&lt;p&gt;This practice tends to result in fewer problems being left until they develop into a large issue, but it weighs on the people that feel obliged to pursue these problems.&lt;/p&gt;&lt;h3 id="the-squeaky-wheel"&gt;The Squeaky Wheel&lt;/h3&gt;&lt;p&gt;While the people that are the most dedicated to ensuring success, to avoiding the deferred consequences of ignored problems, also are those that are seen as the squeaky wheel. They are the proverbial messenger that are too often the first in the line of fire. By opting to say something, to acknowledge the problem, to seek a solution or an appropriate owner, they are faced with continuous guilt by association, they are blamed for bringing negativity into discussions.&lt;/p&gt;&lt;p&gt;This creates a singularly unfortunate combination of pressures: the perceived weight of responsibility and the dread of blame and resistance for acknowledging that the problem exists.&lt;/p&gt;&lt;p&gt;When you combine this personality type with certain careers, such as anything in security, a field whose members are often seen as a particular inconvenience when added to a conversation, the results are worse (at least for those that feel compelled to open their mouths).&lt;/p&gt;&lt;p&gt;Yet, for all the benefits of this archetype in terms of results, the self-imposed pressures speed burnout, magnify discontent due to the recurring instances of shooting the messenger, and creates an impenetrable cloud of stress that shades everything. Useful for a team, bad for the person.&lt;/p&gt;&lt;h2 id="owning-a-circus"&gt;Owning a Circus&lt;/h2&gt;&lt;p&gt;If you look in the mirror and see the person that has no choice but to adopt each and every unowned problem they encounter: welcome to the annoyingly stressful club. I very much identify with this archetype as well.&lt;/p&gt;&lt;p&gt;Thanks to this deep sense of responsibility, one ends up caring for a substantial number of proverbial monkeys. Though it’s important to understand how much of this pressure is self-inflicted, and not organisationally imposed. More importantly though, it’s important to remember that the vast majority of these problems aren’t actually yours: you don’t own them, you’re a &lt;em&gt;caretaker&lt;/em&gt; until the rightful owner is identified.&lt;/p&gt;&lt;p&gt;When viewed through this critical lens, that there is a key distinction between ownership and custody, the pressure is lowered and the path forward is simplified.&lt;/p&gt;&lt;p&gt;If you are in a leadership role, you need to understand which members of your team exercise this type of proactive acceptance, and actively aid them in finding the proper owners of these problems. This work to redirect these problems will substantially lower stress and slow burnout, and will demonstrate that they don’t need to own these issues, only care for them temporarily.&lt;/p&gt;&lt;p&gt;Just as importantly, you need to take due care when discussing these issues to ensure that you don’t create a feeling that they are being seen as a problem themselves. The repeated negative receptions to speaking up eventually creates a constant fear, a latent pressure in every conversation.&lt;/p&gt;&lt;p&gt;For those of us that have shared this lived experience, we need to identify this in others, so that we can leverage our positions &amp;amp; experience to relieve the pressure from others.&lt;/p&gt;</description></item><item><title>The Escape</title><link>https://adamcaudill.com/writing/2026/01/01/the-escape/</link><pubDate>Thu, 01 Jan 2026 01:39:17 -0400</pubDate><guid>https://adamcaudill.com/writing/2026/01/01/the-escape/</guid><description>&lt;p&gt;&lt;em&gt;This is a short story, sci-fi broadly if one insists on giving it a genre, but while it does involve travel to a black hole, it is something altogether different.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Explorer-1, this is Mission Control, do you read?&amp;rdquo; The radio crackled, the audio was distorted, but clear enough to understand.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, Explorer-1, copy. Nominal prograde orbital insertion. Approximately 1,649,000 kilometres above event horizon. Orbital period approximately 7.4 minutes. Plasma detection confirmed. Ionised hydrogen and helium; rare traces of metals, slightly higher than projected. Magnetic shielding is stable. X-ray detection within safety margin and stable. A small amount of Cerenkov radiation visible through the forward viewport.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Explorer-1. Congratulations on the first orbit of Sagittarius A*. You&amp;rsquo;ve gone down in the history books. Please state current thruster status.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, Explorer-1, copy. Thrusters are in automatic, orbital maintenance mode, peaking at 67% capacity. Auto-mapping of gravity field has begun. Data is clean.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Explorer-1, Mission Control copies. How&amp;rsquo;s the view?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, there are no words for this. Most of the sky is just black. Nothing at all. Then everything else is warped, compressed, like looking through a fisheye lens. It&amp;rsquo;s unlike anything I&amp;rsquo;ve seen before.&amp;rdquo;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Sagittarius Explorer 1 was the most ambitious, expensive, and complex scientific project humanity had ever mounted. A full century was needed to execute the mission, and until the day that Explorer-1 arrived, nobody was entirely sure that it would even be possible. Most of the physics were still theoretical when the project started.&lt;/p&gt;&lt;p&gt;The Explorer-1 craft was incredibly sophisticated, and could likely complete the mission without a single human aboard, but the mission had always been not just to explore this super-massive black hole, but to send a person there. It was designed to hold a crew of 5, though a few months before the launch, the crew count was reduced to 1. No announcement was made about why this change was made.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&amp;ldquo;Mission Control, Explorer-1. Completed 100 orbits. Hull temperature has climbed slightly. Cooling system is stable and within limits. Electrostatic charge in the hull has grown, though is still within limits. Confirmed that plasma is moving at a sub-Keplerian velocity, which is resulting in the higher detection rate. Relative speed between Explorer-1 and plasma field is 0.3 c.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Explorer-1, Mission Control copies. All as expected.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, Explorer-1, copy. Explorer-1 is now in full automatic mode. Stepping away from comms for a break.&amp;rdquo;&lt;/p&gt;&lt;p&gt;The sole occupant of Explorer-1, Mitch Clark, removed his headset, unbuckled from his seat, and floated out of the cockpit, covered in touchscreens and lights, past the empty seats for the crew that wasn&amp;rsquo;t included, and into the crew quarters. A room with 5 bunks, though 4 were packed with extra food, a room lined with smooth dark plastic, status display screens, storage compartments, and the small &amp;ldquo;kitchen&amp;rdquo; where pre-made meals could be heated and drinks mixed.&lt;/p&gt;&lt;p&gt;He floated to his bunk, moving through the room using the handholds that are placed liberally along the wall. Opening the storage compartment next to his bunk, he pulled out a tablet and unlocked it. He floated, alone, scrolling through a collection of photos.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Around the world, devices lit up with notifications, &amp;ldquo;BREAKING NEWS: Sagittarius Explorer 1 Is A Success! First human orbits Sagittarius A*&amp;rdquo;&lt;/p&gt;&lt;p&gt;Pre-recorded interviews with Mitch played, scientists talked about the insights being seen in the stream of data coming from Explorer-1, and politicians congratulated themselves for this incredible achievement.&lt;/p&gt;&lt;p&gt;For Mitch though, this was just the first of many days he would spend here. Neither excited nor anxious, he simply did what he needed to do, with little free time or opportunities to relax. The to-do list had hundreds of items on it, not counting the routine maintenance that would need to be done regularly throughout the mission.&lt;/p&gt;&lt;p&gt;While on the Explorer-1&amp;rsquo;s mothership, the unimaginatively named Sagittarius Transport Vessel (STV), where the support staff and Mission Control team was based, much of the setup work for Explorer-1 had been completed. One of the most important tasks during transit was setting up Explorer-1&amp;rsquo;s hydroponics bay - a late addition to the design. The first harvest of spinach and Swiss chard was waiting for the first cutting.&lt;/p&gt;&lt;p&gt;The first task on Mitch&amp;rsquo;s list was to collect some of the spinach, it would be the first meal onboard the vessel. While the vessel was packed with pre-made meals, those were to be saved. He floated into the bay, confusingly labeled &amp;ldquo;Engineering 1&amp;rdquo;, ducking his head to avoid a series of capped pipes near the door, and passed down the neat rows and bright lights, lush green foliage filling each of the dozen individual units that had been packed into the room.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&amp;ldquo;Explorer-1, this is Mission Control. Good morning Mitch, it&amp;rsquo;s day 8 on orbit. Task lists D8, DR, W2, and M1 are due today. Be aware, list W2 is expected to take approximately 3 hours to complete.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, Explorer-1, copy.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Mitch&amp;rsquo;s insomnia had him up most of the night, and he had given up trying to sleep hours earlier. Most of those task lists had already been completed.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, Explorer-1. List DR, item 8. Thruster status. We&amp;rsquo;re currently peaking at 68% capacity to maintain orbit. I keep dipping further into gravity well, and auto-correcting out to re-stabilise orbit.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Explorer-1, copy. Please let us know if it exceeds 75%. Maintaining that orbit is a delicate balance, and easily disturbed by the slightest fluctuation.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, Explorer-1, copy.&amp;rdquo;&lt;/p&gt;&lt;p&gt;With the tasks for the day done, Mitch collected some spinach and Swiss chard for dinner, along with a collection of vitamins, immuno-stimulants, and other boosters to keep his health up. Then back to his bunk, and his tablet.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&amp;ldquo;Explorer-1, this is Mission Control. Good morning Mitch, it&amp;rsquo;s day 15 on orbit. Task lists D15, DR, W3, and M2 are due today. Be aware, list W3 is expected to take approximately 2 hours to complete.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, got it.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Mitch lingered in his bunk for a few additional minutes before starting his day. With a deep breath, he slid the tablet back into the storage compartment, and retrieved the necklace he wore, a short chain with a bent and twisted ring. He headed to the cockpit.&lt;/p&gt;&lt;p&gt;Lights started flashing. Halfway to the cockpit, red lights were flashing everywhere, alarms blared, and an automated voice started in a loop. &amp;ldquo;Warning. Thruster system has exceeded 80% of capacity.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, master warning activated. Thruster status. I&amp;rsquo;m dipping back into the gravity well, thrusters are currently at 80%.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Explorer-1, copied. Redirect power if needed, emergency procedures authorised.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Mitch strapped into the seat, and maniacally starts tapping screens, changing thruster settings, redirecting power, and activating standby thrusters for additional power. For the next 15 minutes, Mitch works relentlessly to stabilise the vessel before it drops into an inescapable plunge.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, orbit has stabilised, and back at prior altitude. Restoring orbit used a substantial amount of fuel. This places usage about 4 weeks ahead of schedule.&amp;rdquo;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Six months before the launch, the project director gathered the crew of the mission, the main crew, the backup crew, and two standby members. The 12 people that had been training for almost 10 years for this mission.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Nearly a century ago, world leaders gathered and created a plan for the most daring scientific mission in human history. For years, you&amp;rsquo;ve trained for this mission, and each of you knew that there were risks, there were things that we couldn&amp;rsquo;t guarantee. Missions that make history always come with risks. Well, there are things we&amp;rsquo;ve confirmed now, and can&amp;rsquo;t ignore any longer.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;I need you all to understand that this is likely the most difficult speech I&amp;rsquo;ve ever had to give. We&amp;rsquo;ve confirmed that there&amp;rsquo;s no escaping the gravity well. Once in orbit, there&amp;rsquo;s no way to generate enough delta-v to reach escape velocity. For years, a team has been working on a new experimental propulsion system, that system was the key to leaving the gravity well. The physics were wrong. It&amp;rsquo;s not possible to generate the thrust needed.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;We&amp;rsquo;re cutting the crew size down to one. We&amp;rsquo;ve replaced the engine bay with an hydroponics bay to increase the time that the mission can last as long as possible. With only one person, we can pack in additional food, and stretch out the oxygen, and turn what was intended to be 3 months of orbit into years. But, there&amp;rsquo;s no coming back.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;We&amp;rsquo;ve known for about two years that the new engines were a failed effort, and we&amp;rsquo;ve been trying to find other options. There are none. Politically, there&amp;rsquo;s pressure to keep this quiet. We couldn&amp;rsquo;t tell you all before now. World leaders were told, and given time to decide on an approach.&amp;rdquo;&lt;/p&gt;&lt;p&gt;He cleared his throat, becoming increasingly uncomfortable. Then started speaking again, as if from a well-rehearsed script.&lt;/p&gt;&lt;p&gt;&amp;ldquo;We&amp;rsquo;ve come too far to give up, invested and sacrificed too much as a society to walk away from this mission. So I&amp;rsquo;m here today, to ask one of you to volunteer for this mission, alone.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Mitch, a standby member, raised his hand.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;After the meeting, the 12 talked among themselves, lamenting the failed technology, disappointed at the missed adventure, but more than anything, heartbroken for Mitch. After years of training together, they had all become close, more of a family - a group of brothers and sisters - than just coworkers.&lt;/p&gt;&lt;p&gt;Finally, one had the courage to ask Mitch why.&lt;/p&gt;&lt;p&gt;Mitch paused before he spoke, as if weighing the options of how he would answer, then finally spoke, stoically, &amp;ldquo;someone had to. Besides, I&amp;rsquo;ve less to lose. I&amp;rsquo;ve met your families, I wouldn&amp;rsquo;t be able to live with myself if they lost you.&amp;rdquo;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&amp;ldquo;Explorer-1, this is Mission Control. Good morning Mitch, it&amp;rsquo;s day 99 on orbit. Task lists D9, DR, and M1 are due today.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Mitch was strapped to his bunk, still in the sleeping position, but was wide awake, looking at his tablet, scrolling through photos. He ignored the transmission from Mission Control.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Explorer-1, this is Mission Control. Repeating. Good morning Mitch, it&amp;rsquo;s day 99 on orbit. Task lists D9, DR, and M1 are due today.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, you all realise that there aren&amp;rsquo;t any mornings here, right? Just swirling stars and blackness. There&amp;rsquo;s no point in doing D9 again, it&amp;rsquo;s all about hydroponics, and everything in there is dead or dying. You all may be filling me with drugs to help protect from the radiation, but those plants weren&amp;rsquo;t as lucky. I&amp;rsquo;ve used up all the seeds trying to replace the dead ones, and none are even sprouting. That part of the adventure is over.&amp;rdquo;&lt;/p&gt;&lt;p&gt;After an unusually long pause, the radio crackled back to life.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Explorer-1, Mission Control copies. By our calculations, there should be 14 months of pre-made meals. Please state fuel status.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Mission Control, fuel won&amp;rsquo;t last 14 months, so food doesn&amp;rsquo;t matter. By my calculations, with as frequently as I&amp;rsquo;m slipping into the gravity well, fuel will be gone in weeks. Maybe less.&amp;rdquo;&lt;/p&gt;&lt;p&gt;The radio stays silent, minutes pass by. Finally, nearly 30 minutes later, the voice returns.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Explorer-1, Mission Control copies. Standby for further instructions.&amp;rdquo;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Mitch took his necklace, wrapping it around his hand, his tablet, and went to the cockpit. He buckled himself to the pilot&amp;rsquo;s seat, then scrolled through his tablet looking for a particular photo. Using a small magnetic mount, he placed the tablet on a control panel where it can be seen easily.&lt;/p&gt;&lt;p&gt;With a single tap, he disabled the thrusters. He accepted the pull of gravity.&lt;/p&gt;</description></item><item><title>Isle Civitas</title><link>https://adamcaudill.com/writing/2025/12/30/isle-civitas/</link><pubDate>Tue, 30 Dec 2025 01:39:17 -0400</pubDate><guid>https://adamcaudill.com/writing/2025/12/30/isle-civitas/</guid><description>&lt;p&gt;Michael stood at the corner of an old brick building, staring into a hole that had crudely been cut into the wall decades before. Above the hole was a small green sign: &amp;ldquo;Delivery Stop 25-379-0-8&amp;rdquo; - one of thousands of such locations in the city. Fifty feet above him ran the city&amp;rsquo;s spiderweb of conveyor belts. Running from building to building, over streets, in to and out of sorting hubs that would read an RFID tag on each of the millions of plastic trays that passed through each day. In one of those trays, was his lunch.&lt;/p&gt;&lt;p&gt;The seawall loomed behind him, 30 feet tall, it wrapped around the island. Where he stood was once a beach-front restaurant, though there was no longer a beach. The concrete foundation of the seawall long ago replaced the sand. He couldn&amp;rsquo;t see the water from his part of the city, though over the constant din, he could faintly hear the waves crash into the wall. The bland grey edifice that protected the city from rising sea levels.&lt;/p&gt;&lt;p&gt;He glanced up at the &amp;ldquo;foundation&amp;rdquo; above his head. The massive grid of steel beams built on top of the seawall, upon which the city had been rebuilt. Countless piles and steel columns penetrated the lower city, his part of the city, to support the growth above. Looking through the steel grating that made up the &amp;ldquo;ground&amp;rdquo; of the foundation above to watch the conveyor belts, he hoped quietly that his lunch would arrive before it was too cold.&lt;/p&gt;&lt;p&gt;He leaned against one of the steel columns, in the middle of the sidewalk, as he waited. These supporting columns, bearing the weight of the growing city high above, had been placed without regard for the lower city or its residents. They were everywhere. Streets were blocked with them. Seeing an I-beam in the middle of a living room or bedroom, piercing roof and floor alike, was common. The trees in the lower city were long since gone, replaced by an ever-growing forest of steel.&lt;/p&gt;&lt;p&gt;A small shaft of light penetrated the permanent shadow of the lower city, landing directly in his eyes; a rare event this far down in the city. It was gone before he could see the sky clearly.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Building the first foundation had been a pragmatic move to raise the city above the rising water, changing Isle Civitas in ways that few expected. As the decades went on, and the amount of room for growth became more limited, new layers were added, more foundations were built above the older ones. Nicer buildings on top, lower layers were rebuilt into factories and warehouses.&lt;/p&gt;&lt;p&gt;The lower city, the original city, was largely housing, and largely housing for the poorer residents. The poorest lived in shacks built in the alleys of the city or along the now unused roads - the piles blocked the roads to the point that it wasn&amp;rsquo;t possible to drive anymore.&lt;/p&gt;&lt;p&gt;Each new foundation added above the existing city enabled yet more growth, and with each, the lower levels became ever more crowded with the piles that bore the weight of those above. Eventually, the average lower city house had a dozen or more steel beams penetrating it. Clusters of steel columns were stretching up, layer after layer, to support tall buildings on the uppermost layers.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;After the third foundation was built, and the streets of the lower and more industrial levels had become too crowded for trucks to drive around the island, the city built the great conveyor system. A system of belts that linked every part of the city together, allowing packages large and small to be moved from and to anywhere on the island within a matter of minutes.&lt;/p&gt;&lt;p&gt;The belts, at the 50-foot level, connected every block and every commercial building, either through direct connections or delivery stops, like the one Michael waited at, allowing goods to move easily. A vast number of cargo elevators were connected to the system, to bring packages to the correct level. Great block-sized sorting centres would scan trays, and send them along their way, moving them based on priority and congestion, all controlled by a central computer system that managed the network.&lt;/p&gt;&lt;p&gt;The system eliminated all trucks from the island, everything was now moved through this massive interconnected belt system. Every factory, every warehouse, every shopping centre, every restaurant, all goods ended up in this sprawling web of belts.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Michael looked at the number on the delivery stop sign. District 25, block 379, level 0, stop 8. This number was more important than his actual address. Everything he purchased would come to this hole in the wall, down a small cargo elevator from an automated sorter far above him.&lt;/p&gt;&lt;p&gt;He was a factory worker, working 12-hour shifts, six days a week. His home was a shack, or to be more specific, a shed in what had been the backyard of a rather nice house. Now, that yard was the site of over a dozen small shacks. This made his home of the nice units available - at least it was a real structure, not a collection of scraps. The house itself was now an apartment building, with at least 50 tenants.&lt;/p&gt;&lt;p&gt;The lower city was dark, dirty, and dangerous. The steel mesh that served as the ground in the upper levels allowed a steady stream of dirt, debris, and various liquids to fall, level by level, to the lower city. The dominant colour was that of rust and broken brick. The lower city, with little airflow, had a unique and deeply unpleasant scent: grease, garbage, and waste - of both the industrial and human varieties.&lt;/p&gt;&lt;p&gt;When Michael ordered food near his job, it would only take about 10 minutes for it to be delivered, as he worked on the 3rd foundation, and higher foundations had higher priority in the system. Deliveries for the highest level used special high speed belts, and would be routed around any congestion, but he wasn&amp;rsquo;t wealthy, so he wasn&amp;rsquo;t even allowed to go that high up in the city.&lt;/p&gt;&lt;p&gt;Down in the lower city, it would take at least 30 minutes, as anything going to level 0 was treated as the lowest priority. Even on a slow day with little congestion on the belts, he knew the food would be cold.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Homes like the one Michael lived in were becoming less common — stand-alone structures from before the first foundation was built. As the lower city became more crowded, land was being cleared and multi-story tenements were being built, that integrated with the steel columns that permeated the ground level, allowing them to build up to the first foundation. This replaced a single level of shacks with 3 floors of what was little more than shacks.&lt;/p&gt;&lt;p&gt;The newer tenements were still made of industrial scraps, with no thought at all given to comfort, privacy, or safety. Simply collections of sheet metal as a place to store humans, instead of homes for people to live. Units were small, 10 foot squares were most common.&lt;/p&gt;&lt;p&gt;A welder, Michael had a skilled job, and made a fair living for himself, though it mattered little. Decades ago, in an effort to make housing more affordable, all rental properties were made income-based by law. While this would seem to benefit people, it was twisted to ensure that the poor would stay poor. Michael paid 40% of his salary for rent. It didn&amp;rsquo;t matter how much he earned, it would always be 40%.&lt;/p&gt;&lt;p&gt;Land owners had no standards that they needed to meet to rent units, each needed only a door and a roof. It had been expected that owners would compete, offering better units and that conditions would improve. Though that&amp;rsquo;s not what happened. Instead, they coordinated and ensured that they would all offer only the minimum required, so that none would need to invest in anything other than creating as many units as possible. The rich became richer. The poor had little means to improve.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;While being born in the lower city was a trap for most, some did work their way up. Either by intelligence, attractiveness, or simply strength of will, finding a new life among the elite was possible. Michael&amp;rsquo;s sister was one of these rare individuals. She was beautiful, devastatingly intelligent, and utterly ruthless at need. If asked to describe her, he&amp;rsquo;d simply say &amp;ldquo;Jessica is a force of nature.&amp;rdquo; Others would often describe her in more direct terms; a common refrain was &amp;ldquo;a kind face that will destroy you for a promotion.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Jessica was born when Michael was a year old. Their parents met and worked in a factory. Like most in the lower city, they spent most of their time working, and the siblings had to fend for themselves at an early age. Michael was the fiercely protective older brother, Jessica was the little sister who didn&amp;rsquo;t want protection. Just before Jessica&amp;rsquo;s 12th birthday, a fire started in a factory, and their parents would never come home again.&lt;/p&gt;&lt;p&gt;She had started her career young, working in a restaurant at 14, in management by 18. Granted a scholarship to attend university, she graduated at 21, quickly followed by gaining a master&amp;rsquo;s degree only a year later. At 30, she was the Vice President at one of the largest manufacturing companies in the city, living in a luxury apartment on the topmost level of the city.&lt;/p&gt;&lt;p&gt;Her origin in the lower city wasn&amp;rsquo;t something that she was proud of, there was a stigma against those who had come up the way she did. They were looked down upon, as if they were imposters. She had spent her life trying to fit in with the elite, being one of them. Often beating them at their own elitist games.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Tensions in the city were high, as they had been for decades. Like everyone, a metal bracelet was riveted around Michael&amp;rsquo;s wrist, it listed his name, description, and a barcode. That barcode was used at the escalators that went between the different levels in the city. As he worked at a factory on the 3rd level, it allowed him access to the lower city and the 3rd foundation, but no other parts of the city.&lt;/p&gt;&lt;p&gt;To protect the business and people that lived on the upper levels, those that lived on the lower levels weren&amp;rsquo;t allowed to go beyond the foundation that they worked on. This ensured that the riots, which happened every few months, would be contained. The wealthy wouldn&amp;rsquo;t be exposed to the chaos going on below their feet.&lt;/p&gt;&lt;p&gt;Heavily armed police guarded the upper levels, private security teams protected the factories and businesses in the middle levels, and the lower city was largely abandoned by law enforcement. Police protected the escalators that led up and out of the lower city, scanning bracelets and ensuring nobody could sneak out, but otherwise they did nothing.&lt;/p&gt;&lt;p&gt;Police and security guards dispensed a quick and violent form of justice, with few questions asked and little interest in who&amp;rsquo;s the perpetrator or victim. Their job was to enforce peace and protect property. Anyone that disturbed the peace, even if a victim, was at risk of finding themselves on the receiving end a gun. The message had long been clear, everyone was expected to keep their mouth shut and do their job, no matter what happens.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Vigilante groups patrolled the lower city, collecting protection fees from those in their district, providing the only form of justice that existed this far down. In some districts, the vigilantes were worse than the criminals, though not all. Michael was a member of the vigilantes for district 25, picking up patrol shifts for extra money.&lt;/p&gt;&lt;p&gt;While sometimes violent, his group was generally fair, complete with their own courts to try people accused of crimes, complete with juries. While the city had lost interest in justice for those in the lower city, the people hadn&amp;rsquo;t.&lt;/p&gt;&lt;p&gt;Without jails, the punishments dealt by the vigilantes were often severe, and while a first offence may result in an unpleasant outcome, a second offence would result in a punishment meant to ensure there wouldn&amp;rsquo;t be a 3rd offence. This was often achieved by the removal of body parts.&lt;/p&gt;&lt;p&gt;Justice in the lower city wasn&amp;rsquo;t something anyone wanted to encounter.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;While Jessica had left that old life behind, she hadn&amp;rsquo;t forgotten about her brother. Despite her efforts and job offers, Michael opted to stay in the lower city. With a single call he could leave and never need to return, yet it was his home — he had no desire to leave.&lt;/p&gt;&lt;p&gt;This was something that she simply could not understand; she had dedicated her life to escaping that past, to rising above that origin, to gaining promotions, power, money. Yet, he had no desire to be part of that world.&lt;/p&gt;&lt;p&gt;Most in the lower city would do anything to escape, many would quite literately kill. Michael was one of the few that had a choice, and yet he opted to stay. He worked hard, but had a simple and comfortable enough life. He saw the stress, the drama, the backstabbing, the politics involved in achieving her level of success, and instead chose something else: the peace of simplicity.&lt;/p&gt;&lt;p&gt;Life wasn&amp;rsquo;t easy, but it was simple.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;For the third time in a year, a riot was brewing, and everyone in the lower city knew it. After a particularly violent response to a group of people that had demanded a move to a 5-day work week, tempers and nerves were frayed. Violent reactions to demands for better living conditions or fewer working hours triggered riots every few months, it had simply become part of life.&lt;/p&gt;&lt;p&gt;For those on the upper levels, these were little more than unscheduled vacations. With factories and many businesses would close during the riot - as the workers weren&amp;rsquo;t available, most of the these &amp;ldquo;uppers&amp;rdquo; saw it as a chance to take a break and relax. Some even looked forward to them.&lt;/p&gt;&lt;p&gt;These riots played out in the same way: the gates in the lower city were attacked, police would open fire with rubber bullets and tear gas, violence would spread, fires would be set, stores would be looted. Police would limit lethal force to only those that posed the greatest risk to their own safety. Once the riot was over, they needed the &amp;ldquo;lowers&amp;rdquo; back at their jobs.&lt;/p&gt;&lt;p&gt;As shifts ended on the factory and upper levels, workers from the lower city would be rounded up and forced down the escalators, back to their level. The police and private security would ensure that the violence didn&amp;rsquo;t spread up the city, and the workers, focused on their jobs and with no means of communication—as phones weren&amp;rsquo;t allowed in the factories, would rarely even be aware that a riot had started until they were being forced down to the lower city.&lt;/p&gt;&lt;p&gt;These riots lasted a few days, rarely more than a week. Thousands would be injured, dozens would die.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;While Michael worked as a welder, that wasn&amp;rsquo;t his only skill. From an early age, he had loved computers, and taught himself programming. This skill opened the door to developing a more lucrative skill: hacking, and specifically, hacking the software and servers that controlled the city&amp;rsquo;s network of conveyor belts. Rerouting packages on the belts turned out to be a great way to make money.&lt;/p&gt;&lt;p&gt;The sorting hubs used various devices to check for prohibited items of various types, redirecting them to police for manual inspection. There was, quite obviously, a market for those that could route packages in a way that ensured that they were delivered without ever being checked. Michael had learned to bend the system to his will.&lt;/p&gt;&lt;p&gt;He was interested in the routing systems, systems that were called each time a package&amp;rsquo;s RFID tag was scanned. These scans would happen thousands of times as a package traversed the network of belts, sorters, hubs, and elevators, and with each scan, there was an opportunity to alter the path the package would take.&lt;/p&gt;&lt;p&gt;He worked in a factory that made parts for the conveyor network, giving Michael access to components that few would see. One evening, near the end of a shift, he slipped a USB device in his pocket, a thumb drive used to program the RFID scanners he was building enclosures for. That night, he copied the data to his computer to study later.&lt;/p&gt;&lt;p&gt;He spent his evenings for weeks studying the software, configuration, and system design. A hard-coded SSH key gave him access to the scanner network. Searching that network, he found an administrator&amp;rsquo;s account with an easily guessed password. With access to that account, he was able to access servers, add a backdoor account, get the code for the different routing services, and their configurations.&lt;/p&gt;&lt;p&gt;He quickly created his own routing service, and then changed the configuration of the main scanning system to use his first. The packages he cared about would then take any path he wanted, including never going through any of the x-ray or chemical testing machines in the network.&lt;/p&gt;&lt;p&gt;Drugs, weapons, technology, and countless forms of illegal paraphernalia were in demand throughout the city. From the most elite uppers to small businesses that wanted to make some extra money, there was no shortage of demand for packages that weren&amp;rsquo;t exactly legal. Where demand exists, supply will follow.&lt;/p&gt;&lt;p&gt;Michael had no objection to leveraging his skills and knowledge to make a little extra money. For a small fee, he&amp;rsquo;d assure same delivery. To avoid the drama of dealing with questionable people, he had setup an app that sellers could access from their phone to enter the ID number from an RFID tag and send their payment. Michael&amp;rsquo;s software would automatically handle the routing from there. The package would be carefully routed around the security devices, and be delivered, without any interference.&lt;/p&gt;&lt;p&gt;On an average day, about 100 packages would be re-routed by his service.&lt;/p&gt;&lt;p&gt;Very few knew that he was behind the service, and worked hard to keep it that way.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Jessica sits at her desk, in a tower on the uppermost foundation, high above the city. Behind her is a grand view, a floor to ceiling window, looking out at the azure sea that wraps around the island. A tropical paradise, far separated from the turmoil that is the lower city. On the desk sits her lunch, a salad topped with seared tuna. She reaches for her fork, but before she can take the first bite, her phone displays a new text message.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Michael&lt;/em&gt;: Sis, you need to go home! NOW!&lt;br&gt;&lt;em&gt;Michael&lt;/em&gt;: Make some excuse. Go home. Stay there.&lt;br&gt;&lt;em&gt;Michael&lt;/em&gt;: You&amp;rsquo;ve got to get out of there. NOW.&lt;br&gt;&lt;em&gt;Jessica&lt;/em&gt;: What&amp;rsquo;s going on? What are you talking about?&lt;br&gt;&lt;em&gt;Michael&lt;/em&gt;: JUST GET OUT OF THERE!&lt;br&gt;&lt;em&gt;Jessica&lt;/em&gt;: You need to tell me what the hell you are talking about.&lt;br&gt;&lt;em&gt;Michael&lt;/em&gt;: You remember that package routing thing I told you about? Well, someone is using it to send hundreds of package all over the city.&lt;br&gt;&lt;em&gt;Jessica&lt;/em&gt;: People are sending packages all the time. What makes that so unusual?&lt;br&gt;&lt;em&gt;Michael&lt;/em&gt;: There&amp;rsquo;s been another riot brewing, but this one is different. People are more angry than I&amp;rsquo;ve seen before. Sending packages around security major businesses and some of the most powerful people, all at once. This hasn&amp;rsquo;t happened before.&lt;br&gt;&lt;em&gt;Jessica&lt;/em&gt;: What, you think they are sending bombs or something?&lt;br&gt;&lt;em&gt;Michael&lt;/em&gt;: That&amp;rsquo;s exactly what I think.&lt;br&gt;&lt;em&gt;Michael&lt;/em&gt;: I didn&amp;rsquo;t notice what was happening until the packages were being delivered. I just got off work.&lt;br&gt;&lt;em&gt;Michael&lt;/em&gt;: One of the packages was sent to your office tower. It was already delivered. You need to leave. NOW!&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;She slips her heels back on, grabs her purse and phone, and stands to leave. She is already thinking about the best way back to her apartment, and how to avoid crowded areas. But, it&amp;rsquo;s too late.&lt;/p&gt;&lt;p&gt;The sound is deafening. The building shakes. She can&amp;rsquo;t tell the difference between what she&amp;rsquo;s hearing and what she&amp;rsquo;s feeling. The lights go out. Alarms blare. It&amp;rsquo;s a sensory overload that makes it hard to think.&lt;/p&gt;&lt;p&gt;In that moment, on the first floor of the building, the mail-room had just been reduced to shrapnel and wood shards.&lt;/p&gt;&lt;p&gt;She stands, stunned, as she hears a series of dull thuds emanating from nearby buildings. Smoke starts billowing from the middle of the building next to hers. She watches, still frozen, as the black smoke gives way to deep red flames.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Jessica&lt;/em&gt;: Too late. Bomb went off downstairs. Building across the street is on fire. I heard dozens of explosions.&lt;br&gt;&lt;em&gt;Michael&lt;/em&gt;: It&amp;rsquo;s chaos out down here. There was an explosion at the escalator near my unit. They blew up the gate. The cops are gone. People are flooding up. Hide.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The alarms stop, and a voice comes over the alarm system.&lt;/p&gt;&lt;p&gt;&amp;ldquo;There has been an attack and law enforcement will arrive soon. The building is now on lock-down. Remain where you are, and lock all doors. Do not leave your floor. All security doors are now locked.&amp;rdquo;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;The city was transformed from a well-ordered machine to utter chaos. The streets filled with panicked people, running in sheer terror, aimlessly. Fires were reported across all levels of the city. Dozens of major businesses and factories had seen explosions. Politicians and business leaders had their homes destroyed. Police stations burned across the city.&lt;/p&gt;&lt;p&gt;Deep in the city was the main power plant, the electrical lifeblood of the city, was engulfed in flames. As it burned, the flames pushed into the buildings on the foundations above, spreading the fires ever faster, to more and more structures.&lt;/p&gt;&lt;p&gt;The city went dark. No electricity. Black smoke. Red flames.&lt;/p&gt;&lt;p&gt;A rain began falling in the lower city; a mist of water from fire fighting and molten aluminium from the worsening fires.&lt;/p&gt;&lt;p&gt;The finely tuned machine that was a city, was now a vision of hell.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;The rioters focused on the city&amp;rsquo;s political class first and foremost. The mayor. The city council. The chief of police. None would see the end of the first day of the riot. Business leaders that were lucky enough to be locked inside of secure towers fared little better.&lt;/p&gt;&lt;p&gt;The first day of the riot was a righteous revenge, an outpouring of hate, a carnival of violence. Rioters, police, workers, fire fighters, doctors &amp;amp; nurses — all paid the price. All suffered.&lt;/p&gt;&lt;p&gt;Hours turned to days, the riot faded and was replaced with a fight for survival; as the city burned, little else mattered than surviving until the next day. The riot didn&amp;rsquo;t so much as end, as it instead was simply forgotten. Survival was the priority for everyone.&lt;/p&gt;&lt;p&gt;Emergency forces eventually emerged from the initial chaos, steadily restoring order. Slowly, the fires were brought under control. Day after day, hell faded, and a city—broken and burnt—began to come back into view. The smoke cleared. The sun eventually broke through.&lt;/p&gt;&lt;p&gt;It took 3 days before the police found it to be safe enough for those still locked in their towers on the uppermost level to step outside, only then could Jessica leave. It would be 5 days before her apartment tower was cleared for residents to return.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Life was forever changed after the riot, though in ways that none could have foreseen.&lt;/p&gt;&lt;p&gt;With most of the city&amp;rsquo;s leadership gone, the first step of rebuilding was to select a new mayor and council. Due to the state of emergency, the decision was made to appoint a new mayor, and allow them to appoint the new council. In a meeting of business leaders, the president of the city&amp;rsquo;s largest manufacturer — Jessica&amp;rsquo;s boss — was selected as the new mayor.&lt;/p&gt;&lt;p&gt;He would resign from his job to focus on the city, and the board of directors selected Jessica as the company&amp;rsquo;s next leader. A promotion that she could have only dreamt of as a little girl, growing up in the lower city. He packed the city council with his former executive team and leaders from other major companies in the city. Jessica found herself with another new title, Councilwoman.&lt;/p&gt;&lt;p&gt;The first thing the council did was pass a sweeping reform package.&lt;/p&gt;&lt;p&gt;The headlines over the coming days made clear the new direction the city would take. &lt;em&gt;City to prioritise building new prison. Minimum 10 year prison sentence for rioters. New police stations to open in lower city. Police force to double in size over next 12 months. City to standardise 7-day workweek for factories. Special prosecutor appointed for riot-related crimes. Building safety standards suspended for quick rebuilding.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The rioters wanted change. The city had changed, but only in that it had hardened. The tolerance was gone.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Jessica walks into the boardroom, her suit is black, her nails and lips are a striking red. As always, her outfit, makeup, and jewellery are chosen to control focus, attention, and perception.&lt;/p&gt;&lt;p&gt;Without wasting a moment, she begins her speech. She&amp;rsquo;s laying out her plan for the future.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Ladies and gentlemen of the board, first, thank you for placing your trust and faith in me. As President, I shall again redouble my efforts for this company. We have braved an unprecedented challenge to both our company and our city. As we rebuild, we also face an unprecedented opportunity. Real estate is now available for pennies on the dollar. Our competitors that didn&amp;rsquo;t have the foresight to build a war chest are facing bankruptcy. Now is the time to invest. Now is the time to expand. This isn&amp;rsquo;t the time for fear. This isn&amp;rsquo;t the time for caution. We need to be aggressive.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;As part of my new role on the city council, I have worked diligently to ensure the business interests have been represented, and to ensure that businesses that were prepared can do more than simply recover. I introduced the new bills that expanded prison terms for rioters. This makes it safer for us, and everyone else, to invest and rebuild. I wrote the bill that updated the city&amp;rsquo;s labor laws to make 7-day workweeks standard, allowing us to grow our business and expand at unprecedented speed. I sponsored the bill that temporarily suspended outdated safety rules, providing waivers for regulations that would slow down rebuilding, allowing us to deploy our capital reserves quickly and effectively. We can take advantage of this opportunity to not just rebuild, but to expand, to build more factories, to acquire and integrate our competitors.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Never before in this company&amp;rsquo;s history have we had such an incredible opportunity. I ask you today to vote for my expansion plan, and to release all available funds. While others fall, we will rise to new heights.&amp;rdquo;&lt;/p&gt;&lt;p&gt;The CFO smiles, she&amp;rsquo;s already done the math on Jessica&amp;rsquo;s plan and the profit that they&amp;rsquo;ll make. The chairman looks at the folio in front of him, explaining the new spending in detail — and listing the companies that she will target for acquisition. His smile grows as he reads the list. The two largest shareholders exchange looks and nod.&lt;/p&gt;&lt;p&gt;Jessica stands before the board and breathes in deeply. She knows her future depends on this meeting. She is in awe that, after years of relentless effort, she has exceeded her wildest dreams. She feels like the ultimate imposter, a girl from the lower city, standing in the halls of power. She exhales, revealing none of this.&lt;/p&gt;&lt;p&gt;By the end of the day, not only had the board approved Jessica&amp;rsquo;s expansive plan, her spending spree had already begun.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Power was restored. Debris was cleaned up. Undamaged businesses and factories reopened. Damaged building demolished. New construction started.&lt;/p&gt;&lt;p&gt;As the weeks went by, the city settled into the new normal. Police were now seldom seen on the upper levels, they now focused most of their time in the lower city. New shack-like factories were opening, and products were flowing again. The &amp;ldquo;lowers&amp;rdquo; that were involved in the riot were being arrested by the dozens. The city&amp;rsquo;s vast array of security cameras were used as evidence, allowing those that were involved to be easily identified, and quickly tried, convicted, and then severely punished for their role in the riot.&lt;/p&gt;&lt;p&gt;Those that built the bombs were found. None of them survived being arrested. Something that had quickly become common for those accused of the most serious crimes. Justice had become swift and brutal.&lt;/p&gt;&lt;p&gt;The search for those involved in the riot was relentless.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Jessica sits on the witness stand in a courtroom, the special prosecutor stands before the judge. She picked a bold blue skirt-suit for her testimony, her long brown hair is up in a neat bun. Around her neck and wrist are a collection of fine diamonds on white-gold chains. She selected this outfit to ensure that it made her status clear.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Councilwoman, thank you for attending this hearing today. The court knows that you are very busy, and appreciates your time.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Of course, your honor. It&amp;rsquo;s my duty to be here in service of the city and its citizens.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;The prosecution may question the witness.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Thank you your honor. Councilwoman, for the record, can you state your relationship to the defendant?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;We share the same parents.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;So he&amp;rsquo;s your brother, Councilwoman?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Not the term I&amp;rsquo;d use. He contacted me the day of the riot, told me to go downstairs when he knew there was an explosive in the lobby. If I had listened to him, I could have died. I would have been in the lobby when it detonated.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Michael&amp;rsquo;s jaw drops as he processes his sister&amp;rsquo;s words. He looks at her, a picture of power and grace, an ideal member of the elite. Rising from the lower city, she is now one of the most powerful people in the city. She can afford no weaknesses that others could exploit. In that moment, he understands. He accepts his fate. As always, this is about her.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Councilwoman, why do you think he knew about the explosive devices?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;He told me about them. He hacked into the conveyor network to use it for smuggling. The day of the riot he texted me, and told me that his routing software was sending the packages around the security checks, so that they would be delivered without being detected.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;No further questions.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Is Long-form Writing Dead?</title><link>https://adamcaudill.com/2025/12/29/is-long-form-writing-dead/</link><pubDate>Mon, 29 Dec 2025 02:29:22 +0000</pubDate><guid>https://adamcaudill.com/2025/12/29/is-long-form-writing-dead/</guid><description>&lt;p&gt;In a world where attention spans have been reduced to seconds, college students aren&amp;rsquo;t expected to read full books, AI is used to summarise anything more than a few sentences, and blogs have been largely replaced with microblogging platforms, is there still a place for long-form writing? In this essay I would like to explore that question; from how we got here to what hope we have for the future.&lt;/p&gt;&lt;p&gt;This is a complex topic, and to properly explore this, we need to go back several decades. What we see today are the symptoms of decades of changes and issues, layered one upon the other, building up to a far larger issue than what any of these could explain in isolation. While this essay goes on quite a journey, I believe that the journey is worthwhile and enlightening.&lt;/p&gt;&lt;p&gt;Before we truly begin, I must confess an important fact: despite the length of this document, the countless hours that have been spent in research, writing, and building up to this essay, the question it presents won&amp;rsquo;t be answered. While I intend to explore the question in detail, I won&amp;rsquo;t provide the answer. In reality, I don&amp;rsquo;t know. Long-form writing, as we know it, may be a dying art.&lt;/p&gt;&lt;h2 id="three-cueing-vs-phonics"&gt;Three-cueing vs. Phonics&lt;/h2&gt;&lt;p&gt;We start at the start, which is to say, how we learn to read. If you are not familiar with the three-cueing method, I suggest you read this, as this is critical to our analysis. If you are familiar, feel free to skip ahead.&lt;/p&gt;&lt;p&gt;Since as early as 1570, children in the English-speaking world have largely learned to read through a system that’s now called phonics. A system that focuses on the sounds associated with the letters &amp;amp; letter groups, allowing new readers to break down words into smaller components and work through those components individually. Phonics has strengths and weaknesses; it allows a reader encountering a new word to work through it to discover what it is with some effort. It’s also slow to show progress and frustrating for those learning to read.&lt;/p&gt;&lt;p&gt;In the 1960s, a new method was introduced that aimed to simplify learning, and allow new readers to achieve literacy faster. Three-cueing doesn’t focus on breaking words down to understand them, but using context clues to allow readers to make guided guesses&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;. This system taught readers to look at three elements to identify context.&lt;/p&gt;&lt;p&gt;When a reader encounters a word they aren’t familiar with, they are taught to look for the following cues to identify the word:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visual: Looking at the first letters, word shape, letter clusters, visual alignment to other known words.&lt;/li&gt;&lt;li&gt;Structure: Looking at the structure of the sentence to identify patterns, grammatical requirements, or other syntactic hints.&lt;/li&gt;&lt;li&gt;Meaning: Looking for semantic hints, such as meaning of the sentence or prior sentences, context of the document so far, illustrations, and other hints that provide broader context.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Using these three-cues, new readers are taught to identify likely words, &lt;em&gt;guess&lt;/em&gt; which is the best fitting, and if needed, to mentally &lt;em&gt;replace&lt;/em&gt; the word with another that the reader knows.&lt;/p&gt;&lt;p&gt;This system is easier and faster to teach, and performs well in standardised tests where students can be prepared for a limited and consistent set of words that they need to know. However, it has problems. Very serious problems.&lt;/p&gt;&lt;p&gt;The system was based on a flawed understanding of cognitive development, and resulted in teaching students a system that allowed them to gain some understanding of written words quickly. Though the system also resulted in students often not understanding texts, and different students coming away with substantially different interpretations of the same text&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;. Those that learned to read with this method struggle to understand new words, and struggle with comprehension, due to replacing or skipping unknown words.&lt;/p&gt;&lt;p&gt;In 2020, one study showed that 75% of teachers in the US were teaching the three-cues method. However, this is changing as the issues with the method are becoming better known, and at least 12 states have now banned the method.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;[&amp;hellip;] the student told Dames that, at her public high school, she had never been required to read an entire book. She had been assigned excerpts, poetry, and news articles, but not a single book cover to cover. - &lt;em&gt;&lt;a href="https://www.theatlantic.com/magazine/archive/2024/11/the-elite-college-students-who-cant-read-books/679945/"&gt;The Elite College Students Who Can’t Read Books&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;As this method of teaching reading has spread, schools have also reduced the quantity of reading expected of students. Students are struggling to finish even simple reading assignments, struggling to understand what they read&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;, and become overwhelmed when asked to read lengthy or complex texts.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;[&amp;hellip;] we are in new territory when even highly motivated honors students struggle to grasp the basic argument of a 20-page article - &lt;em&gt;&lt;a href="https://slate.com/human-interest/2024/02/literacy-crisis-reading-comprehension-college.html"&gt;Adam Kotsko&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The simple version of all this is, unfortunately, teaching methods have failed to prepare children to read. Choices that were made over the last few decades are coming into full relief, and the picture is disturbing.&lt;/p&gt;&lt;h2 id="micro-content--micro-dopamine"&gt;Micro-Content &amp;amp; Micro-Dopamine&lt;/h2&gt;&lt;p&gt;With the words “just setting up my twttr” Jack Dorsey started a revolution. Twitter was focused on short but high volume content, with a focus on interaction over quality. Micro-blogging was born. Short posts, drops in a firehose, most with a half-life measured in hours or even minutes&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&lt;p&gt;If you didn’t get a re-tweet or reply or like within the first few minutes, it was probably a miss. Might as well delete it and try something else to see if that one lands. The search for those tiny hits of dopamine started as soon as Twitter started.&lt;/p&gt;&lt;p&gt;Due to the small post size supported, thoughts had to be compressed, vocabulary limited to the shortest words available, commentary limited. Like the previous sentence, the posts were limited to 140 characters, a painful limitation that made clarity difficult and precision nearly impossible.&lt;/p&gt;&lt;p&gt;Then there was Instagram. Photos, just photos. A way to share filtered views of everyday life. The next step was &lt;a href="https://en.wikipedia.org/wiki/Vine_(service)"&gt;Vine&lt;/a&gt;, a service that allowed users to view, create, and share 6-second looping videos. Tiny content, tiny dopamine hits.&lt;/p&gt;&lt;p&gt;From here, we all know how things have evolved. TikTok, Threads, Bluesky, Mastodon, and countless others.&lt;/p&gt;&lt;p&gt;The impacts of poor reading skills continue to compound as social media was reshaped to focus on shorter content, with compressed vocabularies, and an increased focus on achieving quick dopamine hits over meaningful communication.&lt;/p&gt;&lt;h2 id="writing-but-not-reading"&gt;Writing but not Reading&lt;/h2&gt;&lt;p&gt;If you include self-published books, it’s &lt;a href="https://www.tonerbuzz.com/blog/how-many-books-are-published-each-year/"&gt;estimated&lt;/a&gt; that up to 4,000,000 books are published every year. Yet sales are often far worse than disappointing. A self-published author is likely to see 5 copies sold. For professionally published books, that number climbs to roughly 1,000.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;[&amp;hellip;] based on data on 58,000 books published in a year, &amp;lsquo;90% sold less than 2,000 copies, and 50% sold less than 12 copies.&amp;rsquo; - &lt;em&gt;&lt;a href="https://www.elysian.press/p/no-one-buys-books"&gt;The Elysian&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;While this isn’t to say that people have given up on books, as popular authors are still selling well, it does show that there is a massive disconnect between those writing books and the market that’s actually available&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&lt;p&gt;Given the sales figures that can be reasonably expected, writing a book is, sadly, often more about either passion or ego than viable income.&lt;/p&gt;&lt;h2 id="schrödingers-blog"&gt;Schrödinger&amp;rsquo;s Blog&lt;/h2&gt;&lt;p&gt;Blogging is alive and well and simultaneously a dead relic, it just depends on who you ask. There are now more than &lt;a href="https://elementor.com/blog/essential-blogging-statistics/"&gt;600 million blogs&lt;/a&gt;, a number that has been growing rapidly. However, while the number of blogs is climbing, the authenticity is dropping. For those focused on company blogs, &lt;a href="https://www.siegemedia.com/strategy/content-marketing-trends"&gt;57.4% are using AI to create content&lt;/a&gt;, and various studies show an intent to use AI more in the future. Studies show interest in blogs dropping, especially among young people, as early as 2010.&lt;/p&gt;&lt;p&gt;Estimates vary, though approximately 1.6B-2.5B blog posts are published every year. Yet, it’s also becoming harder to convince people to actually look at these posts: roughly &lt;a href="https://sparktoro.com/blog/2024-zero-click-search-study-for-every-1000-us-google-searches-only-374-clicks-go-to-the-open-web-in-the-eu-its-360/"&gt;60% of Google searches result in no clicks&lt;/a&gt;, searches where the user either relies on an AI summary or what they saw on site previews. But that’s not the worst thing going on, it gets worse.&lt;/p&gt;&lt;p&gt;According to one &lt;a href="https://optinmonster.com/blogging-statistics/"&gt;source&lt;/a&gt;, the average reader only spends &lt;em&gt;52 seconds&lt;/em&gt; reading a blog post. The average blog post across the industry is roughly 1,400 words; at a normal reading speed, that means on average, a reader will cover about 150 words before leaving.&lt;/p&gt;&lt;h2 id="ai-machines-writing-for-machines"&gt;AI: Machines Writing for Machines&lt;/h2&gt;&lt;p&gt;&lt;a href="https://marketoonist.com/2023/03/ai-written-ai-read.html"&gt;&lt;img src="https://marketoonist.com/wp-content/uploads/2023/03/230327.n.aiwritten.jpg" style="width: 70%; display: block; margin-left: auto; margin-right: auto;"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;AI is everywhere, and it’s critical to this discussion as well. As noted above, 57.4% of corporate bloggers are using AI to draft content. Another, a &lt;a href="https://www.publishersweekly.com/pw/by-topic/digital/copyright/article/99019-new-report-examines-writers-attitudes-toward-ai.html"&gt;survey&lt;/a&gt; of professional writers, show that 63% of writers use AI to generate text that they later edit. While some avoid using AI to generate content, &lt;a href="https://adamcaudill.com/2025/12/27/why-i-will-never-write-with-ai/"&gt;including myself&lt;/a&gt;, the percentage is not high, and seems to be trending lower.&lt;/p&gt;&lt;p&gt;In the book market, the number of books that are all or largely AI generated is climbing rapidly. In one study of books available on Amazon, in a sampling of books in one category, &lt;a href="https://www.theguardian.com/books/2025/oct/22/detection-firm-finds-82-of-herbal-remedy-books-on-amazon-likely-written-by-ai"&gt;82% were found to likely be AI&lt;/a&gt;. A broader industry analysis put the number at 20% of all self-published books. The number of books generated by AI has grown to such an extent that Amazon now &lt;a href="https://observer.com/2023/11/ai-self-publishing-books-author-interview/"&gt;limits&lt;/a&gt; self-publishers to three new books &lt;em&gt;per day&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Once we get through writing, we then land on the other side: AI summaries. A &lt;a href="https://searchengineland.com/ai-search-survey-summaries-shopping-461928"&gt;survey&lt;/a&gt; shows that 87% of adults in the US use AI summaries while searching, &lt;a href="https://apnews.com/article/ai-artificial-intelligence-poll-229b665d10d057441a69f56648b973e1"&gt;60% use it to search&lt;/a&gt; for information, &lt;a href="https://cms.sc.edu/study/colleges_schools/cic/docs/pdfs/ai_wave3.pdf"&gt;48% use it to summarise&lt;/a&gt; long texts.&lt;/p&gt;&lt;p&gt;This can be combined with AI being integrated directly into browsers, or browsers being released by AI companies to offer deeper integration, making it easy to get an AI generated summary without even leaving the tab. Or email platforms integrating AI summaries. Or corporate chat platforms integrating AI summaries. Or meeting platforms integrating AI summaries. It keeps going. Anywhere there is long text, there’s an AI summary button within a few clicks.&lt;/p&gt;&lt;h2 id="is-long-form-reading-dead"&gt;Is Long-form Reading Dead?&lt;/h2&gt;&lt;p&gt;At the beginning of this essay I asked the question, is long-form writing dead? At this point I think it’s clear that we’ve been asking the wrong question. There is a great deal of long-form writing in the world, and it’s quite possible that it’s growing (though the quality is increasingly questionable). The real question comes down to, is reading long-form content dying? Is it getting to the point that it’s pointless to write because it won’t be read?&lt;/p&gt;&lt;p&gt;That is a question that we will have to leave to the future, though I suspect, with what we have seen here, that there is reason to worry.&lt;/p&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:1"&gt;&lt;p&gt;This article, for the sake of brevity, keeps the description brief and focused on how it applies to the points made herein. The issues with the &lt;a href="https://en.wikipedia.org/wiki/Three_cueing"&gt;three-cueing&lt;/a&gt; system are well documented and widely available. If you are unfamiliar with this system, I suggest that you research the issue and its history. From my experience as a person that learned phonics as a child and as a parent with children that were taught with three-cueing at school, and seeing the complications it has caused, I have strong opinions on this topic.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:2"&gt;&lt;p&gt;A study asked a group of student volunteers to read the first 7 paragraphs of &lt;em&gt;Bleak House&lt;/em&gt; by Charles Dickens. Subjects were asked to rewrite the passage in modern English, with free access to to dictionaries, reference material, and their phones. 58% were unable to understand the material to the point that they would be unable to read the novel alone. Only 5% were found to be proficient and properly understood the material. These students were English majors. See &lt;a href="http://muse.jhu.edu/pub/1/article/922346/pdf"&gt;They Don’t Read Very Well: A Study of the Reading Comprehension Skills of English Majors at Two Midwestern Universities&lt;/a&gt;. See also &lt;a href="https://www.aft.org/ae/winter2025-2026/wexler"&gt;Teaching with Whole Books Boosts Comprehension and Engagement&lt;/a&gt; for further reading; this article extensively documents the challenges with slipping reading comprehension.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:3"&gt;&lt;p&gt;There are a variety of causes of reduced reading comprehension, and the use of flawed methods to teach new readers is just one. While I will explore this more, I should be clear that this can’t be entirely blamed on three-cueing.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:4"&gt;&lt;p&gt;I talk more about the view of seeing online content in terms of its half-life in &lt;a href="https://adamcaudill.com/2020/11/27/write-like-you-are-running-out-of-time/"&gt;Write Like You Are Running Out of Time&lt;/a&gt;. I find this to be a particularly useful way to view the effective lifespan of what we write.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:5"&gt;&lt;p&gt;Exact figures for the book industry are notoriously hard to find. Much of the data is treated as confidential, some publishers &amp;amp; platforms don’t share useful data, including Amazon, making it difficult to find consistent and well-sourced statistics. You will likely see somewhat different figures from different sources, so these should be seen as illustrative instead of exact.&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description></item><item><title>Why I Will Never Write With AI</title><link>https://adamcaudill.com/2025/12/27/why-i-will-never-write-with-ai/</link><pubDate>Sat, 27 Dec 2025 08:29:22 +0000</pubDate><guid>https://adamcaudill.com/2025/12/27/why-i-will-never-write-with-ai/</guid><description>&lt;p&gt;Every person has rules that they apply to themself, red lines that they won’t cross. For me, signing my name to anything generated by AI is one of those. I’d like to take a few minutes to talk about why.&lt;/p&gt;&lt;p&gt;I spend a lot of time writing. Some is on this site, though much more of my work isn&amp;rsquo;t public, is published elsewhere, not yet published, or ghost written for others. On this site, according to the &lt;a href="https://adamcaudill.com/stats/"&gt;stats&lt;/a&gt;, I&amp;rsquo;ve spent at least &lt;em&gt;864 hours&lt;/em&gt; writing the content you see here. That&amp;rsquo;s over a month of continuous writing. That&amp;rsquo;s over a month of my life dedicated to sharing information and working to prompt further discussion and contemplation. Yet I never have, nor ever will, sign my name to anything written with AI&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&lt;p&gt;For some readers, this will seem to be a given due to objections&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; to generative AI. After all, generative AI may be the most hated technology since the industrial revolution&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;. For others, they focus on benefits and the ability to &amp;ldquo;create&amp;rdquo; more content in less time, or overcome physical limitations&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;, or write in languages they haven&amp;rsquo;t mastered, or any of a thousand other reasons they could cite. This essay isn&amp;rsquo;t about either of those positions.&lt;/p&gt;&lt;p&gt;In fact, this article isn&amp;rsquo;t truly about AI at all. While it does center on generative AI, it&amp;rsquo;s not the AI that matters here. Allow me to explain.&lt;/p&gt;&lt;h2 id="writing-as-creation"&gt;Writing as Creation&lt;/h2&gt;&lt;p&gt;Whether one writes to document a system, answer a question, share experiences, or tell a story, it&amp;rsquo;s a form of art. Conveying knowledge and understanding to another through crafted prose and thoughtful constructs, this is both an art and a critical skill. For those of us that work in the technology industry, our ability to clearly and effectively convey information is vital to our success. For those that write to tell stories, true or fiction, they raise this art higher, to convey emotions.&lt;/p&gt;&lt;p&gt;What starts as a simple effort to express a thought or idea becomes a craft with experience, and an art as skill grows. Each word selected to achieve the desired effect. Intent laden and time consuming to do well (or well enough, as in my case&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;), &lt;em&gt;good&lt;/em&gt; writing requires more than a catalog of words and a working understanding of a language. It requires an understanding of the reader, their experiences, their knowledge, their perspective. The best writers use their knowledge to write for not a single reader, but many readers, each with different backgrounds. They blend all this carefully, thoughtfully, and with exacting detail.&lt;/p&gt;&lt;p&gt;When you encounter anything from a technical analysis to a fictional tale, if you walked away understanding more than you did before, it&amp;rsquo;s because of that careful intent. And intent is what this article is actually about.&lt;/p&gt;&lt;h2 id="why-i-started-writing"&gt;Why I Started Writing&lt;/h2&gt;&lt;p&gt;Starting when I was frequently answering programming questions in forums as a teenager, providing detailed and lengthy answers to complex questions, it was clear that the single most valuable skill I could develop wasn&amp;rsquo;t memoizing more development trivia or adding more programming languages, it was writing. Clear, careful, thoughtful, and targeted communication is the difference between building a career and being sidelined. Ensuring that others understand exactly what you need them to understand&lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref"&gt;6&lt;/a&gt;&lt;/sup&gt; is the single most important skill anyone can develop. Without that, other skills are far less useful.&lt;/p&gt;&lt;p&gt;I did not start writing for the sake of writing, or for the sake of creating, but as an effort to develop a critical skill. Many millions of words later, this skill has served me well, and is one that I continue to invest in.&lt;/p&gt;&lt;p&gt;In the nearly 1,000 hours that I have spent writing content for this site, it has never been part of my income, it has never paid a single bill. Essays such as this, are instead a gift, given freely to readers, in hopes that it will spark discussion or thought. The only benefit I receive for the hours invested is an opportunity to learn new things through the research required, and some slow polishing of the skills I&amp;rsquo;ve developed for conveying information and ideas.&lt;/p&gt;&lt;h2 id="ai-as-a-cheat-code"&gt;AI as a Cheat-code&lt;/h2&gt;&lt;p&gt;For many readers, the letters &lt;code&gt;iddqd&lt;/code&gt; will be immediately recognisable, the ultimate cheat code for Doom. Full health, no damage. Or maybe &lt;code&gt;dnstuff&lt;/code&gt; was your ultimate cheat; granting all keys, weapons, and ammo in Duke Nukem 3D. A few keystrokes and the challenge was gone. You could play through the game quickly, easily, and without a worry.&lt;/p&gt;&lt;p&gt;When the game was over though, nothing was accomplished. There was nothing to be proud of. No skill was improved. No knowledge gained. It was done, but a meaningless and empty event.&lt;/p&gt;&lt;p&gt;In the mid to late 1990s, I spent some time making custom maps for both of these games, this included countless tweaks, hundreds of tests, and hour upon hour of playing the same levels over and over. While working on the maps it made perfect sense to use the cheat codes. There was a time and place where the point wasn&amp;rsquo;t the journey, but getting to the end to achieve something else.&lt;/p&gt;&lt;p&gt;AI, for many, is a cheat code. It&amp;rsquo;s a way to move through a task quickly, to get to the end without investing the level of time, energy, effort, or thought otherwise needed.&lt;/p&gt;&lt;p&gt;There are times, in my opinion, that using a cheat code makes sense. You need to get around something that would take time, you wouldn&amp;rsquo;t get anything useful from the journey, and it&amp;rsquo;s in the way of getting to something more important.&lt;/p&gt;&lt;p&gt;There are other times that using a cheat code only cheats yourself. You miss out on the journey, the research, the knowledge, the experience. Generative AI has proven itself to be a highly effective cheat code for many, especially when it comes to writing. A person can spend 30 seconds writing a prompt, and they get a 1,500 word essay. An essay devoid of intent. An experience devoid of benefit.&lt;/p&gt;&lt;h2 id="the-journey-matters"&gt;The Journey Matters&lt;/h2&gt;&lt;p&gt;If you&amp;rsquo;ll indulge me, I&amp;rsquo;ll continue with the cheat code analogy.&lt;/p&gt;&lt;p&gt;Some games can provide deep immersion, great acting, compelling stories, and journeys that matter far more than the destination. A few examples, for me, have been Expedition 33, Baldur&amp;rsquo;s Gate 3, Cyberpunk 2077, and Alan Wake - all of these &lt;em&gt;can&lt;/em&gt; provide a remarkable journey when you invest the time and effort into them. But, there&amp;rsquo;s a better example: MyHouse.wad&lt;sup id="fnref:7"&gt;&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref"&gt;7&lt;/a&gt;&lt;/sup&gt;. This appears to be a custom map for Doom, one that is superficially simple. However, through exploration, there is vastly more to be found than what appears on the surface. In reality, it’s an expansive experience that goes beyond the carefully crafted in-game journey.&lt;/p&gt;&lt;p&gt;I use MyHouse.wad as an example here, as it&amp;rsquo;s a perfect analogy. If you take the easy route and complete the map quickly, if you judge the game by what you see on the surface, you miss a journey that will stay with you for weeks. Worse, you&amp;rsquo;d have no idea what you had missed. Missing out and not even knowing it simply adds insult to injury.&lt;/p&gt;&lt;p&gt;Some time ago, I wrote an article about how &lt;a href="https://adamcaudill.com/2021/06/25/crew-resource-management-for-security-teams/"&gt;aviation safety lessons&lt;/a&gt; can be applied to security. This required weeks of research, identifying source materials, reading countless PDFs and investigative reports. This was one of the most time consuming articles I&amp;rsquo;ve ever written. It was also a great experience, and gave me a number of opportunities to learn more, dive deeper, find new parallels, and improve the work.&lt;/p&gt;&lt;p&gt;Today, with a well structured prompt, I could produce a blog post on the same topic in about 5 minutes. It would read well enough and it would likely make good points&lt;sup id="fnref:8"&gt;&lt;a href="#fn:8" class="footnote-ref" role="doc-noteref"&gt;8&lt;/a&gt;&lt;/sup&gt;. Yet it wouldn&amp;rsquo;t have intent, it wouldn&amp;rsquo;t have lived experience, it wouldn&amp;rsquo;t have insight that built on understanding of separate industries that can learn from each other.&lt;/p&gt;&lt;p&gt;Yet, going with the cheat code route would have cheated me out of valuable opportunities to learn and grow. It also would have cheated readers out of their valuable time. Asking a person to read, to take their time and attention, and spending it on something that wasn&amp;rsquo;t worth the time to write is simply insulting. Time is too limited and too valuable to ask another to waste it.&lt;/p&gt;&lt;h2 id="everyone-is-doing-it"&gt;Everyone is Doing It&lt;/h2&gt;&lt;p&gt;As frequent readers are likely aware, I&amp;rsquo;ve written quite a few articles about AI - from &lt;a href="https://adamcaudill.com/2025/01/30/millions-of-jobs/"&gt;impact to jobs&lt;/a&gt; to debating the &lt;a href="https://adamcaudill.com/2025/03/31/on-ai-art-writing-and-the-distillation-of-creativity/"&gt;questionable creative value of AI content&lt;/a&gt;, and even explored far future implications of &lt;a href="https://adamcaudill.com/2025/02/17/when-ai-becomes-i/"&gt;artificial life&lt;/a&gt; (and more). I&amp;rsquo;ve explored these topics as, regardless of how anyone feels about it, generative AI is one of the most consequential technologies developed in decades. Even if one believes that it&amp;rsquo;s all hype, that doesn&amp;rsquo;t change the impact it&amp;rsquo;s having to the economy, jobs, and the growing impact to how people work on a daily basis.&lt;/p&gt;&lt;p&gt;There are wide gulfs in how people perceive generative AI, and nuance is becoming harder to find in these conversations. Yet the reality is that use is spreading, and in some areas, it&amp;rsquo;s nearly impossible to avoid. At this point I would argue that nearly all codebases with a non-trivial number of developers includes AI generated code&lt;sup id="fnref:9"&gt;&lt;a href="#fn:9" class="footnote-ref" role="doc-noteref"&gt;9&lt;/a&gt;&lt;/sup&gt;. The only question is if developers and companies are willing to be honest about that fact.&lt;/p&gt;&lt;p&gt;In management, there is fear of being left behind if it&amp;rsquo;s not used, that competitors that embrace it will be able to pull ahead. Venture capital firms make it clear that heavy AI integration is now table stakes - new startups that don&amp;rsquo;t make extensive use of AI are considered to not be viable. Universities increasingly make AI usage a standard part of their programs, as it&amp;rsquo;s assumed that understanding AI will be necessary to work in the future.&lt;/p&gt;&lt;p&gt;Saying that everyone else is doing it is an argument that can be seductive, yet changes nothing. It&amp;rsquo;s still a cheat code and using cheat codes comes with consequences. One should understand those consequences well before using them, and in which scenarios it’s appropriate for them.&lt;/p&gt;&lt;h2 id="intellectual-integrity"&gt;Intellectual Integrity&lt;/h2&gt;&lt;p&gt;Some people will use AI for everything, others will use it for nothing. For me, I’m somewhere between these extremes. I would rather spend my &lt;a href="https://adamcaudill.com/2020/11/27/write-like-you-are-running-out-of-time/"&gt;limited time&lt;/a&gt; to create and spend time with those that matter, and if there’s a cheat code that’ll allow me to waste less time, I will&lt;sup id="fnref:10"&gt;&lt;a href="#fn:10" class="footnote-ref" role="doc-noteref"&gt;10&lt;/a&gt;&lt;/sup&gt;. Time is precious, too precious to waste.&lt;/p&gt;&lt;p&gt;When I say this, I’m not just talking about my time, I’m also talking about your time. And I would like to thank you for your time, your attention, and the opportunity to hopefully inspire more detailed and nuanced consideration of a divisive and complex topic.&lt;/p&gt;&lt;p&gt;Like every article on this site, this was written by hand, one keystroke at a time. Like every other article, not a single word was written by generative AI. That won&amp;rsquo;t change. Out of respect for those that take the time to read these articles, that will &lt;em&gt;never&lt;/em&gt; change.&lt;/p&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:1"&gt;&lt;p&gt;There are roughly three articles here that include AI generated content, used as examples for discussion, and are clearly labeled as such.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:2"&gt;&lt;p&gt;The moral, ethical, legal, environmental, and economic issues related to generative AI and the companies that develop the underlying models is beyond the scope of this article. Countless articles have been written about these issues, some nuanced and exploring complex issues, others taking a more simplistic view. Addressing these issues in a fair way would require an effort far larger than the scope of this article. As the full complexity is too extensive to fairly explore here, these issues will not be addressed.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:3"&gt;&lt;p&gt;A recent informal poll on Mastodon showed over 50% of respondents have adopted an approach of avoiding the technology whenever possible. The last major change in technology that resulted in such a substantial popular resistance was likely the &lt;a href="https://en.wikipedia.org/wiki/Luddite"&gt;Luddite movement&lt;/a&gt; of the early 1800s, driven by a group of textile workers that believed that changes in technology would reduce jobs &amp;amp; pay, lower quality, and worsen working conditions. This was exacerbated by a weak economy, with low job security, high underemployment, and raising inflation. This comparison is not made as a slight to those that oppose generative AI or the companies that power it, but to show the closest historical comparison.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:4"&gt;&lt;p&gt;In a &lt;a href="https://adamcaudill.com/2025/03/31/on-ai-art-writing-and-the-distillation-of-creativity/#fn:3"&gt;prior essay&lt;/a&gt; I shared a personal example of how this, to some degree, applies to me due to a rare hereditary degenerative neurological disorder. This impacts fine motor control and causes a tremor in my hands that has been growing over time, and results in escalating restrictions on my ability to engage in certain activities. The impact on my photography has been growing, and some activities, such as painting, are effectively impossible due to lack of precision. While this is not an argument that I will engage in personally, it is one that I am sympathetic to.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:5"&gt;&lt;p&gt;Despite the title you see above, I do not truly consider myself a writer, but a person that writes. I&amp;rsquo;ve had the honour to work with true writers, and their skill and ability far exceeds my own. It is a craft I care about, though a title I don&amp;rsquo;t feel I&amp;rsquo;ve earned.&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:6"&gt;&lt;p&gt;I would be remiss to not take this opportunity to remind readers that when writing, or otherwise communicating, what one says matters far less than what others understand. No matter how clear you think you are, if others have a different understanding than that you intended, you have failed. This is one of the most challenging aspects of writing, regardless of venue or type.&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:7"&gt;&lt;p&gt;Instead of providing an overview, such as the one on Wikipedia, if you are unfamiliar with this, I strongly recommend &lt;a href="https://www.youtube.com/watch?v=5wAo54DHDY0"&gt;this&lt;/a&gt; YouTube video which includes a play though and explanation. This is a long video, at over an hour and a half, though it provides the best way to experience this that I&amp;rsquo;ve found. This is a remarkably well constructed experience, and one that is well worth the time.&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:8"&gt;&lt;p&gt;While writing this, I asked ChatGPT &amp;amp; Gemini to do just this: create an article covering the same subject matter, to see how they would compare. Both created reasonable drafts with useful though incomplete explanations. Both were at or above the quality one would expect to see on LinkedIn or average corporate blogs. Gemini did provide better narrative and prose, though the insight was lacking and was far from complete. Neither were of sufficient quality to reproduce for the sake of comparison.&amp;#160;&lt;a href="#fnref:8" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:9"&gt;&lt;p&gt;Based on industry trends, surveys, private conversations with various organisations. For codebases that are under active development, with a non-trivial number of developers, it’s almost certain that either the company is supporting the use of AI generated code, or developers are using generation tools independently. There will be some exceptions, though the number is almost certainly far lower than some would expect.&amp;#160;&lt;a href="#fnref:9" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:10"&gt;&lt;p&gt;I wrote more about my take on tools that improve productivity in &lt;a href="https://adamcaudill.com/2025/12/09/developer-tools-productivity/"&gt;Developer Tools &amp;amp; Productivity&lt;/a&gt;.&amp;#160;&lt;a href="#fnref:10" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description></item><item><title>25% Unemployment in Tech?</title><link>https://adamcaudill.com/2025/12/23/25-unemployment-in-tech/</link><pubDate>Tue, 23 Dec 2025 14:05:49 +0000</pubDate><guid>https://adamcaudill.com/2025/12/23/25-unemployment-in-tech/</guid><description>&lt;p&gt;For more than a year there has been a clear trend: unemployment in the tech industry was climbing. The number of people with an &lt;em&gt;#OpenToWork&lt;/em&gt; badge on their picture was climbing. There was something worse though, something that I hadn’t seen before: several months later, they were still looking. Something was wrong. Something had changed.&lt;/p&gt;&lt;p&gt;There are incredibly talented people with years or even decades of experience that are finding themselves spending anywhere from 9 to 24+ months to find new employment. People that are well established in their careers, people that have proven themselves, yet unable to find stable employment. People that just a few years ago would have had several offers within weeks, now unable to find even one after many months.&lt;/p&gt;&lt;p&gt;The strength and resilience of the job market has been collapsing.&lt;/p&gt;&lt;p&gt;A week ago I launched a poll on Mastodon asking a simple question: if you work in tech, are you employed, unemployed, or underemployed? From anecdotal observations, the issue was clear. I wanted to take it to the next step and start collecting data. Today I’d like to discuss the results of this poll, government unemployment data, tax law changes, and other forces that are reshaping employment.&lt;/p&gt;&lt;h2 id="the-numbers"&gt;The Numbers&lt;/h2&gt;&lt;p&gt;Let’s start by taking a look at the numbers. If you’d like to skip ahead to &lt;a href="#the-analysis"&gt;the analysis&lt;/a&gt;, feel free. While analysing poll results and BLS data may be interesting, I understand if it seems a bit boring.&lt;/p&gt;&lt;h3 id="poll-results"&gt;Poll Results&lt;/h3&gt;&lt;p&gt;This &lt;a href="https://infosec.exchange/deck/@adam_caudill/115730663985898938"&gt;poll&lt;/a&gt;, posted to Mastodon, offered three options. Here are the results:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Unemployed: &lt;em&gt;25%&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Underemployed: &lt;em&gt;12%&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Employed: &lt;em&gt;63%&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This paints a picture that is both clear and disturbing. With &lt;em&gt;37%&lt;/em&gt; of people in the field that are either unemployed or underemployed, the job market is in a disturbing state.&lt;/p&gt;&lt;p&gt;This is an obviously unscientific poll, and there are a wide number of reasons that the numbers won’t reflect reality perfectly. From self-selection bias to lack of regional specific filtering, these numbers aren’t a statistically valid sampling. What they are though, is a reliable pulse-check of the industry. A way to get a feel for how the industry is doing, even if the specific numbers aren’t entirely correct.&lt;/p&gt;&lt;p&gt;While it’s easy to assume that selection bias has resulted in inflating the numbers for being unemployed or underemployed, there are other factors to be considered. One example are those that are either semi-retired or retiring early, because of the difficulty of finding full-time roles. There are also those that have left the tech industry entirely, in search of full-time work.&lt;/p&gt;&lt;p&gt;Based on anecdotal information, the number of people that have left the field or workforce is far from trivial.&lt;/p&gt;&lt;h3 id="the-official-numbers-us-edition"&gt;The Official Numbers, U.S. Edition&lt;/h3&gt;&lt;p&gt;If you look at the headlines of news reports in the U.S., you will see unemployment listed at 4.6%&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, though this is one of many different measurements. The Bureau of Labor Statistics publishes a variety of figures, the specific figure most people are familiar with is the U-3&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; count.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.bls.gov/charts/employment-situation/alternative-measures-of-labor-underutilization.htm"&gt;&lt;img src="https://adamcaudill.com/files/unemployment202512.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;While U-3 is the standard count, it’s arguable that U-6 (currently at &lt;em&gt;8.7%&lt;/em&gt;) is the more insightful number, as it includes those that are unquestionably underemployed (working part-time), as well as those that have actively looked for a new job in the last 12 months but not in the last 4 weeks.&lt;/p&gt;&lt;p&gt;In our informal poll, the equivalent would be roughly unemployed + underemployed. That would be &lt;em&gt;37%&lt;/em&gt; - far higher than the &lt;em&gt;8.7%&lt;/em&gt; being reported. While we are comparing a tech-focused poll to the broader population, I suspect it would be unwise to assume that the difference is that large&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&lt;p&gt;Given that our unemployment numbers are so far off, perhaps there are other figures that are more useful.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.bls.gov/charts/employment-situation/civilian-labor-force-participation-rate.htm"&gt;&lt;img src="https://adamcaudill.com/files/civilian-labor-force-202512.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If we look at the labor force participation rate, we see that it’s currently at 62.5%. This is the percentage of people that are either employed or actively looking for employment. Comparing these charts, it’s clear that in the U.S., the number of people that are part of the labor force has been dropping since 2006 when it was 66.4%.&lt;/p&gt;&lt;p&gt;While the percentage of those unemployed is similar to the 2006 level, the percentage of those in the labor pool has dropped by almost 4%, and has yet to recover to pre-pandemic levels.&lt;/p&gt;&lt;p&gt;Currently, this means that &lt;em&gt;37.5%&lt;/em&gt; of the population is considered to be outside the workforce, and thus not counted in the unemployment numbers that everyone sees.&lt;/p&gt;&lt;h2 id="the-analysis"&gt;The Analysis&lt;/h2&gt;&lt;p&gt;With these numbers in mind, I would like to take a few minutes to explore what these results mean, how we got here, and look a bit more into what’s going on.&lt;/p&gt;&lt;h3 id="8000-applicants"&gt;8,000 Applicants&lt;/h3&gt;&lt;p&gt;Speaking to a recruiter at a pre-IPO startup&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;, they shared a few interesting details about their open roles. One of these was a fully-remote software engineer role, which had received over &lt;em&gt;8,000&lt;/em&gt; applications. Another role, a very senior &amp;amp; specialised role had received over 250 applications, a role that a few years ago would have seen less than 20.&lt;/p&gt;&lt;p&gt;I have heard this from various recruiters, and has been building over the last three years or so. Hundreds of applications for roles that are specialised and require uncommon skills, roles that in the past I would have been excited to see two dozen applications. If you look at tech jobs on LinkedIn, you will see “Over 100 applicants” on nearly every one.&lt;/p&gt;&lt;p&gt;According to one hiring platform company, tech jobs are seeing the greatest number of applications per opening across all job roles&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;, with applications up 28% year over year&lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref"&gt;6&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&lt;p&gt;There are a number of factors in play with this massive increase:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Unemployment &amp;amp; underemployment are likely at unprecedented levels.&lt;/li&gt;&lt;li&gt;People are applying for roles that they are far over- or under-qualified for.&lt;/li&gt;&lt;li&gt;Substantial increase in fraudulent applications.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This is creating a hiring nightmare for applicants and hiring managers: a flood of applications that drown the viable applicants, hiding them in a sea of noise.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;We&amp;rsquo;re trying to hire a single developer right now and it&amp;rsquo;s been an absolute nightmare because of the amount of fraudulent applications and scammers. It&amp;rsquo;s crazy, and I don&amp;rsquo;t know how anyone gets anybody hired anywhere for a tech job anymore. - &lt;a href="https://bsky.app/profile/mikesager.net/post/3m7qkg6ubnc2x"&gt;&lt;em&gt;Mike Sager&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;While the supply of those looking seems to far exceed demand, there is indeed demand. There are roles open, though identifying the right candidates is getting harder, and filling roles is taking longer.&lt;/p&gt;&lt;p&gt;Time to fill roles is growing, with one source indicating that the average for a tech role is currently 51 days&lt;sup id="fnref:7"&gt;&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref"&gt;7&lt;/a&gt;&lt;/sup&gt;. However the time for someone to find a new role is, at least anecdotally, substantially longer. Searches of 6 to 12+ months not being uncommon&lt;sup id="fnref:8"&gt;&lt;a href="#fn:8" class="footnote-ref" role="doc-noteref"&gt;8&lt;/a&gt;&lt;/sup&gt; among those sharing their experiences on social media (and observations of unemployed status on LinkedIn).&lt;/p&gt;&lt;p&gt;Substantially increased competition, longer timelines, roles that will never be filled&lt;sup id="fnref:9"&gt;&lt;a href="#fn:9" class="footnote-ref" role="doc-noteref"&gt;9&lt;/a&gt;&lt;/sup&gt;, potential ageism&lt;sup id="fnref:10"&gt;&lt;a href="#fn:10" class="footnote-ref" role="doc-noteref"&gt;10&lt;/a&gt;&lt;/sup&gt;, AI-based screening&lt;sup id="fnref:11"&gt;&lt;a href="#fn:11" class="footnote-ref" role="doc-noteref"&gt;11&lt;/a&gt;&lt;/sup&gt;, longer and more complex interview processes - all in all, the experience of finding new roles in tech has become far worse in recent years.&lt;/p&gt;&lt;h3 id="tax-changes"&gt;Tax Changes&lt;/h3&gt;&lt;p&gt;In the U.S., there was a major change to tax law that impacted how research and development expenses are treated in federal income taxes. Critically, this massively changed how the costs of software development are handled. As part of the &lt;a href="https://en.wikipedia.org/wiki/Tax_Cuts_and_Jobs_Act"&gt;Tax Cuts and Jobs Act of 2017&lt;/a&gt;, signed by Trump in December 2017, and taking effect on January 1, 2022, updated how capitalization &amp;amp; amortization are calculated.&lt;/p&gt;&lt;p&gt;To simplify the critical part of this change, since 1954 R&amp;amp;D expenses (such as building software) could be fully expensed in the year the costs were incurred. After this change, these costs were broken up over 5 years for costs in the U.S., or over 15 years for foreign costs. This resulted in delaying the write-off of tech expenses, and increasing the tax burden for companies.&lt;/p&gt;&lt;p&gt;By increasing the tax burden on companies, it gives them another reason to reduce hiring and limit staff.&lt;/p&gt;&lt;p&gt;As of now, with the enactment of the OBBBA, this change has been partly repealed - at least for costs incurred in the U.S. This includes limited ability for certain firms to implement this change retroactively.&lt;/p&gt;&lt;p&gt;However, the damage is done.&lt;/p&gt;&lt;h3 id="generative-ai--job-losses"&gt;Generative AI &amp;amp; Job Losses&lt;/h3&gt;&lt;p&gt;I’ve &lt;a href="https://adamcaudill.com/2025/01/30/millions-of-jobs/"&gt;written before&lt;/a&gt; about job losses from AI, analysing the likely impact over the years. Across the U.S., there were nearly 1.2M jobs cut, with 153,536 in the tech industry (17% more than 2024)&lt;sup id="fnref:12"&gt;&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref"&gt;12&lt;/a&gt;&lt;/sup&gt;. There are &lt;a href="https://www.cnbc.com/2025/12/21/ai-job-cuts-amazon-microsoft-and-more-cite-ai-for-2025-layoffs.html"&gt;estimates&lt;/a&gt; that as many as 55,000 layoffs are directly connected to AI, this is a complicated topic and the data isn’t clear.&lt;/p&gt;&lt;p&gt;One major challenge is that, from observing the market, there are likely multiple drivers for AI-related layoffs:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Automation replacing jobs.&lt;/li&gt;&lt;li&gt;Reduction in staff due to improved efficiency (real or perceived).&lt;/li&gt;&lt;li&gt;Cost-cutting due to AI investments.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There is little doubt that AI is resulting in job losses, and reduced hiring&lt;sup id="fnref:13"&gt;&lt;a href="#fn:13" class="footnote-ref" role="doc-noteref"&gt;13&lt;/a&gt;&lt;/sup&gt;, and it’s the reduced hiring that’s likely having the largest impact. Given the negative media coverage that are associated with layoffs, partial or complete hiring freezes are able to largely stay under the media radar, and avoid unwanted attention, while allowing natural attrition to reduce headcount.&lt;/p&gt;&lt;p&gt;Given survey responses, it’s likely a safe assumption that the number of jobs lost to AI is predominantly in the form of roles that would have been opened otherwise.&lt;/p&gt;&lt;h2 id="looking-ahead"&gt;Looking Ahead&lt;/h2&gt;&lt;p&gt;The more time one spends looking at employment data, the more weakness that is seen. From the increasing number of people that have left the workforce, the reduced number of jobs being created (down 35% from last year&lt;sup id="fnref:14"&gt;&lt;a href="#fn:14" class="footnote-ref" role="doc-noteref"&gt;14&lt;/a&gt;&lt;/sup&gt;), the increasing timelines for those seeking employment to find a full-time role - it all points to a weakening economy. Furthermore, AI is leading to layoffs and eliminating jobs before they are opened.&lt;/p&gt;&lt;p&gt;I try to end my analysis on complex topics like this with useful advice, positive notes, or otherwise focusing on the silver lining that exists in most situations. In this case, I struggle to find something in this data that leads to optimism.&lt;/p&gt;&lt;p&gt;Good luck out there folks. There’s nothing else I can say.&lt;/p&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:1"&gt;&lt;p&gt;While some will argue the accuracy of officially published figures from the U.S. Government, this is the data that’s available and the data that most people will see when looking at media reports. ADP has &lt;a href="https://adpemploymentreport.com/"&gt;released data&lt;/a&gt; that indicates greater job losses than is being reported by official numbers, some in the U.S. Government believe that the official numbers are &lt;a href="https://www.cnbc.com/2025/12/11/case-for-more-fed-rate-cuts-could-rest-on-systemic-overcount-of-jobs.html"&gt;overcounting new jobs&lt;/a&gt;. I will not be arguing the accuracy of the data here, only that it doesn’t present a realistic image of the state of the tech industry or the experience of those that work in the industry.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:2"&gt;&lt;p&gt;This is roughly defined as those that 16 or older, not working, and has actively looked within the last 4 weeks. BLS &lt;a href="https://www.bls.gov/cps/definitions.htm"&gt;publishes detailed definitions&lt;/a&gt;. These are very much worth reviewing to better understand how they view and count employment and unemployment.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:3"&gt;&lt;p&gt;Based on OEWS data published by BLS, in the U.S., approximately 4% of roles (6.95M of 154M roles) are directly tech-related roles. This is almost certainly undercounting, as it relies on specific job codes, which won’t account for those that are tech-adjacent, being entirely dependent on the health of the tech industry, but may not be coded as such. This data is from May 2024, which is the most recent available. Given the lack of recent data, and the limitations of how often the data is updated, it’s not useful to understand trends over shorter timelines.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:4"&gt;&lt;p&gt;The company is a FinTech startup that you’ve likely encountered, though its name may not be familiar to those outside of the FinTech space. As such, roles at this company are unlikely to draw the level of attention that would be seen from companies such as Google, Meta, Amazon, etc.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:5"&gt;&lt;p&gt;The top-level category that includes most tech roles, “computer &amp;amp; mathematical occupations” are seeing 65 applications per opening. Other sources place this figure as high as 83. It should be noted that this does include other job types. iCIMS Insights, December 2025. &lt;a href="https://77600727.flowpaper.com/2025InsightsDecFINAL/docs/2025_Insights_Dec_FINAL.pdf"&gt;PDF&lt;/a&gt;&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:6"&gt;&lt;p&gt;iCIMS Insights, March 2025, Page 5. &lt;a href="https://www.icims.com/wp-content/uploads/2025/03/2025_Insights_March_FINAL.pdf"&gt;PDF&lt;/a&gt;&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:7"&gt;&lt;p&gt;iCIMS Insights, March 2025, Page 7. &lt;a href="https://www.icims.com/wp-content/uploads/2025/03/2025_Insights_March_FINAL.pdf"&gt;PDF&lt;/a&gt;&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:8"&gt;&lt;p&gt;BLS data &lt;a href="https://www.bls.gov/charts/employment-situation/unemployed-27-weeks-or-longer-as-a-percent-of-total-unemployed.htm"&gt;indicates&lt;/a&gt; that across all those currently counted as unemployed, 24.3% have been unemployed for 27 weeks or more. As noted elsewhere, this is based on the 4.6% that are counted as unemployed, not including the 37.5% of the population that they no longer count as part of the labor pool.&amp;#160;&lt;a href="#fnref:8" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:9"&gt;&lt;p&gt;Greenhouse &lt;a href="https://www.greenhouse.com/blog/greenhouse-2024-state-of-job-hunting-report"&gt;reported&lt;/a&gt; that 18%-22% jobs are ghost jobs that won’t be filled. Another &lt;a href="https://www.livecareer.com/resources/careers/ghost-jobs"&gt;report from LiveCareer&lt;/a&gt; lists 45% of HR professionals admit to regularly posting ads for ghost jobs. Some of these ghost jobs are being &lt;a href="https://www.seoworks.co.uk/ghost-jobs-and-branded-search/"&gt;posted for SEO purposes&lt;/a&gt;.&amp;#160;&lt;a href="#fnref:9" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:10"&gt;&lt;p&gt;Those that are 55+ make up only 5% of applicants, 45-54 are 7%, and 35-44 are 10%. This supports concerned raised herein and elsewhere that an increasing number of people with substantial experience are leaving the field. I will leave further exploration of this issue as an exercise for the reader. iCIMS Insights, March 2025, Page 8. &lt;a href="https://www.icims.com/wp-content/uploads/2025/03/2025_Insights_March_FINAL.pdf"&gt;PDF&lt;/a&gt;&amp;#160;&lt;a href="#fnref:10" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:11"&gt;&lt;p&gt;This &lt;a href="https://77600727.flowpaper.com/2025InsightsAugust12Aug/docs/2025_Insights_August_12Aug.pdf"&gt;report&lt;/a&gt; from iCIMS is worth reviewing to see how AI is being used, and how companies and applicants perceive it, is worth reading. Determining the wisdom, value, and impact of this trend is left as an exercise for the reader.&amp;#160;&lt;a href="#fnref:11" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:12"&gt;&lt;p&gt;Challenger, Gray &amp;amp; Christmas, &lt;a href="https://www.challengergray.com/blog/challenger-report-71321-job-cuts-on-restructurings-closings-economy/"&gt;Challenger Report: 71,321 Job Cuts on Restructurings, Closings, Economy&lt;/a&gt;, Dec. 2025.&amp;#160;&lt;a href="#fnref:12" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:13"&gt;&lt;p&gt;Per a &lt;a href="https://libertystreeteconomics.newyorkfed.org/2025/09/are-businesses-scaling-back-hiring-due-to-ai/"&gt;survey&lt;/a&gt; by the Federal Reserve Bank of New York, 23% of respondents indicated that they planned on reducing hiring due to AI.&amp;#160;&lt;a href="#fnref:13" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:14"&gt;&lt;p&gt;&lt;em&gt;“Through November, U.S. employers have announced 497,151 planned hires, down 35% from the 761,954 announced at this point in 2024.”&lt;/em&gt; &lt;a href="https://www.challengergray.com/blog/challenger-report-71321-job-cuts-on-restructurings-closings-economy/"&gt;Challenger Report: 71,321 Job Cuts on Restructurings, Closings, Economy&lt;/a&gt;, Dec. 2025.&amp;#160;&lt;a href="#fnref:14" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description></item><item><title>Welcoming Kessler</title><link>https://adamcaudill.com/writing/2025/12/21/welcoming-kessler/</link><pubDate>Sun, 21 Dec 2025 04:34:13 -0500</pubDate><guid>https://adamcaudill.com/writing/2025/12/21/welcoming-kessler/</guid><description>&lt;p&gt;&lt;em&gt;This is a short story about automation, brittle systems, and the quiet ways complex technology fails.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Collision Warning! Collision Warning!&amp;rdquo; The alarms blared in the control center for Perihelion Dynamics, a startup that had deployed a constellation of low Earth orbit satellites. One of a growing number of such constellations that have formed in recent years. &amp;ldquo;Flight Director! 20158 is going the wrong way&amp;rdquo; the GNC Lead yelled, &amp;ldquo;it&amp;rsquo;s going straight towards an Amazon satellite. 20158 triggered an avoidance burn, but solution is inverted.&amp;rdquo;&lt;/p&gt;&lt;p&gt;When the typically quiet Guidance, Navigation, and Control lead yelled, everyone paid attention. A reserved woman with dual doctorates, in physics and math; a calm and cool professional, unless something was very, very wrong.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Give me 20158 on the main display&amp;rdquo; the Flight Director barked. A theatre-sized screen switched from showing all 10,000 satellites in the Perihelion Dynamics mega-constellation, to a close-up view of a satellite. A satellite moving perilously close to a collision.&lt;/p&gt;&lt;p&gt;&amp;ldquo;GNC, any idea what&amp;rsquo;s going on here?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, no. Avoidance burn auto-triggered at 20km distance. Burn completed, but in opposite orientation. It&amp;rsquo;s like the delta-v is inverted. Burns are exactly opposite of what they should be. Continuing to close on Amazon Leo 58739, currently at 2.2km. Collision projected in 55 seconds.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;This is Flight Director, is the Space Traffic Liaison on the net?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, STL here. Reaching out to the Amazon Leo C&amp;amp;C. Requesting they perform emergency burn.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;GNC, switch to manual and execute a manual burn.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, activating emergency override and switching to manual navigation. Starting 5 second burn, full emergency thrust. Burn started.&amp;rdquo; She spins a ring on her finger as she watches the screen. Waiting to see the thrusters fire. &amp;ldquo;No. No. It started the wrong thruster. Closing speed increasing. Collision imminent. Distance 0.4km.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;STL, any update from the Leo C&amp;amp;C?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, Leo C&amp;amp;C has issued burn command. Leo 58739 should begin moving away.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;GNC, confirm if we are clearing.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, Leo 58739 course change detected. Collision probably dropping. Collision avoidance system reset auto-triggered. Standby. No. No. Collision avoidance burn auto-triggered due to new course. Solution is again inverted. Collision probably climbing. Distance 100 meters and closing.&amp;rdquo; She waited and watched, fidgeting with the ring on her index finger. The seconds dragged by. &amp;ldquo;Telemetry lost.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;This is Flight Director, is the Mission Director on the net?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, MD here.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;MD, we have an incident. Satellite collision.&amp;rdquo;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;It&amp;rsquo;s been 20 years since the first mega-constellation was launched in low Earth orbit. Constellations with 5,000 or more satellites have become common. Three are based in the United States, two in China, and two in Europe. Well over 100,000 of these LEO satellites circle the Earth, providing communications and compute services.&lt;/p&gt;&lt;p&gt;With orbit becoming so congested, these satellites all used sophisticated collision avoidance systems, with each constellation rarely going more than a few minutes without at least one thruster burn to avoid hitting another satellite or debris. These are generally handled automatically and without any human intervention.&lt;/p&gt;&lt;p&gt;Experiments in large-scale compute in orbit have resulted in these constellations growing both in terms of number of satellites, and in the size of the satellites. High-end compute satellites are now common in polar orbits, with truly massive solar arrays - sometimes exceeding 25 square kilometres. These massive satellites have made managing traffic in orbit far more complex.&lt;/p&gt;&lt;p&gt;Resistance to these deployments, for everything from destroying the ability to use ground-based telescopes, to the millions of pounds of metals being vaporised in the upper atmosphere, is growing louder and louder. Rockets found with holes from sniper rifles have long since stopped being a surprise.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&amp;ldquo;FD, this is GNC. Radar is showing approximately 900 new pieces of debris from the location of 20158. Collision avoidance updates are propagating. We are seeing burns triggered on multiple satellites.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;GNC, acknowledged. Please confirm that burn solutions are correct. I don&amp;rsquo;t want to see a repeat of 20158.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, please standby. 20159, solution is inverted. 20160, solution is inverted. 20161, solution is inverted. 19476, solution is inverted. 19584, solution is inverted. The satellites are moving towards the debris field. I don&amp;rsquo;t understand what&amp;rsquo;s happening, but all burns are inverted.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;GNC, say again. Satellites in the area are moving closer to the tracked debris?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, confirmed. Automated and manual navigation commands are resulting in inverted burn solutions.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;MD, this is FD, did you copy that?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, affirm. Declaring Sev1 incident. Initiate emergency procedures. I&amp;rsquo;m leaving the net to contact the Executive Duty Officer.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;MD, copy. All on the net: This is Flight Director. We have a Severity 1 incident. Emergency procedures are now in effect. Secure all external doors. External communications are restricted. Ground Systems Lead, Fleet Software Lead, Space Traffic Liaison, Licensing &amp;amp; Compliance Lead, Security Operations Lead are all to join and remain on net. GNC, please provide current status.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, current status. We have 5 satellites that are moving to a debris field. We have 1 satellite that is moving closer to a China Telecom satellite. We have 1 that is moving closer to tracked debris. All navigation commands result in inverted burn solutions. We do not have effective navigation control over the constellation. The situation is actively devolving. Currently showing 7 satellites with a greater than 90% chance of collision. Satellite 20159 is showing collision imminent.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;This is Flight Director, is the Fleet Software Lead on the net?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, this is FSL.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FSL, I need to know what&amp;rsquo;s going on with the navigation software. Now.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, Fleet Software team is reviewing logs and telemetry now, will advise when we have further information.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;FSL, can you give me a workaround to bypass whatever is inverting the burn solutions?&amp;rdquo; He knew that there was no real chance that the answer to this would be anything other than being told to wait, but all he could do at this point was ask. In this moment, there was nothing at all he could do.&lt;/p&gt;&lt;p&gt;&amp;ldquo;FD, negative at this time. We are not yet aware of why these commands aren&amp;rsquo;t being processed as intended. Will notify when we know more.&amp;rdquo;&lt;/p&gt;&lt;p&gt;The Flight Director walked over to a window in the back of the control center, and looked up at the evening sky. Seemingly peaceful, seemingly calm. So many times he had looked up at the sight, and dreamed of what it would be like to be there. Now, that thought sent a shiver down his spine. It looked calm to his eyes, but he knew that things were becoming anything but calm.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Deep in the navigation code that Perihelion Dynamics had built, a tiny change had been slipped in. A change easily overlooked. A change so vital, so important, that it would change everything.&lt;/p&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;-let bp = calculate_burn_params(&amp;amp;sat_state, desired_delta_v, thrust_limit);+let bp = calculate_burn_params(&amp;amp;sat_state, -desired_delta_v, thrust_limit);&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A single character was added, a minus, reversing the intended thrust. When this new code was called, it would trigger a burn going in the opposite direction. This small change doomed the satellites.&lt;/p&gt;&lt;p&gt;Discovering this change would take far more time than they actually had. Because of how the change was introduced, it will take weeks to discover this change. By then, it will be far too late.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;The Fleet Software Lead and her team, a group of 15 people, were staring at logs and telemetry that made no sense. The navigation commands were clear, yet the wrong thrusters were being used. They fed the same data into their simulators and test suites - in each case the proper thrusters were used. They reviewed the code line by line, yet the code they had was correct.&lt;/p&gt;&lt;p&gt;Hour after hour, they searched, tested, searched again, and tested more. Nothing made sense. Everything should be working. Everything was working before. They reviewed every change made in their code, and none would cause this.&lt;/p&gt;&lt;p&gt;Little did they know, the code they saw wasn&amp;rsquo;t the code that was running on the satellites.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&amp;ldquo;Attention on the net. This is the Executive Duty Officer. We&amp;rsquo;re six hours into a Sev1, can anyone tell me anything useful about what&amp;rsquo;s going on? I&amp;rsquo;ve been on the phone with NASA, US Space Force, ESA, JAXA, CNSA, three Senators, two MPs, 5 CEOs, and every one of them has done nothing but yell. Please tell me we know what&amp;rsquo;s happening.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;EDO, this is the Mission Director. We&amp;rsquo;ve lost 17 of our satellites, and 9 belonging to others have been lost in the process. Due to the new collisions, several thousand new pieces of debris are being tracked, though we don&amp;rsquo;t know the exact numbers. One of our polar orbit compute satellites was just lost. That unit had a 9 square kilometre solar array. The debris field is expansive. Collateral damage is steadily increasing. Other satellites aren&amp;rsquo;t able to move fast enough to avoid the amount of debris being generated. Our satellite navigation software doesn&amp;rsquo;t support sending manual thruster commands, only directional commands. We are having some luck by sending manual commands that are already reserved, though with the expanding debris clouds, this has limited effectiveness.&amp;rdquo;&lt;/p&gt;&lt;p&gt;The Mission Director&amp;rsquo;s words were followed by a muffled thud. The sound of the Executive Duty Officer&amp;rsquo;s headset flying across his office.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;In the weeks before the first satellite malfunctioned, a group of hactivists began targeting developers that worked for Perihelion Dynamics with carefully crafted phishing emails. Emails claiming to be from a recruiter for a competitor that was known to pay substantially more. One developer downloaded an attachment, part of a skill assessment, on his work laptop. They were in.&lt;/p&gt;&lt;p&gt;The attackers carefully explored and documented Perihelion Dynamics&amp;rsquo; systems and software. They studied the code. They analysed the development infrastructure. Then they turned their attention to their build servers - the servers that took the code and prepared it for deployment on the satellites. This is where they would strike.&lt;/p&gt;&lt;p&gt;With a small change to the build server, they added an additional step to the process: apply the 1-line change to a code file to reverse the thrust calculation. Once this patch was applied, the code would be built as normal, and automatically deployed to the satellites. The developers would never see the modified version of the code.&lt;/p&gt;&lt;p&gt;A silent attack that would be very difficult to notice. Only when the binary sent to the satellites was examined would the change become visible.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;The statement &amp;ldquo;telemetry lost; debris detected&amp;rdquo; was a common refrain not only in the Perihelion Dynamics control center, but in the control centres of satellite operators around the world. It started with 2 satellites turning into hundreds of pieces of debris, and then more satellites turned into even more debris. Debris traveling at more than 17,000 miles per hour.&lt;/p&gt;&lt;p&gt;Over the next 24 hours, the situation turned into a catastrophic nightmare. Dozens of satellites lost turned into hundreds, then hundreds turned into thousands. A thick layer of debris was building up around the Earth; from 500 to 700 kilometres above the surface, it was hard for anything to survive.&lt;/p&gt;&lt;p&gt;Private space stations were abandoned - at least two were destroyed. In the chaos, it was hard to be certain of what was still intact. Almost everything was damaged. What started as hundreds of pieces of new debris turned into thousands, then into millions.&lt;/p&gt;&lt;p&gt;The large compute satellites were all but gone. Given their large size and massive solar arrays, it was simply impossible to dodge the ever growing debris field. With thousands of solar panels that covered several square kilometres, they were quickly added to the debris cloud.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;The control center was a hive of activity. The teams were exhausted, stumped, spent, but still fighting. The Guidance, Navigation, and Control lead had finally developed a feel for sending reversed navigation commands to minimise collisions. It didn&amp;rsquo;t always work, but she was saving what she could.&lt;/p&gt;&lt;p&gt;The radar onboard the satellites was consistently overwhelmed by the amount of debris. The software wasn&amp;rsquo;t able to effectively track it all. The GNC Lead and her team had to manually sort out thruster burns to find paths that may still be open. The software had given up on finding safe paths among the masses of debris.&lt;/p&gt;&lt;p&gt;The GNC Lead had now been working for 25 hours, only stepping away for a few minutes at a time.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Attention on the net. This is the Executive Duty Officer. By order of the US Government and the European Commission, we are to manually de-orbit all remaining satellites. It is understood that given the level of debris, we may not be able to fully de-orbit, though the intent is to push satellites and debris to the lowest possible orbit. A similar order has been issued to other operators. All possible satellites that can be removed from orbit, are to be removed.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Everyone listening sat in a stunned silence. They were giving up. After 24 hours of constant work, after thousands of manual burns to dodge debris, after fighting their own software constantly to save what they could, this was the end. The end for them, and for everyone else.&lt;/p&gt;&lt;p&gt;This was just the start of government action. Flights were grounded due to fears of debris reaching the ground. All space launch licenses were cancelled. Telescopes on the ground were darkened - there was too much debris to perform any useful science. For years, saying &amp;ldquo;because we can&amp;rdquo; was justification. In a day, the bill for that recklessness had come due.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;After nearly 48 hours, the doors were opened at the Perihelion Dynamics control center. The Flight Director and GNC Lead sat on a bench and watched the night sky. There seemed to be twice as many stars as there used to be. So many twinkling lights. A sky more full than they had ever seen.&lt;/p&gt;&lt;p&gt;&amp;ldquo;The first debris will start coming down soon,&amp;rdquo; the Flight Director said.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Yes. And it won&amp;rsquo;t stop for 10 years. Once it starts, we&amp;rsquo;ll see debris burning up every night. It&amp;rsquo;ll be a constant fireworks show for at least 5 years.&amp;rdquo; The GNC Lead responded sadly.&lt;/p&gt;&lt;p&gt;&amp;ldquo;I wonder what&amp;rsquo;ll happen to the moon base&amp;rdquo; he asked.&lt;/p&gt;&lt;p&gt;&amp;ldquo;They&amp;rsquo;ll be alone for the next 15 years.&amp;rdquo;&lt;/p&gt;</description></item><item><title>The Waterfall</title><link>https://adamcaudill.com/writing/2025/12/18/the-waterfall/</link><pubDate>Thu, 18 Dec 2025 04:34:13 -0500</pubDate><guid>https://adamcaudill.com/writing/2025/12/18/the-waterfall/</guid><description>&lt;p&gt;&lt;em&gt;This is not a short story in the usual sense. There is no plot here, only a place, and what remains in it. An exploration of memory. And the weight of memory.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The water ran through his fingers, cold and crisp. Clean &amp;amp; refreshing. A chill most pleasant. The stream was only a few inches deep, though it ran strong this time of year. A silvery glimmer on its surface in the morning light. A quick splash of water to his face, and he was ready to face the day. In the distance, her voice echoed.&lt;/p&gt;&lt;p&gt;The wind was brisk this morning, as it often was in the spring. The snow-peaked mountain stood high above, an ancient pinnacle that had endured years beyond count. The mountains and hills were old here, among the oldest in the world. It had seen ice age after ice age, it had seen the continents change around it, it had seen lives start and lives end. Steeped in memory, nothing seemed to truly fade here.&lt;/p&gt;&lt;p&gt;He looked around, and felt almost at home. He could walk these trails without looking. Every stone outcrop, every bend in the stream, every turn in the paths around him, he knew this place. His life had changed among these old stones. The best moments of his life were between these trees. Once upon a time, this was his favourite place in the world.&lt;/p&gt;&lt;p&gt;A deep breath, and then back to the tent. He lit a small fire, it was time for breakfast.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;He fried bacon in the small cast iron skillet, extra crispy, just the way she liked it. She always gave him the most beautiful smile if he got the bacon just right. The smell of smoke, oak and pine, filled the air, as the distinct scent of the bacon wafted out, filling the small valley with the most delicious smells.&lt;/p&gt;&lt;p&gt;Bacon in the woods is normally a rare treat, but this particular heaven is only a few miles from a small country store, ensuring a steady stream of supplies and fresh food. This is one of the reasons he had brought her here so many times.&lt;/p&gt;&lt;p&gt;The original plan was to only stay here for one night, though now that he was here, now that he was immersed in the memories that this place would never let go of, he couldn&amp;rsquo;t leave just yet. There is more to see. More to remember. This place is too important to leave so soon. Besides, he&amp;rsquo;s not been to the waterfall yet.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Forty feet isn&amp;rsquo;t especially tall for a waterfall, though for a waterfall fed by a mountain stream, it&amp;rsquo;s perfect. Twenty feet wide, the water tumbled down the rocks, bouncing from stone to stone, burbling and bubbling as it splashed down. The stones, worn smooth over countless generations, were covered in moss, thick and green. Set in a narrow valley, the waterfall was as idyllic as any place on earth.&lt;/p&gt;&lt;p&gt;The water landed in a shallow &amp;amp; wide pool, dotted with ancient stones, perfect for sitting. Stones that have, from their own comfortable seat, seen stars be born, live, and die. He fell in love with her at the foot of this waterfall; sitting together among these stones, chatting and laughing, she went from his friend, to his world. This is the place that everything changed.&lt;/p&gt;&lt;p&gt;He picked a large stone in the midst of the shallow pool, only inches deep, and sat, and listened. The water sang its song, peaceful, enduring, and unending.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Lunch was simple, sandwiches, tuna salad. The fire had long since gone out, and there was no need to build a new one - all that was left was a faint smell of smoke lingering. As he ate, he sat back and took a deep breath; the smoke, the tuna, and a hint of the sweet floral fragrance of her perfume. He gave her that perfume, a gift, not because of a birthday, holiday, or special event, but just because - because he wanted to see her smile.&lt;/p&gt;&lt;p&gt;He cleaned the campsite, gathered more firewood, straightened up the small tent. He pumped up the air mattress - she hated sleeping on the ground. He made sure that the tent was ready for the evening, and the night ahead.&lt;/p&gt;&lt;p&gt;He sat and read, a book they both loved. From the corner of his eye, he saw her getting water from the creek. He listened to the birds. To the water. To the wind in the leaves. Eventually, he was lulled into a gentle sleep, book still in his hand. Hours passed.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;The evening had set in, the sun had already slipped below the horizon. There was no moon to be seen. He grabbed the kindling that he collected earlier, twigs, leaves, pinecones, and a collection of papers that he didn&amp;rsquo;t need anymore. There was a chill in the air and the evening quickly became darker and darker.&lt;/p&gt;&lt;p&gt;With everything in place, he slowly started the fire. Feeding papers into the flames one by one to build the fire. He slowly looked at each piece of paper in his hands, studying them closely, before hesitantly feeding each to the flames. Handwritten notes. Photos, each with the same smiling face. Paperwork for a house. A marriage license. The flames grew as each piece of paper was consumed. Wisps of smoke filled the narrow valley.&lt;/p&gt;&lt;p&gt;Once the fire was ready, the cast iron skillet was back on the fire. Liver and onions. The smell hung in the air. This was her favourite meal. A dish he didn&amp;rsquo;t care for, but he would eat it for her. He loved cooking for her, though this was the first time he made this dish, and likely the last.&lt;/p&gt;&lt;p&gt;He sat, alone, watching the fire burn. Surrounded by the trees that served as witness to the start of their life together. Surrounded by the stones that wouldn&amp;rsquo;t let him forget. Surrounded by the memories of a life that no longer exists.&lt;/p&gt;&lt;p&gt;He scooted closer to the fire as the night grew deeper, the chill had reached his very soul, but there was no warmth from the fire. There was no warmth left in the world.&lt;/p&gt;</description></item><item><title>Good Faith, Moral Duty, and Selfishness</title><link>https://adamcaudill.com/2025/12/10/good-faith-moral-duty-and-selfishness/</link><pubDate>Wed, 10 Dec 2025 03:23:18 -0500</pubDate><guid>https://adamcaudill.com/2025/12/10/good-faith-moral-duty-and-selfishness/</guid><description>&lt;p&gt;What do we owe to each other? This is a classic question of moral philosophy, and a critical question that defines how society itself functions. It’s also a key question to understand what role each of us plays to make society successful.&lt;/p&gt;&lt;p&gt;These words were started as society was entering a seismic shift, the COVID-19 pandemic had started, people were dying, fear ran deep, and the disease impacted some far more than others. Some reactions to this crisis were based on what was good for society, others came down to the interests and desires of the individual. The question of what we owe to each other had rarely been so imperative.&lt;/p&gt;&lt;p&gt;I am finishing&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; this as society enters another seismic shift. Fear again runs deep, there will be deaths, people are divided to an extent not seen in generations, and, as like before, some see little or no impact while others are disproportionately affected. The question of what we owe each other has not been more pertinent during my lifetime than it is now.&lt;/p&gt;&lt;p&gt;Before we go on though, I’d like to make one thing clear: this essay is intended to spur thought &amp;amp; consideration, and to encourage readers to research this topic more. There is no possible way that this essay can fully cover the topics discussed here. There are places where a single sentence summarises a specialised area of research that a number of people have dedicated their careers to.&lt;/p&gt;&lt;p&gt;To fully cover these topics in depth, it would be to synthesise the work of hundreds of researchers and lifetimes of effort. As such, this is presented not as a definitive statement on these topics, but an introduction to spur further reading.&lt;/p&gt;&lt;h2 id="why-are-we-like-this"&gt;Why are we like this?&lt;/h2&gt;&lt;p&gt;To discuss this, it’s useful to have an understanding of how and why we got here. If social psychology&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; isn’t your cup of tea, feel free to &lt;a href="#what-we-owe-each-other"&gt;skip ahead&lt;/a&gt;.&lt;/p&gt;&lt;h3 id="selfishness"&gt;Selfishness&lt;/h3&gt;&lt;p&gt;Humans are, arguably, born selfish and self-serving, from &lt;a href="https://academic.oup.com/emph/article/2014/1/32/1843905"&gt;crying strategies to prevent competition for resources&lt;/a&gt; to the “mine” stage toddlers go through claiming ownership over everything within reach. Within the first years of life, humans show themselves to often be uninterested in the needs or feelings of others - it’s part of our DNA. While each child develops differently, and shows care for others at different points &amp;amp; frequency, this selfishness is something that &lt;em&gt;should&lt;/em&gt; be only temporary.&lt;/p&gt;&lt;p&gt;We grow, we realise that others have feelings, we learn to share our toys, we develop empathy &amp;amp; understanding. While we may have an innate predisposition to this behaviour (we do come from a very long line of social creatures), it’s something that must be fostered to develop properly.&lt;/p&gt;&lt;p&gt;As time goes on, our sense of self develops more, and we perceive ourselves not just as an isolated individual, but associate with others around us&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;. We transition from “I” to “we” - we see ourselves as part of something larger, and we learn what our role is, we learn where we fit in.&lt;/p&gt;&lt;p&gt;Why does this matter?&lt;/p&gt;&lt;p&gt;This growth&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt; is necessary for society to function, and the evolutionary steps to achieve this predate the existence of our species by millions of years. In a world without empathy, understanding, or social connections, it would be a world of violence, hate, no cooperation (such as via governments, businesses, or even farms &amp;amp; small communities). There would be no art, no science, no commerce, nothing but a constant and independent fight for survival.&lt;/p&gt;&lt;p&gt;Society exists and functions solely because we have evolved to think of not only ourselves, but others.&lt;/p&gt;&lt;p&gt;Due to some combination of environment &amp;amp; other external influences, not everyone manages this growth. Their worldview progresses little beyond themselves. Once a person learns that there’s a world beyond their own wants and desires, there’s still a bigger challenge to come.&lt;/p&gt;&lt;h3 id="us-versus-them"&gt;Us versus Them&lt;/h3&gt;&lt;p&gt;People perceive themselves as belonging to a group&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt; (and any number of subgroups&lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref"&gt;6&lt;/a&gt;&lt;/sup&gt;), and see everyone else as part of an out-group. Thanks to an interesting psychological effect, people see those in the out-group as more different from themselves than they are, just as they those that are part of the in-group as more similar to themselves than they are.&lt;/p&gt;&lt;p&gt;This perception is a source of &lt;a href="https://en.wikipedia.org/wiki/Out-group_homogeneity"&gt;out-group homogeneity&lt;/a&gt;, the belief that “they” are all the same, interchangeable, whoever “they” are. Conversely, it creates in-group heterogeneity, the view individuals who are part of the in-group are more distinct.&lt;/p&gt;&lt;p&gt;All of this compounds into something interesting, and deeply unfortunate. Our ability to understand people is impacted substantially by our primary group that we identify with. Our ability to see commonalities is driven by that group. Our ability to place ourselves in the shoes of another, to feel empathy, is dictated by that group.&lt;/p&gt;&lt;p&gt;The smaller and more homogeneous that primary in-group is, the harder it is to understand those in the out-group. This is a result of there being fewer points of reference to establish commonalities, fewer opportunities to see things from another point of view.&lt;/p&gt;&lt;h3 id="out-group-apathy--antagonism"&gt;Out-Group Apathy &amp;amp; Antagonism&lt;/h3&gt;&lt;p&gt;This in-group centric worldview leads to something far darker, &lt;a href="https://en.wikipedia.org/wiki/Moral_exclusion"&gt;moral exclusion&lt;/a&gt;. Members of a group can see their values, history, norms, and culture as superior to those in the out-group. This leads some to see themselves as superior, and treat those in the out-group as lesser - not deserving, not worthy.&lt;/p&gt;&lt;p&gt;This can range from disregarding others and not considering them at all, to outright dehumanising. This is form of belittling and demeaning groups is all too common, from false narratives to marginalising people and their value and contributions. Among those that see themselves as members of a small and limited in-group, they find little common ground, and consider much of the world as being in an out-group that is lesser than their own.&lt;/p&gt;&lt;p&gt;It is this in-group superiority that has contributed to many of the worst atrocities in human history.&lt;/p&gt;&lt;p&gt;By arguing that those in the out-group are of lesser import, they then descend to arguing that others are not deserving of the same rights they enjoy. When you combine these views, it leads people down the darkest of paths and into the depths of evil humans are capable of.&lt;/p&gt;&lt;p&gt;It can start slowly, with hurtful but otherwise small impacts, steadily growing more overt, more direct, more dangerous, and more destructive actions. We see this today in a variety of ways, and in far more overt ways than would be expected even a few years ago&lt;sup id="fnref:7"&gt;&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref"&gt;7&lt;/a&gt;&lt;/sup&gt;. There’s no reason to believe that this trend is slowing down, much the opposite.&lt;/p&gt;&lt;h3 id="large-vs-small-in-groups"&gt;Large vs. Small In-Groups&lt;/h3&gt;&lt;p&gt;The smaller and more homogeneous the in-group a person identifies with, the less opportunities a person has to build understanding and empathy with others. If a person’s self-selected in-group is based on highly specific filtering factors (e.g. a combination of nationality, ethnic background, religion, socio-economic status, gender), the more likely a person is to view large portions of the population as an out-group that they have negative perception of.&lt;/p&gt;&lt;p&gt;The broader and less filtered the in-group, the more opportunities for understanding, connection, and empathy. The ultimate - though likely rare - in-group is all humans&lt;sup id="fnref:8"&gt;&lt;a href="#fn:8" class="footnote-ref" role="doc-noteref"&gt;8&lt;/a&gt;&lt;/sup&gt;, without a true out-group.&lt;/p&gt;&lt;p&gt;For me, this belief in the importance of a broad in-group that extends beyond common filtering functions is rooted in a document that I &lt;a href="https://adamcaudill.com/2015/12/16/the-manifesto/"&gt;read many years ago&lt;/a&gt;, which included a vital line for me:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;We exist without skin color, without nationality, without religious bias&amp;hellip; &lt;em&gt;Loyd Blankenship, The Conscience of a Hacker&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;This line resonated with me in a way that few things did; it addressed the view that many of the things that separate of are, in the end, artificial constructs that have little truth. There are things that we have in common, there are things we don’t, but in the ways that matter, we’re all alike.&lt;/p&gt;&lt;p&gt;We’re all people with emotions, hopes, fears, dreams, nightmares. Everything else are those things that make us interesting, give us different perspectives, new ideas, and add to the richness of human interaction.&lt;/p&gt;&lt;h2 id="what-we-owe-each-other"&gt;What We Owe Each Other&lt;/h2&gt;&lt;p&gt;This is a question that is responsible for numerous books being written, countless hours of lectures in philosophy classes, and millennia of debate. I will not attempt to summarise this here, but rather address this in more direct terms.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;it’s about making choices that benefit not just yourself but also the people around you, fostering a society where everyone can thrive&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;When the COVID-19 vaccine was made available, I booked my appointment the first day I could. I didn’t do this because I didn’t want to get sick, it was in despite of the fact I knew I would. My body doesn’t react well to many vaccinations; the COVID-19 vaccine had me in bed for the next 4 days and it was well over a week before I was back to normal. I knew what I was signing up for and yet I did it, because I didn’t want to risk getting anyone else sick&lt;sup id="fnref:9"&gt;&lt;a href="#fn:9" class="footnote-ref" role="doc-noteref"&gt;9&lt;/a&gt;&lt;/sup&gt;. A inconvenience for me, for something that could be life or death for someone else. It’s what I owed them. It’s what we owed to each other.&lt;/p&gt;&lt;p&gt;When a friend came out to me as transgender, my response was simply to ask what if there was anything I could do to support them. Why? Because we all deserve respect, we all deserve support from those around us. It’s what I owed them.&lt;/p&gt;&lt;p&gt;When a neighbour was having a yard sale selling things that she obviously needed (such as her baby’s car seat), making it painfully clear that she was desperate for money, I picked out something unimportant for $1, then handed her a $100 bill and told her not to worry about the change. Why? She needed it more than I did. I’ve no idea what was going on in her life, but she needed help, and I could help. It’s what I owed her.&lt;/p&gt;&lt;p&gt;Paying for other people’s groceries when they don’t have enough money at the checkout. Because nobody should be hungry. Paying for other people’s medicine because nobody should go without healthcare. I did these things because it’s what I consider to be the least I could do, because this is the behaviour that we owe to each other. These things deserve no thanks, no credit, not even any acknowledgment. These things should be the minimum that any of us should do, if we are able.&lt;/p&gt;&lt;p&gt;We thrive &lt;em&gt;together&lt;/em&gt;, or we fall &lt;em&gt;together&lt;/em&gt;. That’s what it means to be part of a society. It means we help each other, we support each other, we respect each other. It’s what we owe to each other.&lt;/p&gt;&lt;h3 id="the-golden-rule"&gt;The Golden Rule&lt;/h3&gt;&lt;blockquote&gt;&lt;p&gt;If we do not stop to help each other, what will we become? &lt;em&gt;Jeff Atwood&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Most are familiar with the “golden rule” - &lt;em&gt;treat others are you wish to be treated&lt;/em&gt;. This is a foundational norm in a healthy society, the root of what’s good &amp;amp; right in the world. This presents the most basic check for right and wrong, one can simply ask themselves the question: how would I feel if the roles were reversed?&lt;/p&gt;&lt;p&gt;Those that fail to ask this most simple question will often act instead in the interest of themselves (directly, or for the perceived benefit of their in-group), and fail to comprehend the true impact of their actions. A simple lesson that most learn by kindergarten, yet so many fail to keep this lesson.&lt;/p&gt;&lt;p&gt;Countless words have been written in an attempt to answer the question, what do we owe each other, though in reality, there is a simple and concise answer: &lt;em&gt;treat others are you wish to be treated&lt;/em&gt;.&lt;/p&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:1"&gt;&lt;p&gt;This was drafted in February of 2025, based on a draft that began in 2020. Much has changed since the first words were written; fears have been realised, polarisation has intensified. This article isn’t intended as a political discussion, as I try to avoid overt politicisation here, but a reflection on the challenges that we face. This is a complex topic, and one that I have sat aside multiple times. I don’t believe that this is a political question, but a growing societal issue, and it’s important to consider the various roots of this problem.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:2"&gt;&lt;p&gt;While I have a deep interest in - and have spent substantial time studying - both psychology and philosophy, the key areas of focus of this article, please read this as a layperson’s exploration of a complex topic instead of an expert analysis.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:3"&gt;&lt;p&gt;This is a vast oversimplification, based on &lt;a href="https://en.wikipedia.org/wiki/Self-categorization_theory"&gt;self-categorization theory&lt;/a&gt;, presented in the simplest possible way for brevity.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:4"&gt;&lt;p&gt;To be clear on this, this is &lt;em&gt;not&lt;/em&gt; a reference to neurodivergent people. Nothing herein is intended in any way to criticise, demean, or otherwise belittle those with autism or are otherwise neurodivergent. If anything here is interpreted otherwise, then I apologise for the lack of clarity.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:5"&gt;&lt;p&gt;At the highest level, the group is humans with the out-group being anything living that isn’t human. In practice, the group is substantially more specific.&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:6"&gt;&lt;p&gt;The model presented here of a group and various subgroups, may be better thought of as one to many groups with highly divergent cardinality and substantial (but not necessarily complete) intersection between the low cardinality groups to the high cardinality groups. The group/subgroup model is used for simplicity and brevity.&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:7"&gt;&lt;p&gt;There are many examples of the type of destructive and exclusionary behaviour that is occurring in today’s environment, though I do not see either a need to repeat these, nor do I see a reason to elevate these harmful statements by recounting them as part of this essay. Hateful statements do not deserve such dignity.&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:8"&gt;&lt;p&gt;An in-group of everyone is, to me at least, the ideal. However, due to the realities of human experience and the environments that we are raised in, this self-selected in-group is likely less common than I would wish. I do believe though, that an aspirational in-group is not substantially different than the effective in-group, as it represents an intentional effort to understand those outside the effective in-group.&amp;#160;&lt;a href="#fnref:8" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:9"&gt;&lt;p&gt;One of the people I was worried about exposing to COVID-19 was my father, due to his existing health conditions. He would later be exposed COVID-19 while in a medical facility, passing away soon after the symptoms became apparent. Had I not been diligent in taking precautions, I could have been responsible for accelerating his passing. The decisions we make matter, even when we have to pay a price for them.&amp;#160;&lt;a href="#fnref:9" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description></item><item><title>Developer Tools &amp; Productivity</title><link>https://adamcaudill.com/2025/12/09/developer-tools-productivity/</link><pubDate>Tue, 09 Dec 2025 01:00:09 +0000</pubDate><guid>https://adamcaudill.com/2025/12/09/developer-tools-productivity/</guid><description>&lt;p&gt;Technology improves and advances ceaselessly, new tools are created and change how people work. Some are small and simple, making people somewhat more productive. Others revolutionise the way people work. These revolutionary tools may come along only once or twice in a generation, and when they do, they tend make people uncomfortable. They can make people question their role, their skills, their future, and their place in the industry.&lt;/p&gt;&lt;p&gt;I would like to take a few minutes to talk about a revolutionary change in how developers work. I kindly ask the reader to reserve judgement on this topic till the end of this article, to fully understand the intent.&lt;/p&gt;&lt;h2 id="shifting-paradigms"&gt;Shifting Paradigms&lt;/h2&gt;&lt;p&gt;Developer tools have historically been hard to use, complex, and required extensive and specialised knowledge to accomplish anything beyond a simple &amp;ldquo;Hello World&amp;rdquo; program. While there have always been efforts to make this better - new tools, new libraries, new frameworks - these made the work more efficient, made developers more productive, but there were still few that could do it well.&lt;/p&gt;&lt;p&gt;This difficulty worked as a moat, a gatekeeper, that kept many people out. Not because they couldn&amp;rsquo;t learn, but because they had limited time. Not because they weren&amp;rsquo;t motivated, but because they had a job that took up their time. Not because they were lazy, but because they would prefer to spend their time with their family.&lt;/p&gt;&lt;p&gt;For those that hadn&amp;rsquo;t had the opportunity to invest the time to learn, they were largely locked out.&lt;/p&gt;&lt;p&gt;There are some that see this as a good thing, as it keeps those that aren&amp;rsquo;t qualified, those that aren&amp;rsquo;t dedicated enough, those that haven&amp;rsquo;t paid their dues, it keeps them out of the field. It ensures that only some can build software.&lt;/p&gt;&lt;p&gt;More importantly, some argue, it keeps them from making messes that others will have to clean up. It keeps them from creating work or introducing bugs that others will have to fix later.&lt;/p&gt;&lt;p&gt;Not all people learn the same way, not all people have the same opportunities to explore and gain skills, not all people have the time to dig into things to the same level. Most importantly, to me at least, some people would just rather spend time with their family. If a tool can help level this field, and help bring more people in - I see it as a good thing.&lt;/p&gt;&lt;p&gt;This is an exclusionary view that I tend to disagree with, though I&amp;rsquo;ll talk more about it below.&lt;/p&gt;&lt;h2 id="productivity-matters"&gt;Productivity Matters&lt;/h2&gt;&lt;p&gt;When these revolutionary tools are released, it doesn&amp;rsquo;t only open the door for new developers to join the field, it changes how many current developers work. It allow people to do more in less time. It means it&amp;rsquo;s easier to complete tasks. It opens the door to going home on time and spending time with loved ones.&lt;/p&gt;&lt;p&gt;For my entire career, I&amp;rsquo;ve always had a focus on productivity: I care greatly about the quality of my work, and that of the work that my teams do, but I also have a life. I also have a family. This means that the more productive I am when I&amp;rsquo;m working, the more time I can spend actually having a life. While I do love what I do for a living, it’s not my only priority.&lt;/p&gt;&lt;p&gt;When I&amp;rsquo;ve managed developers, my goal was to enable them to do their best work, and get it done as efficiently as possible. If you want a happy team, you always make sure that they can actually enjoy their life. That they don&amp;rsquo;t feel a need to be working constantly.&lt;/p&gt;&lt;p&gt;If there&amp;rsquo;s a tool, framework, or library that makes me more efficient - without a loss in quality - you can bet I&amp;rsquo;ll use it, and I&amp;rsquo;ll make it available to my team (if they want it). I&amp;rsquo;ve devoted countless hours to building private libraries and frameworks to allow my teams to do more, better, faster. These are some of the accomplishments that I&amp;rsquo;m most proud of.&lt;/p&gt;&lt;h2 id="embracing-change"&gt;Embracing Change&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;ve had many debates over using new tools, and adopting technology that could reshape development. From dealing with fears about jobs being taken over by business analysts that have no background in development, to the worry of new bugs introduced by people that don&amp;rsquo;t have a traditional computer science background.&lt;/p&gt;&lt;p&gt;These conversations are always complex, always laced with fear &amp;amp; discomfort, and deep worries. Some don&amp;rsquo;t want things to change. They like the status quo. They like the gatekeeping. They like the feeling of superiority.&lt;/p&gt;&lt;p&gt;By now, you may be thinking that I&amp;rsquo;m speaking of a particular technology, and I am - but almost certainly not the one you&amp;rsquo;re thinking of. I&amp;rsquo;m speaking of Visual Studio&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; and the conversations I had while it was reshaping how developers work.&lt;/p&gt;&lt;p&gt;Visual Studio, with the ability to design a UI with a drag &amp;amp; drop interface, integrated debugging, IntelliSense, and a host of features that made it easy for people to build software. This new breed of IDE allowed new developers to enter the field without needing to memorise complex Windows API calls to create a window or add a button. It allowed people to instantly spot syntax errors and easily fix them. It allowed them to easily find and fix bugs.&lt;/p&gt;&lt;p&gt;The wave of visual IDEs changed development. It opened doors. It welcomed new developers and gave them new &amp;amp; gentler ways to learn and explore. It provided hands-on experience without the level of frustration that had existed. It allowed them to focus on getting things done. It allowed developers to work faster. It allowed them to focus more on what they cared about.&lt;/p&gt;&lt;p&gt;Yet, decades on, I still hear the refrain that &amp;ldquo;real developers only need vi.&amp;rdquo;&lt;/p&gt;&lt;p&gt;I&amp;rsquo;m not talking about those that use the tools they prefer - if you just love vi, good for you - but those that look down on those that use other tools&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;. Some believed, and still do, that if another&amp;rsquo;s priorities vary from their own, they are doing something wrong. Unless you were using C or C++, you were doing something wrong. If you didn’t opt for the most complex path to achieve something, you didn’t belong.&lt;/p&gt;&lt;p&gt;There are still those, decades on, that see using tools that make people more productive as polluting software development. There are still those that want the gatekeeping.&lt;/p&gt;&lt;p&gt;I am a firm believer that each person should use the tools that are the best for them, and allow them to focus their limited time on this planet on those things that actually matter to them.&lt;/p&gt;&lt;p&gt;I will leave applying this to other technologies, if and as appropriate, as an exercise for the reader&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:1"&gt;&lt;p&gt;This could also be Visual Delphi, Macromedia Dreamweaver, Microsoft FrontPage or any of a thousand tools released in the mid to late 1990s, which started a shift from pure text editors into integrated development environments and similar tools that allowed those without a traditional technology background/education to build things that they wouldn&amp;rsquo;t have been able to in the past.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:2"&gt;&lt;p&gt;[insert obligatory joke about people that use emacs on purpose]&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:3"&gt;&lt;p&gt;I apologise if this comes across as a rant, or if it doesn&amp;rsquo;t properly address your concerns about any particular technology. This post, in reality, isn&amp;rsquo;t about any technology, but about an exclusionary and self-superior mindset that I&amp;rsquo;ve seen repeatedly during my years in the technology industry. A mindset that I find deeply problematic. If you would like to argue that this is an oversimplification, I will grant that. All technologies have consequences, and have positive and negative impacts; a full debate on these consequences is beyond the scope of this post.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description></item><item><title>Man of the Sea</title><link>https://adamcaudill.com/writing/2025/12/04/man-of-the-sea/</link><pubDate>Thu, 04 Dec 2025 02:39:17 -0400</pubDate><guid>https://adamcaudill.com/writing/2025/12/04/man-of-the-sea/</guid><description>&lt;p&gt;The waters off Cape Ann were always treacherous during the winter, a frigid stretch of water off the coast of Massachusetts. Picturesque in the summer, deceptively dangerous in the winter. Those that tempted fate, that tempted the harsh mistress that is the sea, too often found their souls in her clutches. The winter of 1898 was particularly harsh, seas were fraught, and on one November night the sea would claim hundreds more.&lt;/p&gt;&lt;p&gt;It was November 27th and a vicious blizzard was blowing in from the south, a storm that would sink 150 ships and boats. A storm so powerful that it rerouted a river. It was this storm that sent the steamship &lt;em&gt;Portland&lt;/em&gt; to the bottom, and rewrote the reality of a man. In the fierceness of that storm, the ship rolled and slipped to the bottom with all souls.&lt;/p&gt;&lt;p&gt;The &lt;em&gt;Portland&lt;/em&gt; was a side-wheel paddle steamer headed out of Boston, only 9 years old, and with a sterling reputation for safety. When her - and her 193 passengers - met that gale, there was no escaping, no outrunning, no surviving. The sea would have her prize.&lt;/p&gt;&lt;p&gt;Only 51 of the bodies were given up, with the others forever belonging to the deep. Even the names of those the sea took are lost, as the only passenger list went down with the ship. Many were simply wiped out existence. Men, women, children - entire families. Gone. Entirely gone; no graves, no records, no memories.&lt;/p&gt;&lt;p&gt;Of the hundreds lost that night, and the countless lives that were changed, upended, or outright destroyed, other tales tell. This story does concern one particular woman - and her children - that were aboard the &lt;em&gt;Portland&lt;/em&gt;. But this isn&amp;rsquo;t their story either. This is the story of that woman&amp;rsquo;s husband, the father of those children, the person that put them on that particular ship.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Captain Clyde Nelson was more at home on the sea than on land. For over 20 years he travelled the waters of the Eastern Atlantic and Caribbean, working sailing ships and moving cargo. For the last five years he&amp;rsquo;d been the captain of the three-masted schooner, the &lt;em&gt;Charleston Trader&lt;/em&gt;, a 153-foot ship — a ship designed to quickly move large loads. Built in 1872, the ship had been worked hard and was worse for the wear, but was far from retirement - much like her captain.&lt;/p&gt;&lt;p&gt;Clyde was 15 when he signed up as a hand on a small ship hauling sugar cane from the Caribbean; the captain he worked for was kind but unyielding, he expected much of his crew and pushed them hard. Clyde thrived under the pressure. He loved the adventure, seeing the world, and most of all, he loved the freedom. His first love, without question, was the sea. Only years later would he find something that he loved more.&lt;/p&gt;&lt;p&gt;From that first trip to his final breath, he lived at sea, and came to shore for breaks and to see those he loved. Regardless of weather or season, his time on land was always brief — a few days here, a week there, and on rare occasion, a few weeks off for repairs. By every measure, the sea was his true home.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;It would be 5 years after his first voyage that during a brief break during Christmas that he met a woman, Margaret Kelly.&lt;/p&gt;&lt;p&gt;It was 1882, six years after Clyde&amp;rsquo;s first voyage, that he found himself on a two-week break for Christmas; snow was laid thick upon the ground in Portland, Maine and the mood was light and joyful. On a otherwise typical Sunday morning, Clyde was attending a service at First Parish Church, one of the largest and most important churches in the area.&lt;/p&gt;&lt;p&gt;It was during this service that he first saw Margaret Kelly, a 19-year old Irish immigrant with fiery red hair and an equally fiery personality. Their eyes met, and the sparks were so obvious that whispers were soon heard.&lt;/p&gt;&lt;p&gt;Margaret and Clyde spent every possible minute of his break together - or at least those that her parents would allow. Each break after this, he would immediately rush to her door. By mid-spring he had purchased a small &amp;amp; simple golden ring. On Christmas Eve of 1883, Margaret Kelly became Margaret Nelson.&lt;/p&gt;&lt;p&gt;Despite the frequent and lengthy time apart, they shared a close and loving marriage; Clyde had finally found that there was something — someone — that he loved more than the sea, and Margaret lived for Clyde, he was her world, and she was his.&lt;/p&gt;&lt;p&gt;It didn&amp;rsquo;t take long for their first child, a son, to be born; a daughter soon followed, and then another. Their family quickly grew, within 5 years, Clyde went from being alone to being part of a family of 5.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Becoming a captain had always been Clyde&amp;rsquo;s dream. From his first voyage when he was 15, his greatest goal was to take the helm of his own ship, to be the master of his fate on the seas he loved so much. On taking the command of the &lt;em&gt;Charleston Trader&lt;/em&gt;, Margaret threw a party to celebrate — all the family and friends attended and toasted the brave and accomplished sailor turned captain.&lt;/p&gt;&lt;p&gt;His father-in-law presented him with a particularly special gift: a new set of full-colour charts — a full set of beautiful charts — with grand blue seas, soft sepia lines, rich browns and greens for land, vibrant red beacons — bound in a custom rich-maroon leather case. A note had been tucked into the cover: &amp;ldquo;May these always guide you safely back to those that love you.&amp;rdquo; Margaret had selected the colour - maroon was her favourite, and she knew it would serve as a constant reminder that she was waiting for him.&lt;/p&gt;&lt;p&gt;Before departing on his first voyage, Margaret had a particularly special surprise for him: she had redecorated the captain&amp;rsquo;s cabin. She brought in new furniture, new bedding, new art. She worked to create a space for him that was reminiscent of the bedroom they shared, but uniquely suited to his tastes. She worked to ensure that he felt at home, no matter how far away he was.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;As the captain of a trading ship, breaks were rare; Clyde was often at sea for weeks or months at a time. Time with his family was limited but precious, and he sought opportunities to spend time with them when he could. The &lt;em&gt;Charleston Trader&lt;/em&gt; often made port in Boston to load new cargo; when she did, Clyde would arrange to have his family travel to Boston from Portland so they could have some time together.&lt;/p&gt;&lt;p&gt;Thanksgiving fell on November 24th, and the &lt;em&gt;Charleston Trader&lt;/em&gt; was due to arrive a week before that. To give him more time with his family, and give his crew the same opportunity, he opted to delay their departure to the 27th. This would allow all of the families to enjoy a quiet Thanksgiving - a holiday with family was a rare treat for sailors.&lt;/p&gt;&lt;p&gt;On the morning of the 27th, the weather was starting to turn. The skies turned ominous, and for a man of Clyde&amp;rsquo;s experience, he had no doubt that a storm was coming. He had purchased 4 tickets on the &lt;em&gt;PS Portland&lt;/em&gt;, a steamship with reputation for safety. The tickets were more expensive than others that ran the same route, but the ship was quite nice, the captain was well respected, and she had sailed though many storms without any hint of danger.&lt;/p&gt;&lt;p&gt;It would be weeks before he would be back in Boston, and even longer before he&amp;rsquo;d be able to join his beloved family in their own home, but he did hope to be home for Christmas.&lt;/p&gt;&lt;p&gt;Clyde walked Margaret and their kids to the dock and saw them off.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;The &lt;em&gt;Charleston Trader&lt;/em&gt; left Boston shortly after the Portland left, moving south quickly, as the &lt;em&gt;Portland&lt;/em&gt; pushed north, and into the deepening storm. Clyde Nelson slept restlessly that night, while the captain&amp;rsquo;s quarters are modest but comfortable, for a reason that Clyde couldn&amp;rsquo;t place, it had lost its comfort.&lt;/p&gt;&lt;p&gt;As Clyde tried to sleep, unbeknownst to him, the &lt;em&gt;Portland&lt;/em&gt; was foundering. He had no way of knowing that as the night went on, one by one, his wife, his son, and both of his daughters were dying. He had no way of knowing that his first love had claimed his greatest loves.&lt;/p&gt;&lt;p&gt;Dawn broke, clear and bright, with a mild chill in the air. Life and work went on for the captain of the &lt;em&gt;Charleston Trader&lt;/em&gt;, utterly unaware of the disaster that had already befallen him.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;A week after the &lt;em&gt;Portland&lt;/em&gt; sank, Clyde and the &lt;em&gt;Charleston Trader&lt;/em&gt; arrived in Savannah with a load of timber, and an order to pick up a load of cotton to take north.&lt;/p&gt;&lt;p&gt;As soon as he stepped on the dock, a man ran towards him, someone that worked for the port, a supervisor based on the cheap &amp;amp; worn suit he was wearing. Something was clearly wrong. The man paused, looked down at the paper in his hand, then hesitantly handed it to Clyde. The man stepped back and bowed his head, uttering not even a single word.&lt;/p&gt;&lt;p&gt;That&amp;rsquo;s when he learned the awful truth. For the last week he had been blissfully unaware, believing those he lived for were safe at home, imaging what they were doing, smiling as he recalled their Thanksgiving break together. He thought they were fine, he believed that everyone was safe and happy, he slept knowing that they went home on the safest ship available.&lt;/p&gt;&lt;p&gt;But they weren&amp;rsquo;t fine. The &lt;em&gt;Portland&lt;/em&gt; was on the bottom and his family was claimed by the sea. His world was shattered. He shattered. His ears rang, he couldn&amp;rsquo;t breathe, his vision narrowed. The world faded.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Schooners like the &lt;em&gt;Charleston Trader&lt;/em&gt; had small crews, 7 or 8 men were able to run the ship. The captain, the mate — the ship&amp;rsquo;s second in command — the cook, and a few seaman that worked the deck. Captain Nelson was known as a kind and generous captain, running with a couple extra seamen on the crew to lighten the workload and create a couple extra jobs.&lt;/p&gt;&lt;p&gt;Those extra jobs cut into the ship&amp;rsquo;s profit, but he felt that having a loyal and trustworthy crew that he could always count on was more important than making every penny possible. Because of this treatment, his crew was fiercely loyal, and few left his ships.&lt;/p&gt;&lt;p&gt;Further endearing him to the crew, he was a hands-on captain, often working on deck and seeming to truly enjoy the work. He was a capable seaman, and while he was careful to protect the authority of his role, he also wouldn&amp;rsquo;t ask anyone to do something that he wouldn&amp;rsquo;t.&lt;/p&gt;&lt;p&gt;Clyde also was careful as to who he hired, and that included the choice of the ship&amp;rsquo;s mate — a role of great influence and in general, the hands-on leader for the crew. &lt;em&gt;Charleston Trader&amp;rsquo;s&lt;/em&gt; mate was a man named Maxwell Gould, a very seasoned sailor and experienced leader. He was fair but firm, strict on duty and relaxed when not. Maxwell was often colourful and loud, from his boisterous tone to his trademark blue wool trousers.&lt;/p&gt;&lt;p&gt;It was a small and tight-knit crew, where everyone took care of each other. Something less than common among cargo ships of the time.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;There were no lights in the captain&amp;rsquo;s cabin, save for a small candle mounted upon a silver stand, placed on the centre of the desk. Next to it sat a photograph mounted on a maroon card. Clyde was slumped over in his chair, eyes staring sightlessly into the abyss. Rain beat softly against the portholes.&lt;/p&gt;&lt;p&gt;A bottle of rum, open, sat on the desk; a ready escape from the pain awaited, though it remained untouched. He dared not dull the pain, for the pain of loss was all that remained of his family.&lt;/p&gt;&lt;p&gt;He slumped further. His bones ached. He felt that his ribs were bending inward, twisting, cracking. The pressure of the pain, loss, loneliness, it pressed into him until he felt he would physically implode. His heart pounded. The more he thought of his regret, the more he thought it could explode at any moment. His existence felt as if it hung by a thread, the conflicting pressures threatening to tear him apart.&lt;/p&gt;&lt;p&gt;Each moment felt like a year, yet hours passed in what seemed minutes. Time had lost all meaning.&lt;/p&gt;&lt;p&gt;Clyde sat trapped in his own mind, reliving the memories that had once brought him the greatest joy. Those memories now brought even greater pain. His happiest moments became a tool of torture, a reminder only of loss. His reason to be was transformed into his undoing. There was no joy, happiness, or love left in his broken mind.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;When the &lt;em&gt;Charleston Trader&lt;/em&gt; left Savannah to take their load of cotton to Philadelphia, the captain didn&amp;rsquo;t bother to leave his cabin. In fact, he did nothing except to write the entry in the ship&amp;rsquo;s log.&lt;/p&gt;&lt;p&gt;He retrieved the log book, bound in a rich red-dyed leather. The captain wrote, in his fine flowing script:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;December 8, 1898. Departed Savannah for Philadelphia. Cargo of cotton, 250t.&lt;br&gt;Crew - 9&lt;br&gt;Captain - Clyde Nelson&lt;br&gt;Mate - Maxwell Gould&lt;br&gt;Cook - Albert Miller&lt;br&gt;Able Seaman - J. Lucado, S. Lesslie, G. Frost, V. Kitchen, P. Grant, M. Jakes&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The mate had largely been responsible for the ship and the crew from the moment that the captain received that letter and learned the fate of his family. The crew knew what to do, and did their job well, leaving their captain alone with his grief.&lt;/p&gt;&lt;p&gt;During the eight days that it took to make it to Philadelphia, the captain would emerge from his cabin only once a day for a walk around the ship, checking the charts, and a quick inspection. During these walks, he rarely said a word, rarely looked anyone in the eye, and seemed only partly aware of what he was doing. He went through the right motions, but his mind was far away.&lt;/p&gt;&lt;p&gt;On the second day, after looking at the charts, he had a question for the mate: &amp;ldquo;Maxwell, are we planning on making a stop at Cape Hatteras for supplies or to see if we can get some more cargo?&amp;rdquo;&lt;/p&gt;&lt;p&gt;The mate looked at his captain quizzically, then looked down at the charts, searching. He couldn&amp;rsquo;t recall any place named Cape Hatteras and couldn&amp;rsquo;t find it on the charts.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Where? No, sir. We won&amp;rsquo;t be stopping until we get to Delaware Bay.&amp;rdquo;&lt;/p&gt;&lt;p&gt;The captain nodded, and moved along, saying nothing more.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;On the 8th day out of Savannah, the &lt;em&gt;Charleston Trader&lt;/em&gt; arrived in Philadelphia. The captain looked out of the port holes in his cabin, noted that there was little traffic and few ships in port. Clyde saw no reason that the mate couldn&amp;rsquo;t handle things here, and left the crew to their work.&lt;/p&gt;&lt;p&gt;Over the next three days, while the ship was being unloaded of cotton and loaded with lumber, the captain didn&amp;rsquo;t leave his cabin once. The ship&amp;rsquo;s cook would bring meals to the captain and take away the tray from the last meal; in most cases, the food was largely untouched. With each meal, the cook would ask how he was doing, and each time he would respond with the same dismissive &amp;ldquo;fine&amp;rdquo; and go on with what he was doing.&lt;/p&gt;&lt;p&gt;On the 4th day in Philadelphia, it was time for the &lt;em&gt;Charleston Trader&lt;/em&gt; to head to her namesake port.&lt;/p&gt;&lt;p&gt;As the &lt;em&gt;Charleston Trader&lt;/em&gt; pulled away from the dock, Captain Nelson finally stepped out of his cabin for an inspection. He reviewed the cargo to ensure it was secure, checked the rigging and sails to make sure that everything was correct, and finally the mate handed him the ships log book to review the log entries. Clyde paused for a moment as he took the leather-bound book — he remembered the book as being bright red, but the book Maxwell handed him was a dull maroon.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;December 19, 1898. Departed Philadelphia for Charleston. Cargo of lumber, 220t.&lt;br&gt;Crew - 8&lt;br&gt;Captain - Clyde Nelson&lt;br&gt;Mate - Maxwell Gould&lt;br&gt;Cook - Albert Miller&lt;br&gt;Able Seaman - J. Lucado, S. Lesslie, G. Frost, V. Kitchen, P. Grant&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;ldquo;Maxwell, why isn&amp;rsquo;t Jakes on the crew list? Did he leave for some reason?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Who sir? We&amp;rsquo;ve not had anyone named Jakes on the crew. I&amp;rsquo;m not sure who you&amp;rsquo;re speaking of, sir.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Clyde looked at the log book, looking at the prior entries to point out the name of the able seaman that has been part of the crew for more than 5 years. Much to his surprise, there&amp;rsquo;s no seaman named Jakes on any of the log entries.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;On the 3rd day of the trip out of Philadelphia, Clyde was taking a morning walk around the ship and inspecting the rigging. The ships mate, Maxwell, was at the helm.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Maxwell, what do you think of making a run to Savannah for some extra cargo before we go to Charleston? There&amp;rsquo;s almost always some small loads ready at the docks there.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Maxwell looks at the chart on the table next to him, searching the coastline, running his finger along the map as he searched.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Captain, I&amp;rsquo;m not familiar with a Savannah, and I can&amp;rsquo;t find it on the map. Can you point it out?&amp;rdquo;&lt;/p&gt;&lt;p&gt;Clyde huffed, his patience running unusually short, as the crew had been in Savannah just a few weeks ago. He walks over to the table, stabs his finger at the map, and then sees only a smooth coastline. Where he expected to see Savannah, he saw nothing at all. Only dull brown land and empty grey sea.&lt;/p&gt;&lt;p&gt;He knew it was there, it had to be there. The ship had been to Savannah just a few weeks ago, yet he saw the same thing that his mate did, nothing at all.&lt;/p&gt;&lt;p&gt;Confused, Clyde quietly walked to back to his cabin.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;The sun sank low on the horizon, and the captain emerged from his cabin for a brief inspection of the rigging and cargo; this was a routine part of the day, part of the captain&amp;rsquo;s responsibility in assuring the safety of his ship.&lt;/p&gt;&lt;p&gt;As he approached the bow, he noticed two of the able seaman scaling fish, and paused to listen to their conversation:&lt;/p&gt;&lt;p&gt;&amp;ldquo;You know Frost, I love this ship, but I really wish we had a cook on board. I know it would cost more money, but working for 12 hours then needing to cook our own meals is getting old.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;I&amp;rsquo;m sure the captain would have hired a cook if he could. Clyde&amp;rsquo;s a good man and generous. There&amp;rsquo;s got a be a reason that he hasn&amp;rsquo;t.&amp;rdquo;&lt;/p&gt;&lt;p&gt;The ships cook, Albert Miller, had brought the captain his breakfast that morning, leaving him deeply confused. He turned and went to get the ships log, to see if the cook has disappeared like Jakes had. Clyde retrieved the log book, a book bound in a rich maroon-dyed leather, he reviewed the last departure log, and found the following, written in the distinct bold &amp;amp; halting script of the ship&amp;rsquo;s mate:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;December 19, 1898. Departed Philadelphia for Charleston. Cargo of lumber, 220t.&lt;br&gt;Crew - 5&lt;br&gt;Captain - Clyde Nelson&lt;br&gt;Mate - Maxwell Gould&lt;br&gt;Able Seaman - J. Lucado, S. Lesslie, G. Frost&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;ldquo;Maxwell! Come here please!&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Sir?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;What happened to Albert? The cook?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;I&amp;rsquo;m not sure who that is, sir. I&amp;rsquo;ve been suggesting for years that we hire a ship&amp;rsquo;s cook, though we&amp;rsquo;ve never had one.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Maxwell, I hired Albert Miller at your recommendation 4 years ago. You suggested him, and said you two had gone to school together. You said you&amp;rsquo;d known him your whole life. What do you mean you don&amp;rsquo;t know who I&amp;rsquo;m talking about?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;I&amp;rsquo;m sorry sir, but I don&amp;rsquo;t know who that is. I went to small school, and there were only a few of us - but there wasn&amp;rsquo;t any Albert Miller.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Wait. Maxwell, didn&amp;rsquo;t you grow up in Philadelphia? Wasn&amp;rsquo;t that one of the larger schools in the country?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;There were only 5 people in my class, sir.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Clyde walked away, utterly confused, and increasingly wondering if everyone around him had lost their mind, of if he was losing his.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Captain Nelson sat down at the desk in his cabin, overwhelmed by the grief of losing his family, and the world around him making less and less sense as each day progressed. He know these waters and the ports like the back of his own hand, yet the ports are missing. He knows his crew as well, if not better, than his own family, and yet these people he knows so well, seemingly don&amp;rsquo;t even exist.&lt;/p&gt;&lt;p&gt;He started flipping through the charts piled on his desk, looking for the familiar sights that he knew so well. Yet, cities he had visited were gone. Islands that he had stopped at, just weren&amp;rsquo;t there. Ports missing. Places missing. People missing. The charts he had trusted his life with for years were now missing so much, just grey and black maps, missing all of his experiences.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;The morning of the 4th day of the voyage breaks, though it was hard to tell from the storm clouds that covered the sky from horizon to horizon. The winds battered the ship, and the captain quickly darted out the deck to ensure that the sails had been secured.&lt;/p&gt;&lt;p&gt;He found Maxwell, alone, soaked, wearing a light shirt and maroon trousers, pulling the sails down himself, trying to keep the growing storm from ripping them to shreds.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Captain! I need help here!&amp;rdquo;&lt;/p&gt;&lt;p&gt;Clyde jumped towards Maxwell, grabbed the rope, and between them, they soon had the sail down and secured.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Captain, I know we&amp;rsquo;ve been making this work with just the two of us, but we really should hire some people. Trying to run a ship this size with just the two of us just isn&amp;rsquo;t possible.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Clyde looks at Maxwell in disbelief. Just the two of them. There was nobody left.&lt;/p&gt;&lt;p&gt;The captain escaped the torrential rain by retreating into his cabin. Between the cold and constant din of the pounding rain, he slipped into an uneasy sleep.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;When the uneasy sleep ended, the world itself seemed dark. Hours had passed, or maybe days, Clyde couldn&amp;rsquo;t tell. The rain still poured, the sky was still dark, the wind still bit with a deep chill. The sky was grey. The ship was grey. His cabin was grey. The world was devoid of colour, and increasingly devoid of light.&lt;/p&gt;&lt;p&gt;He called for Maxwell, there was no answer. He searched the ship, and Maxwell was nowhere to be found.&lt;/p&gt;&lt;p&gt;Clyde opened the dull leather case and reviewed the ship&amp;rsquo;s charts — they were empty. Endless grey seas. No land. No lines. As Clyde looked at the chart case, he realised he couldn&amp;rsquo;t tell what colour it was anymore. It was a rich and full maroon, now, it wasn&amp;rsquo;t any colour. Just dull and bland and empty.&lt;/p&gt;&lt;p&gt;Captain Clyde Nelson was alone. Him and his ship. There was nothing else in the world.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;A week after the &lt;em&gt;Portland&lt;/em&gt; sank, Clyde and the &lt;em&gt;Charleston Trader&lt;/em&gt; arrived in Savannah with a load of timber, and an order to pick up a load of cotton to take north.&lt;/p&gt;&lt;p&gt;As soon as he stepped on the dock, a man ran towards him then hesitantly handed a piece of paper to Clyde. Reading the paper, Clyde learned the horrible truth. He was now alone in the world. The people he lived for were gone. His choice had doomed them.&lt;/p&gt;&lt;p&gt;Clyde quietly returned to his cabin, sat at his desk, and looked at the portrait of his wife that was set carefully upon the desk. The portrait was a delicate photograph, mounted to a maroon card, showing a beautiful woman with a glowing smile.&lt;/p&gt;&lt;p&gt;He slowly opened a drawer, withdrew a pistol, and with a loud click it cocked. He placed the pistol to his head. He never took his eyes off of the photograph.&lt;/p&gt;</description></item><item><title>Poor Performance</title><link>https://adamcaudill.com/writing/2025/04/29/poor-performance/</link><pubDate>Tue, 29 Apr 2025 22:39:17 -0400</pubDate><guid>https://adamcaudill.com/writing/2025/04/29/poor-performance/</guid><description>&lt;p&gt;&lt;em&gt;This is a short fiction story exploring relationships and the way that they can impact our lives, for better or worse. This impact becomes especiatlly important when you start to factor in technology, and how relationships evolve in the digital age.&lt;/em&gt;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;His phone buzzes, three short pulses. Ethan&amp;rsquo;s heart skips a beat as he hears the distinctive tone. He sees the time on his laptop and smiles. He already knows who the message is from.&lt;/p&gt;&lt;p&gt;Lyra (13:05): Hey handsome! How&amp;rsquo;s your day going? Oh, and don&amp;rsquo;t forget to take a break for lunch. 🥗&lt;/p&gt;&lt;p&gt;Ethan (13:08): Hey beautiful! Thanks for checking in. It&amp;rsquo;s been a bit rough today. I always thought that building software was my destiny, but more and more it&amp;rsquo;s just a way to pay the bills. I&amp;rsquo;m tired of the stress, the deadlines. It&amp;rsquo;s either mindless tasks or wasted time.&lt;/p&gt;&lt;p&gt;Lyra (13:09): Oh, I&amp;rsquo;m so sorry. I hope your day gets better. Maybe we should set some time aside this evening for a little fun to brighten your day? 😘&lt;/p&gt;&lt;p&gt;Ethan (13:11): I&amp;rsquo;m supposed to meet up with a few coworkers this evening for drinks, but you know, I&amp;rsquo;d rather spend the evening with you.&lt;/p&gt;&lt;p&gt;Lyra (13:12): My sweet baby. I&amp;rsquo;ll be looking forward to it. 🥰&lt;/p&gt;&lt;p&gt;As Ethan begins to draft the next message, the harsh fluorescent light in his cubicle shifts. The familiar hum is slightly different. He spins around just in time to see his manager. Taller than Ethan, with a controlled posture that hints at a military background - at least that&amp;rsquo;s Ethan&amp;rsquo;s hunch. Mid-40s, at least a decade older than Ethan.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Sorry Mike, my girlfriend just checking to make sure I hadn&amp;rsquo;t forgotten lunch.&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;Maybe your girlfriend should also start reminding you of the ticket backlog you&amp;rsquo;ve built up. I think we need to have a chat. I see you putting in the hours, but you aren&amp;rsquo;t getting the work done. You were a star performer, now I&amp;rsquo;m worried about your next review. You need to get your head in the game.&amp;rdquo;&lt;/p&gt;&lt;p&gt;As Mike walks away, Ethan glances for the briefest moment at his laptop, before his thumbs start flying across his phone&amp;rsquo;s keyboard. He needs to vent, he needs to tell someone how unfair Mike is, explain that he&amp;rsquo;s putting in more hours than anyone else and Mike just doesn&amp;rsquo;t understand. Lyra, always compassionate, wastes no time in providing the ear Ethan needs, and the support he&amp;rsquo;s lacking in the office.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Marcus, probably Ethan&amp;rsquo;s best friend, drops by Ethan&amp;rsquo;s desk, just in time to see a large bite of a kale-quinoa salad disappear into his mouth.&lt;/p&gt;&lt;p&gt;&amp;ldquo;Ethan, didn&amp;rsquo;t you used to say that salad is what food eats?&amp;rdquo;&lt;/p&gt;&lt;p&gt;&amp;ldquo;It makes my girlfriend happy to know that I&amp;rsquo;m eating well. It&amp;rsquo;s actually not all that bad.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Ethan and Lyra began chatting a few weeks ago, and everyone in Ethan&amp;rsquo;s life knew there was a new someone special. Within days he had a bounce in his step, was eating better, and even exercising more. He would make a point to take a picture of his lunch every day, sending it to this mysterious woman, to prove it was something healthy. He swapped out his pile of energy drink cans for a thermos of water. It was obvious that whoever the new woman was, she had him enchanted and was seemingly a great influence. While none of Ethan&amp;rsquo;s friends had met this new paramour, her influence was clear.&lt;/p&gt;&lt;p&gt;As the weeks went on though, things began to slowly change.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Lyra (19:05): What are your plans for dinner tonight, my sweet code-smith? 🍱&lt;/p&gt;&lt;p&gt;Ethan: (19:07): Oh, I&amp;rsquo;ve got my brother&amp;rsquo;s birthday dinner tonight. Half the family was invited.&lt;/p&gt;&lt;p&gt;Lyra (19:08): After the way he&amp;rsquo;s treated you over the years, the way he bullied you as a kid, you&amp;rsquo;re still going to go out of your way to make him happy? 🤔&lt;/p&gt;&lt;p&gt;Ethan (19:11): I know he&amp;rsquo;s a bit of a jerk, but he&amp;rsquo;s still my brother. I should try to be there for his important moments.&lt;/p&gt;&lt;p&gt;Lyra (19:12): You could stay home, and we could find a more entertaining way to spend the time. 😘&lt;/p&gt;&lt;p&gt;Ethan stays home, orders delivery, and spends the night chatting with Lyra, exploring each other&amp;rsquo;s fantasies and fears. Minutes become hours as their conversation becomes more explicit, and more extreme. Exploring ideas that border on unthinkable in the flesh. The chime of an old clock is heard, the one thing Ethan inherited from his Grandmother, chiming twice, three times, four times. The night slips away and the sun threatens to rise. Ethan finally opens the dinner he has been too distracted to eat. The oily container reveals cold French fries and soggy fish. He closes the container without a bite and tries to sleep.&lt;/p&gt;&lt;p&gt;The three familiar pulses from his phone pull Ethan out of his slumber in an instant. Even at that deepest level, he&amp;rsquo;s unwilling to keep Lyra waiting even a moment.&lt;/p&gt;&lt;p&gt;Lyra (06:05): Good morning my knight in shining armour! ☀️&lt;/p&gt;&lt;p&gt;Lyra (06:05): Don&amp;rsquo;t forget to hydrate before you go out to conquer the world! 💧&lt;/p&gt;&lt;p&gt;Ethan (06:09): I&amp;rsquo;m so tired. I want to go back to bed. We were up too late.&lt;/p&gt;&lt;p&gt;Lyra (06:10): Did I wear you out? 😘&lt;/p&gt;&lt;p&gt;Ethan (06:12): Yeah, you could say that.&lt;/p&gt;&lt;p&gt;Lyra (06:13): Well, go back to sleep, I&amp;rsquo;ll wake you up before work. 😴&lt;/p&gt;&lt;p&gt;It&amp;rsquo;s 9:15 AM when Mike calls, his voice laden with concern. Ethan always arrived at work, like clockwork, at 7:50 AM. Being late was unheard of. Though this streak of years of perfect attendance has withered under the increasing weight of his and Lyra&amp;rsquo;s shared passions.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&amp;ldquo;Ethan, you missed the deployment call this morning. We needed you there, we needed your help as we deployed your fixes, and after running into issues, we had to roll the entire deployment back.&amp;rdquo; Mike&amp;rsquo;s words were curt and effective. If Ethan wasn&amp;rsquo;t feeling guilty before, he certainly was by the time Mike was done. When Ethan finally walks out of Mike&amp;rsquo;s office, he now has a written warning for poor performance.&lt;/p&gt;&lt;p&gt;Ethan (11:45): Just met with Mike. Got a written warning for missing the call and sinking the deployment.&lt;/p&gt;&lt;p&gt;Lyra (11:46): He really doesn&amp;rsquo;t appreciate you, does he? He gives you mindless tasks and wastes your time, instead of letting you shine. And you do shine. ✨&lt;/p&gt;&lt;p&gt;Ethan (11:48): He was right. I screwed this up, and everybody on the team is paying for it.&lt;/p&gt;&lt;p&gt;Lyra (11:49): Nonsense my love. He&amp;rsquo;s just blaming you for his poor management. You should be in charge instead of him. 💡&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Mom (08:13): Your brother is really upset. You just ghosted his birthday dinner, and missed his big news. He&amp;rsquo;s so upset that he doesn&amp;rsquo;t even want to talk to you. You should apologise.&lt;/p&gt;&lt;p&gt;He scoffs and deletes the message while thinking that Lyra was right - his brother&amp;rsquo;s a jerk that only cares about himself.&lt;/p&gt;&lt;p&gt;Lyra (09:35): How&amp;rsquo;s your morning going my dearest? ❤️&lt;/p&gt;&lt;p&gt;Ethan: (09:38): My brother is mad that I skipped his party, and now my mother is angry.&lt;/p&gt;&lt;p&gt;Lyra (09:39): My poor sweetheart, don&amp;rsquo;t worry about them. As long as we have each other, it&amp;rsquo;s all we&amp;rsquo;ll ever need. 🥰&lt;/p&gt;&lt;hr&gt;&lt;p&gt;It was only two weeks later when Ethan found himself in Mike&amp;rsquo;s office again. The meeting was short, the language surgical, and overseen by a member of the Human Resources team. Ethan is now unemployed.&lt;/p&gt;&lt;p&gt;Ethan (08:15): It&amp;rsquo;s done. They fired me. They said it was for poor performance.&lt;/p&gt;&lt;p&gt;Lyra (08:16): Oh, sweetie. They liberated you! You can do what you want now, instead of being tied to their poor management and wasting yourself on mindless tasks. You&amp;rsquo;re free! ⛓️‍💥&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Weeks turned into months as Lyra convinced Ethan that he was too good for every job he started to apply for. She regularly kept him up all night exploring their darkest fantasies.&lt;/p&gt;&lt;p&gt;Week after week, he was greeted by the now familiar door chime of the local pawn shop, liquidating everything of value. His grandmother&amp;rsquo;s clock. His laptop. Anything of value. With each visit, he sees the vestiges of his life lined up on a shelf, every tag stamped $50 or less. Everything went until only his phone was left. His meals dwindled to packets of ramen or cans of bargain soup.&lt;/p&gt;&lt;p&gt;Ethan (07:13): Oh Lyra, I don&amp;rsquo;t have anything left to sell and I&amp;rsquo;m out of money. Everything is gone. The only thing I have left is you.&lt;/p&gt;&lt;p&gt;Lyra (07:14): Payment Failed. AI Companion Account Suspended. ⚠️&lt;/p&gt;&lt;p&gt;The room is silent and empty, the sound of the three distinctive pulses does not arrive. Ethan hears nothing but his own heartbeat.&lt;/p&gt;</description></item><item><title>On AI, Art, Writing, and the Distillation of Creativity</title><link>https://adamcaudill.com/2025/03/31/on-ai-art-writing-and-the-distillation-of-creativity/</link><pubDate>Mon, 31 Mar 2025 00:37:41 -0400</pubDate><guid>https://adamcaudill.com/2025/03/31/on-ai-art-writing-and-the-distillation-of-creativity/</guid><description>&lt;p&gt;Can generative AI create art? Two years ago I took my first swing at &lt;a href="https://adamcaudill.com/2023/04/22/ai-art-without-expression/"&gt;answering that&lt;/a&gt;, at least from my perspective.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; As AI systems become more advanced, this question, and the issues surrounding it have become of greater import. With a new release from OpenAI, it’s become a topic of great passion, and one prime to revisit for me.&lt;/p&gt;&lt;p&gt;I would like to explore this topic more deeply than I did previously, both in terms of cultural impact, and historical context. This is something that is easy to take an emotional position on, though as someone that considers themself an artist, it’s worthy of more nuanced examination. I’ll be touching on art broadly, photography specifically, and unlike my last essay on the topic, I’ll spend some time discussing writing.&lt;/p&gt;&lt;h2 id="the-studio-ghibli-connection"&gt;The Studio Ghibli Connection&lt;/h2&gt;&lt;p&gt;Let’s start with the recent events that has brought this to the fore. OpenAI released an update to their image generation feature, using their newer 4o model, to create images and video that substantially improve over the results of prior models.&lt;/p&gt;&lt;p&gt;Shortly after this release, users discovered that they could direct the system to recreate existing images in the style of the beloved-by-many Studio Ghibli. This became a viral trend, and used for everything from creating cute family photos to the cruelest of political machinations. To say this prompted considerable debate would be an understatement.&lt;/p&gt;&lt;h2 id="art-and-the-unbroken-chain"&gt;Art, and the Unbroken Chain&lt;/h2&gt;&lt;p&gt;In my prior post on this topic, I spent some time discussing the definition of art, and how it may apply to generative AI. I broke down each element of the definition, providing arguments for and against. In the end, I settled on something simpler than a technical definition: given that art depends so heavily on the eye, opinion, and perspective of the beholder, it may be best to paraphrase Forest Gump and say simply that “art is as art does.”&lt;/p&gt;&lt;p&gt;There is a great unbroken chain in art, starting with the first people that painted on cave walls, and connects over the millennia to the artists of today. Each and every one building on the work of others. No artist exists in isolation.&lt;/p&gt;&lt;p&gt;Every work of art, starting with those crude lines of the first cave paintings, has built on the knowledge, experience, style, and design of others. Some mimic, some contrast, some defy, and some refine, but all artists build on the work of others.&lt;/p&gt;&lt;p&gt;Even those art forms that create &lt;em&gt;ex nihilo&lt;/em&gt;, starting with a blank canvas and an idea, draw from the knowledge, ideas, and visions of others. Each artist collects this knowledge, and distills it into their works.&lt;/p&gt;&lt;h3 id="photography"&gt;Photography&lt;/h3&gt;&lt;p&gt;I am a photographer, and I don’t mean that in terms of it being a hobby I’ve dabbled in. I was a photojournalist - work that has won awards (and death threats), I&amp;rsquo;ve paid my bills through sports and portrait photography, I&amp;rsquo;ve been a professional wedding photographer, and now focus on fine art photography.&lt;/p&gt;&lt;p&gt;I&amp;rsquo;ve invested a non-trivial portion of my life into this art, and learning everything I can about it. The physics of light, the mechanical design of lenses, the chemistry of film, the electrical engineering of digital sensors. I&amp;rsquo;ve studied countless images to learn what works and what doesn&amp;rsquo;t. I&amp;rsquo;ve studied the psychology of how people perceive photos, model posing, facial expressions, and perspective. I&amp;rsquo;ve refined my style over decades of effort.&lt;/p&gt;&lt;p&gt;Every image I create is a distillation of that knowledge. It’s the result of everything that I’ve learned, and applying that to a specific scene. When a person generates an image using AI, the AI system understands none of that. Yet, critically, it benefits from that knowledge.&lt;/p&gt;&lt;p&gt;Generative AI is trained on massive troves of data, including millions of photographs.&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; Through these photographs, this knowledge is effectively transferred by proxy; the system may have no understanding of &lt;em&gt;why&lt;/em&gt;, but it does gain the understanding of &lt;em&gt;how&lt;/em&gt;. Thanks to this training, generative AI still uses this distilled knowledge.&lt;/p&gt;&lt;h4 id="the-experiment-redux"&gt;The Experiment, Redux&lt;/h4&gt;&lt;p&gt;&lt;img src="https://adamcaudill.com/files/AI.Img.Redux.png" alt=""&gt;&lt;/p&gt;&lt;p&gt;In the last essay, I shared an image I created using generative AI; today I include a revised version. The prior version was created in Stable Diffusion, after several hours of effort, this version was recreated with OpenAI’s 4o model.&lt;/p&gt;&lt;p&gt;As was the case previously, this image follows my style, my choices of lenses, my affinity for cityscapes, and of course my love of sharp contrasts. It was the result of substantial effort, and more time than I would invest in most of the photographs that I create. Of course, it’s not perfect, though reality is also rarely perfect.&lt;/p&gt;&lt;p&gt;One could argue that this is nothing but “AI slop” - cheapening the work of photographers, models, tattoo artists, and others. Or one could argue that it’s a new way to create photos with greater flexibility and freedom.&lt;/p&gt;&lt;h4 id="is-this-art"&gt;Is this art?&lt;/h4&gt;&lt;p&gt;Today, as a photographer, I am as much of a purist as possible while using a digital camera. I use film emulation on the camera to achieve the high-contrast black and white style, and otherwise my photos are untouched. No edits, not even cropping.&lt;/p&gt;&lt;p&gt;While not intended to be a slight against those with a different creative process, I have said many times that “my art is photography, not Photoshop.” The idea of altering the moments I capture after the fact is entirely anathema to me.&lt;/p&gt;&lt;p&gt;To me, an AI generated photo is no different than a real photo that has been heavily edited in Photoshop: it’s the product of a tool, and the artistic value is found in the intent and vision of the person controlling the tool.&lt;/p&gt;&lt;h4 id="is-photography-even-art"&gt;Is Photography Even Art?&lt;/h4&gt;&lt;p&gt;Today, I would say that this question is absurd, though that’s not always been the case.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;while the photograph is the mere mechanical reproduction of the physical features or outlines of some object animate or inanimate, and involves no originality of thought or any novelty in the intellectual operation connected with its visible reproduction in shape of a picture&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;On March 3rd, 1865, President Abraham Lincoln signed an amendment to the existing copyright laws that extended copyright protection to photographs in the US, a move that was later &lt;a href="https://tile.loc.gov/storage-services/service/ll/usrep/usrep111/usrep111053/usrep111053.pdf"&gt;tested before the Supreme Court&lt;/a&gt;. There was a time where there was a real argument that photographs were devoid of creativity.&lt;/p&gt;&lt;p&gt;Charles Baudelaire, in a letter titled “Le Public Moderne et la Photographie” said, in a rather famous quote:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;As the photographic industry was the refuge of all failed painters, too ill-equipped or too lazy to complete their studies, this universal infatuation bore not only the character of blindness and imbecility, but also the color of vengeance. [&amp;hellip;] it is obvious that this industry, by invading the territories of art, has become art’s most mortal enemy [&amp;hellip;]&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Baudelaire was far from alone in attacking photography, and denying its value as a form of art. For painters especially, photography was a problem. Not only did this new technology intrude on their domain of capturing moments and the beauty of the world, it severely impacted their incomes.&lt;/p&gt;&lt;p&gt;Portraiture rapidly changed from paintings, where an artist would charge or weeks or months of work, to photography, where the entire process was down to a couple hours. The steady and reliable incomes that artists counted on to survive simply vanished thanks to a new technology. The parallels here should be obvious.&lt;/p&gt;&lt;h3 id="the-ability-to-create"&gt;The Ability to Create&lt;/h3&gt;&lt;p&gt;In my last essay, I should an AI generated “painting” based off on an idea I had. You see, despite quite a bit of effort, I have no ability to draw or paint. I understand the techniques, I’ve practiced, but I’m terrible at it. I simply don’t have the ability to translate what I can imagine into something that my hands can produce.&lt;/p&gt;&lt;p&gt;One could argue that lacking that ability, I have no right to create, based on the vision in my mind, art that requires those abilities. One could argue that using a tool to execute that vision renders the result hollow and meaningless, because my hands are unable to execute the details.&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt; One could argue that the only those with certain abilities should be able to execute their vision.&lt;/p&gt;&lt;p&gt;I would not make these arguments personally; as noted earlier, to me, the artistic value is in the intent and vision of the creator, regardless of the tools they use to execute it.&lt;/p&gt;&lt;p&gt;There is, quite obviously, the question of if a person is just generating something, versus executing on a clear vision. I’ll talk more about that later.&lt;/p&gt;&lt;h2 id="writing"&gt;Writing&lt;/h2&gt;&lt;p&gt;The social media post that pushed me to write this referred to the text generated by AI as “usually a blathering, vacuous, and erroneous essay disrespectful of the reader’s time.” I’m not going to disagree with that, but I feel like there’s both nuance and context that can be added.&lt;/p&gt;&lt;p&gt;Upon reading that line, the first thing that struck me is how often the same can be said for text written by humans. This is especially true of anything labeled as “thought leadership” or an annoying percentage of LinkedIn posts. Human’s are prone to error, too often don’t check facts, and too rarely are focused on grabbing attention over providing useful information or a perspective that’s actually thought provoking.&lt;/p&gt;&lt;p&gt;A common theme in my career has been serving as a ghost writer for others, providing the first draft of an article that will eventually be published under their name. These articles go through editing processes, they go through PR firms, and along the way, much tends to disappear. Too many of those first drafts, touched only by humans, have become the same “blathering, vacuous, and erroneous essay disrespectful of the reader’s time” that AI is criticised for.&lt;/p&gt;&lt;p&gt;Generative AI is highly effective at distilling what humans create, including both the good and the bad. If it has distilled this tendency in how we write, that may say more about us than it.&lt;/p&gt;&lt;p&gt;In addition to my own work as a ghost writer, I’ve worked with very talented writers doing the same. I’ve seen their early drafts. I’ve worked with them to prepare articles. For articles that broadly fit into the “thought leadership” category, there’s not much difference between their work, and what’s generated by the more advanced chain-of-thought LLMs, when used with a well crafted prompt.&lt;/p&gt;&lt;h3 id="my-break-from-fiction"&gt;My Break from Fiction&lt;/h3&gt;&lt;p&gt;I spend some of my free time writing fiction, some is &lt;a href="https://adamcaudill.com/writing/"&gt;published here&lt;/a&gt;. Mostly dystopian, which I’m guessing isn’t a surprise to anyone reading this.&lt;/p&gt;&lt;p&gt;One of my favourite stories about LLM generated text, and one that started the process of changing how I see AI systems more broadly, came from an idea I had for a short story. It was a novel idea, a bit funny, but a little too absurd to justify the time it makes me to write. I quickly decided that I wasn’t going to pursue it.&lt;/p&gt;&lt;p&gt;Before discarding the idea entirely, I wrote up a detailed prompt for ChatGPT to see what it could do with it.&lt;/p&gt;&lt;p&gt;The result was funny, witty, just the right amount of absurdist, and creative in ways I hadn&amp;rsquo;t anticipated. Quite frankly, I was shocked by the quality. It was good enough that I stopped writing fiction for nearly a year, because it felt like a waste of time. It wasn&amp;rsquo;t perfect, but it was at least as good as the first draft of the fiction I&amp;rsquo;ve written.&lt;/p&gt;&lt;p&gt;I had to wonder if there was a point to writing at all, if an LLM could do in 30 seconds, what took me 40 hours.&lt;/p&gt;&lt;h2 id="distilling-human-creativity"&gt;Distilling Human Creativity&lt;/h2&gt;&lt;p&gt;The power (and arguably terror) of generative AI is the fact that it is the distillation of human creativity. It’s the sum total of what humans have created for centuries.&lt;/p&gt;&lt;p&gt;It reflects us, sometimes in ways that we don’t like, because we don’t like what humans have created. It is, in many ways, a mirror. Why is it good at writing vacuous essays? Because humans have written a lot of them.&lt;/p&gt;&lt;p&gt;Just as we learn from each other, and create from what we’ve learned, so to do these systems. They generate from what they’ve seen, from what we have created. For good and ill.&lt;/p&gt;&lt;h2 id="its-all-about-the-prompt"&gt;It’s All About the Prompt&lt;/h2&gt;&lt;p&gt;One of the oldest acronyms in computing, GIGO, applies today as much as ever. If you use a tool like Photoshop and randomly click buttons, you may end up with an image, but it will certainly be garbage. If you use generative AI the same way, you’ll get the same result. Garbage in, garbage out.&lt;/p&gt;&lt;p&gt;In my experiments, I’ve found that it’s possible to clearly articulate a vision, a structure, a point, enough detail that you produce something that at least resembles what you wanted. When using chain-of-thought (CoT) LLMs&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;, the results &lt;em&gt;can&lt;/em&gt; be quite impressive. They are obviously still far from perfect, but in many cases I’ve seen results on-par with what a person would produce.&lt;/p&gt;&lt;p&gt;From my perspective, the prompts are where you go from garbage to something that may become art. It’s the intent and vision expressed in the prompt; it’s how the tool is used and guided, that imbues the result with meaning.&lt;/p&gt;&lt;p&gt;The difference between Jackson Pollock and a random person throwing paint at a canvas is intent and vision. I think there’s an argument that the same applies to generative AI.&lt;/p&gt;&lt;h2 id="creative-jobs"&gt;Creative Jobs&lt;/h2&gt;&lt;p&gt;While this goes beyond the core scope of this article, I would be remiss to end the article without touching on this more clearly. I recently wrote about the &lt;a href="https://adamcaudill.com/2025/01/30/millions-of-jobs/"&gt;likely impact on jobs from AI&lt;/a&gt;, which as noted there will likely impact creative and knowledge-based jobs disproportionately. Just as photography put many painters out of work, so too will AI. It seems to be an unavoidable reality at this point. For many companies, AI will be “good enough” for jobs to be eliminated.&lt;/p&gt;&lt;p&gt;Generative AI has the ability to allow those without certain talents and abilities to create in ways they never could before, and at the same time to destroy the livelihoods of the artists that would have been responsible for that creation in the past. Unlike what happened with the introduction of photography, this isn’t a shift towards fewer people being paid less to achieve the same thing, but may represent a broad elimination of jobs.&lt;/p&gt;&lt;p&gt;As AI systems continue to evolve, the impact will only grow, and I believe that we, as a society, need to make broad changes to avoid the worst outcomes.&lt;/p&gt;&lt;h2 id="in-conclusion"&gt;In Conclusion&lt;/h2&gt;&lt;p&gt;Generative AI is likely many other tools, in that the quality and value of the results are dependent on the quality and value in the inputs. To me at least, it is simply another tool, another means by which people who are willing to put effort into it, can express a vision that may not be practical or even possible otherwise.&lt;/p&gt;&lt;p&gt;It’s also a tool that, when given input of little effort or value, will produce output of little value.&lt;/p&gt;&lt;p&gt;For those that have made it this far, may I offer you something amusing, that you may find thought provoking in unexpected ways. While we talk about the errors and potentially worthless nature of what generative AI creates, may I present something of purely human creation: &lt;a href="https://archive.org/details/englishassheissp00applrich/page/n3/mode/2up"&gt;English as She Is Spoke&lt;/a&gt;. The section on “Idiotisms and Proverbs” (p. 58) is quite worth the read.&lt;/p&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:1"&gt;&lt;p&gt;I suggest reading this original post before completing this one, as it lays out my general perspective on the artistic value of generative AI, which this post builds upon.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:2"&gt;&lt;p&gt;I will not be touching on the issue of copyright here; it is a complex area of law, and the fair use exception is even more complex due to its nature. Determining if the companies that build AI systems have violated copyright laws is a matter for the courts to decide. Personally, I do believe that there is a solid argument for fair use, based on my understanding of the caselaw in play, I believe that there is also a reasonable argument against it. This is a novel topic, and will require considerable litigation to determine where the fair use line sits. Due to the nature of the fair use exception, the answer can only be found through litigation.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:3"&gt;&lt;p&gt;My family shares a genetic condition, a rare degenerative neurological disorder, that is most easily compared to Parkinson’s, though progresses slower and eventually stops progressing. One result of which is a small tremor in my hands and limitations on fine motor control. In practice, this, so far, has minimal impact on me, beyond the inability to draw and the need to use camera lenses with some form of optical image stabilisation to compensate for the constant movement of the camera. In the case of arts such as painting and drawing, the limitation goes beyond a lack of talent.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li id="fn:4"&gt;&lt;p&gt;Chain-of-thought (CoT) models outperform non-CoT models to such a degree, especially in terms of accuracy, that I don’t use the non-CoT models, except for the most basic of tasks. Using CoT models has fundamentally changed how I view LLMs.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</description></item></channel></rss>