<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>NHCarrigan</title>
    <link>https://mktg.nhcarrigan.com/blog</link>
    <description>Naomi Carrigan is a software engineer and community builder. Read her writing on developer communities, AI tooling, and professional growth in tech.</description>
    <language>en-us</language>
    <pubDate>Tue, 06 Oct 2026 18:40:29 GMT</pubDate>
    <dc:date>2026-10-06T18:40:29Z</dc:date>
    <dc:language>en-us</dc:language>
    <item>
      <title>I Stayed for 36 Hours Straight. Here Is Why</title>
      <link>https://mktg.nhcarrigan.com/blog/ai-hackathon-berkeley-2026</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://mktg.nhcarrigan.com/blog/ai-hackathon-berkeley-2026" title="" class="hs-featured-image-link"&gt; &lt;img src="https://mktg.nhcarrigan.com/hubfs/Generated_Image_September_29_2026_-_9_34PM.jpg" alt="I Stayed for 36 Hours Straight. Here Is Why" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;I attended AI Hackathon @ Berkeley 2026 representing Deepgram, and I did not sleep. I did not have to stay awake. I could not bring myself to leave.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;I attended AI Hackathon @ Berkeley 2026 representing Deepgram, and I did not sleep. I did not have to stay awake. I could not bring myself to leave.&lt;/p&gt; 
&lt;p&gt;I was there for all of it: the sponsor booth, the workshop, the judging and the full 36 hours. I want to be direct about why. The reason was the people. The hackers at Berkeley were some of the most enthusiastic builders I have been around. They were not only building. They wanted to talk, and they wanted to show me what they were making. They had questions at 2am, at 4am and at 6am, and they did not care what time it was.&lt;/p&gt; 
&lt;p&gt;That is not an energy I could walk away from.&lt;/p&gt; 
&lt;h2&gt;What We Were There For&lt;/h2&gt; 
&lt;p&gt;Deepgram sponsored the Best Use of Deepgram track. The track asked teams to build real-time voice into their projects as an essential part, not an afterthought. Out of 398 total projects, 141 teams did this. That is 35% of the hackathon building voice-first.&lt;/p&gt; 
&lt;p&gt;I knew beforehand that voice is a difficult integration. It cannot simply be added at the end. Even so, team after team came to our booth. They told me what they were building, how they were using the API, what was working and where they were stuck. I had those conversations all night.&lt;/p&gt; 
&lt;p&gt;No metric captures one part of this: the look on someone's face when their real-time transcription works for the first time.&lt;/p&gt; 
&lt;h2&gt;How I Showed Up&lt;/h2&gt; 
&lt;p&gt;I think much of why this event felt different came from a choice I made before I arrived. I decided to do more than is usual for a sponsor.&lt;/p&gt; 
&lt;p&gt;We set up a monitor at the booth with QR codes. I ran a workshop. I was the only sponsor who stayed all night.&lt;/p&gt; 
&lt;p&gt;While everyone else went home, I stayed. At 2am, people were doing push-ups in the aisles to stay awake. By 6am, there were hackers asleep on the floor next to my booth. I was still standing, so I was still having conversations. They were real conversations about what people were building, what was working, what they were stuck on and what they wanted to do next.&lt;/p&gt; 
&lt;p&gt;Two figures reflect this. There were 243 workshop signups from a room of 50 people. There were 42 people who personally invited me to see their project in our sponsor Slack channel. Both followed from my being present throughout the event.&lt;/p&gt; 
&lt;h2&gt;Judging&lt;/h2&gt; 
&lt;p&gt;There were 141 submissions in our track and a two-hour judging window. I walked the floor and visited as many as I could of the teams that had contacted me personally. While I walked, other teams saw me and called me over to their tables. The whole floor was in motion.&lt;/p&gt; 
&lt;p&gt;When the window closed and I submitted my winner, people began lining up at the booth. For another 90 minutes, team after team came to show me what they had built with Deepgram and to talk about what came next. No one was aggressive. Everyone was polite. They wanted to talk about the API, their project and where it was going. That is rare at a sponsored event.&lt;/p&gt; 
&lt;p&gt;The team behind aside.ai won our track. The reason was not the two-hour judging window. It was the 24 hours before it. They had been in conversation with me for the entire event. They showed me their work, iterated and checked back in. By the time I submitted the winner, I had watched them build the project.&lt;/p&gt; 
&lt;h2&gt;The Projects&lt;/h2&gt; 
&lt;p&gt;The range of what people built was very wide. I want to be specific about that. Every hackathon recap mentions a variety of projects, and most do not mean it in the way I mean it.&lt;/p&gt; 
&lt;p&gt;voxaid is a speech pipeline fine-tuned for dysarthric speech. It is intended for people with ALS, cerebral palsy and stroke, whose voices existing recognition software does not understand. The team fine-tuned a wav2vec2 model on the TORGO dysarthric speech dataset. They used an architecture from a paper published two days before the hackathon started. They then passed the output through Claude for semantic reconstruction and Deepgram Aura for voice response. The result was a full speech-to-speech system that could take unclear input and produce natural output. It is intended for people who currently depend on a human interpreter to communicate. It was built at a hackathon.&lt;/p&gt; 
&lt;p&gt;aintercept is a scam interception tool. It listens on a call and alerts someone as soon as it detects the patterns of a scam in progress. The builder's grandmother had fallen for a fake police officer scam the year before. They explained to me exactly what had happened, and then they showed me what they had built. Those two conversations were about thirty seconds apart.&lt;/p&gt; 
&lt;p&gt;crisisroom was built by a veteran who served on a landing ship in Singapore. He described damage control at sea. There is a steel passageway with strobing lights and smoke filling the space. Water rises past your boots. A general alarm is so loud that you cannot hear the person next to you. A grease pencil on a plexiglass board is the only shared source of truth for everyone making life-or-death decisions. He built a real-time, voice-powered incident response system because he had lived with the cost of not having one. The problem statement he gave me at the booth was one of the most striking things I heard all weekend.&lt;/p&gt; 
&lt;p&gt;moggie is a portable party-game kiosk running on a Raspberry Pi. Players compete in facial expression matching and hand-motion challenges, with Deepgram powering the social and voice layer. It was built as a response to looksmaxxing culture. The hypothesis is that if people laugh and compete together in person over topics they would otherwise obsess over alone, something changes. It was also chaotic and enjoyable, to the point that I forgot I was 18 hours into a hackathon.&lt;/p&gt; 
&lt;p&gt;séance lets you point your phone at any object. The object becomes a character and talks back to you. You can argue with your water bottle, or have a stapler answer back. I will not claim this solved a critical global problem. It was one of the most enjoyable things I saw all weekend, and the group of people around it was always laughing.&lt;/p&gt; 
&lt;p&gt;The last project was aside.ai.&lt;/p&gt; 
&lt;p&gt;The team behind aside.ai won our track and deserved to. Their project was a clip-on wearable. A Raspberry Pi camera streamed frames over Wi-Fi to a laptop. The laptop used Claude for vision and Deepgram for both speech-to-text and text-to-speech. It narrated the world around the wearer in real time, in a personality of their choice, such as a hype man, a goth therapist or an epic quest narrator. The same moment was described differently depending on the personality chosen. The project was technically strong and funny, and the team had clearly thought hard about both.&lt;/p&gt; 
&lt;p&gt;What stayed with me about aside.ai was not only the project but the team. They were at my booth constantly. They were not asking for help. They were showing me things and iterating. At one point I noticed that the booth next to mine had been empty for the entire event. Someone from their team was now sitting there, editing and publishing social media content in real time to build interest in what they were making. They had not only built a startup. They had shipped a startup. At a hackathon.&lt;/p&gt; 
&lt;h2&gt;The Workshop&lt;/h2&gt; 
&lt;p&gt;We ran a workshop during the event with about 50 people in the room. The links we handed out produced 243 console signups. That is nearly five times the number of people who were physically present. The resources spread across the whole 398-project event, and I watched it happen in real time from the booth. Links appeared in Discord servers, were added to READMEs and were passed between teams who had never attended the session.&lt;/p&gt; 
&lt;h2&gt;What I Am Taking Away&lt;/h2&gt; 
&lt;p&gt;I have been to many events. Berkeley felt different. The students there were not only looking for a prize. They were building things they were excited about, and they wanted to talk to the people behind the tools they were using. That is rare.&lt;/p&gt; 
&lt;p&gt;I stayed for 36 hours because the room kept giving me reasons to stay. I would do it again without hesitation.&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=247600308&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fmktg.nhcarrigan.com%2Fblog%2Fai-hackathon-berkeley-2026&amp;amp;bu=https%253A%252F%252Fmktg.nhcarrigan.com%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Wed, 24 Jun 2026 12:00:00 GMT</pubDate>
      <author>naomi@nhcarrigan.com (Naomi Carrigan)</author>
      <guid>https://mktg.nhcarrigan.com/blog/ai-hackathon-berkeley-2026</guid>
      <dc:date>2026-06-24T12:00:00Z</dc:date>
    </item>
    <item>
      <title>ADHD and Software Engineering</title>
      <link>https://mktg.nhcarrigan.com/blog/adhd-and-software-engineering</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://mktg.nhcarrigan.com/blog/adhd-and-software-engineering" title="" class="hs-featured-image-link"&gt; &lt;img src="https://mktg.nhcarrigan.com/hubfs/Generated_Image_September_29_2026_-_9_34PM.jpg" alt="ADHD and Software Engineering" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;I have always struggled with my productivity. I cannot focus on a task, and it shows. Getting my ADHD diagnosis the first time was enlightening. The second was bureaucratic and unnecessary. The first diagnosis explained many of the struggles I experienced in life. I am lazy, but it is not as bad as one might think, because half of it is my ADHD sending me to a different topic.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;I have always struggled with my productivity. I cannot focus on a task, and it shows. Getting my ADHD diagnosis the first time was enlightening. The second was bureaucratic and unnecessary. The first diagnosis explained many of the struggles I experienced in life. I am lazy, but it is not as bad as one might think, because half of it is my ADHD sending me to a different topic.&lt;/p&gt; 
&lt;p&gt;I can hyperfocus and produce work for sixteen hours straight one day, and be distracted by every Slack message the next. It is not a lack of motivation or a problem with self-discipline. It is ADHD.&lt;/p&gt; 
&lt;p&gt;This post covers what ADHD does to me as a software engineer. It contains no stereotypes and no filler. It is one person's honest account.&lt;/p&gt; 
&lt;p&gt;Hyperfixation can seem like a blessing, and in many ways it is. I found my success because I hyperfixated on learning to code during a time when I had nothing else to do. However, I did not choose to hyperfixate. My brain chose for me.&lt;/p&gt; 
&lt;p&gt;It is also a curse. I can hyperfocus on a task for six hours, finish it, and then spend the next four hours working up the motivation to start another. Starting a task is very difficult. Context switching is very difficult.&lt;/p&gt; 
&lt;p&gt;Many of the productivity techniques that a neurotypical engineer might use are useless for me. The Pomodoro technique does not work, because it causes interruptions. Doing the hardest task first does not work either, because starting a task is the hardest task. I do not know how I am supposed to do that. Constant Slack, Discord and email notifications are more distractions, although important ones.&lt;/p&gt; 
&lt;p&gt;These are the things that help. I need my music playlist, a quiet and comfortable corner, a mug of coffee, tea or cider, and 16 hours of uninterrupted time. With those, I can be extremely productive. I need to finish one thing before moving on to the next. If I have walked away for too long, I will never pick it back up. This is why I do not finish video games. Good task and note software also helps. I rely heavily on Asana and Notion lately.&lt;/p&gt; 
&lt;p&gt;Hikari also helps.&lt;/p&gt; 
&lt;p&gt;Software engineering is in some ways very good for the ADHD brain, and in other ways very difficult. If I can settle into an idea, test and refine loop, I can produce very good work. If I am given vague, directionless assignments, you may receive unfocused work in return. Code reviews are difficult. If a change is more than about 10 lines of code, I will not read it. I cannot bring myself to do it.&lt;/p&gt; 
&lt;p&gt;Medication helps a lot, provided your psychiatrist is not withholding it. Mine is, for safety reasons. Apparently it makes mood swings worse. I am now barely functioning. It is vital to work in an environment that allows for fluctuations in productivity when the net positive is high. I can deliver anything you need. You will get silence for a week, then 50 updates in a day, then another week of silence, and then a finished app.&lt;/p&gt; 
&lt;p&gt;Remote work helps a lot. I have a quiet office and a very expensive, comfortable chair. No one bothers me, and I can listen to my music and work effectively. However, with no one there to keep me on track, a rabbit hole can consume the whole workday.&lt;/p&gt; 
&lt;p&gt;None of this is medical advice. I am not legally allowed to give medical advice. This post should not be treated as medical advice, and I am not a credible source of medical information. It is a description of how I experience ADHD.&lt;/p&gt; 
&lt;p&gt;This is real. This is my real experience. This is my everyday life. This is ADHD. This is Naomi.&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=247600308&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fmktg.nhcarrigan.com%2Fblog%2Fadhd-and-software-engineering&amp;amp;bu=https%253A%252F%252Fmktg.nhcarrigan.com%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Mon, 15 Jun 2026 12:00:00 GMT</pubDate>
      <author>naomi@nhcarrigan.com (Naomi Carrigan)</author>
      <guid>https://mktg.nhcarrigan.com/blog/adhd-and-software-engineering</guid>
      <dc:date>2026-06-15T12:00:00Z</dc:date>
    </item>
    <item>
      <title>I Went to CascadiaJS 2026. Here Is What Developers Are Telling Us</title>
      <link>https://mktg.nhcarrigan.com/blog/cascadiajs-2026</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://mktg.nhcarrigan.com/blog/cascadiajs-2026" title="" class="hs-featured-image-link"&gt; &lt;img src="https://mktg.nhcarrigan.com/hubfs/Generated_Image_September_29_2026_-_9_34PM.jpg" alt="I Went to CascadiaJS 2026. Here Is What Developers Are Telling Us" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;June 1-2, 2026 | Seattle, WA | About 200 attendees&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;June 1-2, 2026 | Seattle, WA | About 200 attendees&lt;/p&gt; 
&lt;p&gt;I spent two days at CascadiaJS 2026 in Seattle as Deepgram's community engineer. I brought a notebook, a list of questions and one effective conversation opener.&lt;/p&gt; 
&lt;p&gt;This is what I found.&lt;/p&gt; 
&lt;h2&gt;The Setup&lt;/h2&gt; 
&lt;p&gt;CascadiaJS is a JavaScript conference that has run since 2012. It draws around 200 developers to Seattle for a single-track programme focused on web development and the JavaScript ecosystem. The crowd skews younger. Many attendees are breaking into the industry, and many were at their first or second developer conference. That tells you something important about the audience, and I will return to it.&lt;/p&gt; 
&lt;p&gt;I was there to listen and to have conversations. I wanted to understand what developers building with voice AI are running into, what they are excited about and where the friction is.&lt;/p&gt; 
&lt;h2&gt;The Conversations That Mattered&lt;/h2&gt; 
&lt;p&gt;The best opener I found was this: "What if your customers used their voice instead of typing?"&lt;/p&gt; 
&lt;p&gt;That question landed differently every time. Some people responded immediately. They had already been thinking about it and had opinions. Others paused because they had not considered it, and then worked through the implications out loud. Either way, it started a real conversation.&lt;/p&gt; 
&lt;p&gt;Developers raised the same points again and again. They are excited about voice AI, but they run into the same friction points: integration complexity, latency and not knowing where to start. The enthusiasm is there. The path to getting started needs work. That is a content and documentation opportunity worth attention.&lt;/p&gt; 
&lt;p&gt;Some of the best conversations with developers happened in the conference hallways and around the exhibitor area. Voice AI came up naturally. People talked about what they were building, how different models fit together and what they were trying to make work. These conversations were casual and genuine, and far more useful than any scripted pitch.&lt;/p&gt; 
&lt;h2&gt;The Mentorship Angle&lt;/h2&gt; 
&lt;p&gt;A significant part of the CascadiaJS crowd is new to the industry. They are working out how to break in, what to build and who to learn from. I spent a fair amount of time with that group. I was not pitching anything. I was helping where I could.&lt;/p&gt; 
&lt;p&gt;The effect is hard to measure but easy to see. "The community engineer at Deepgram spent her own time helping me" is the kind of impression that spreads. It is a long-term effect, but a real one.&lt;/p&gt; 
&lt;p&gt;I also had a good conversation with Dylan from Atomic Object about their accelerator programme. It is a two-year initiative for developing junior developer teams. It raised a thesis worth following up. If developers become comfortable with voice AI tools early in their careers, they carry that familiarity with them when they join larger organisations. It is hard to attribute pipeline to this, but it deserves careful thought.&lt;/p&gt; 
&lt;h2&gt;What I Did Not Expect&lt;/h2&gt; 
&lt;p&gt;Seattle's tech community has strong opinions about AI.&lt;/p&gt; 
&lt;p&gt;Nearly every lamp post, newspaper box and street fixture I walked past had a "no AI" sticker on it. At the same time, the developers inside the conference were engaged with AI tools. They were building with them, were curious about where they are going and talked about them with real enthusiasm.&lt;/p&gt; 
&lt;p&gt;That is a real tension and it is worth watching. It is not a dealbreaker. Developers building with AI are not the same group as the people putting stickers on lamp posts. It is still a signal about the local discourse and worth keeping in mind.&lt;/p&gt; 
&lt;h2&gt;Who I Connected With&lt;/h2&gt; 
&lt;p&gt;These are the specific connections worth noting:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Francesco Cuillia: an influencer relationship worth maintaining. We had a substantive conversation. It was not a cold contact.&lt;/li&gt; 
 &lt;li&gt;The CascadiaJS conference organiser: I deliberately secured an introduction and left a channel open. This matters for what comes next.&lt;/li&gt; 
 &lt;li&gt;Dylan (Atomic Object): the accelerator conversation has potential and deserves a proper follow-up.&lt;/li&gt; 
 &lt;li&gt;Amanda: head of developer relations at Vapi.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;What This Means for Next Time&lt;/h2&gt; 
&lt;p&gt;A traditional Deepgram booth at CascadiaJS is not the right fit yet. The audience skews junior, and a static exhibit does not match how this crowd learns best.&lt;/p&gt; 
&lt;p&gt;A workshop makes more sense. The appetite for hands-on, practical voice AI content was real. A session where developers build something, in a room full of people who are interested in it, is a far better fit for this crowd than a static booth.&lt;/p&gt; 
&lt;p&gt;The longer-term plan is to build a consistent presence in the Pacific Northwest developer community. This means no hard sells. It means showing up reliably and being useful. The channel with the conference organiser is the right one to pursue. A recurring Seattle touchpoint is worth building toward, once we have the infrastructure to make it repeatable and transferable to others.&lt;/p&gt; 
&lt;h2&gt;The Bottom Line&lt;/h2&gt; 
&lt;p&gt;CascadiaJS 2026 was worth attending. It did not deliver immediate pipeline. It delivered signal about where developers are struggling, what the Pacific Northwest tech community thinks about AI and which relationships are worth investing in.&lt;/p&gt; 
&lt;p&gt;The voice AI conversation is happening. Developers are building with it, thinking about it and running into friction with it. At this stage, community building means being present in those conversations as a helpful, knowledgeable person rather than as a brand doing marketing.&lt;/p&gt; 
&lt;p&gt;More will follow as we act on the conversations we had.&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=247600308&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fmktg.nhcarrigan.com%2Fblog%2Fcascadiajs-2026&amp;amp;bu=https%253A%252F%252Fmktg.nhcarrigan.com%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Fri, 12 Jun 2026 12:00:00 GMT</pubDate>
      <author>naomi@nhcarrigan.com (Naomi Carrigan)</author>
      <guid>https://mktg.nhcarrigan.com/blog/cascadiajs-2026</guid>
      <dc:date>2026-06-12T12:00:00Z</dc:date>
    </item>
    <item>
      <title>A Developer Community Where People Are Scared to Ask Questions Is Not a Community</title>
      <link>https://mktg.nhcarrigan.com/blog/scared-to-ask-questions</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://mktg.nhcarrigan.com/blog/scared-to-ask-questions" title="" class="hs-featured-image-link"&gt; &lt;img src="https://mktg.nhcarrigan.com/hubfs/Generated_Image_September_29_2026_-_9_34PM.jpg" alt="A Developer Community Where People Are Scared to Ask Questions Is Not a Community" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;I run the community spaces for a charity in the developer education space. If people are not comfortable asking questions, the entire thing falls apart.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;I run the community spaces for a charity in the developer education space. If people are not comfortable asking questions, the entire thing falls apart.&lt;/p&gt; 
&lt;p&gt;This is not only about making people feel welcome, comfortable and happy. It is also about ensuring that the friction of participating does not outweigh the benefits.&lt;/p&gt; 
&lt;p&gt;In our industry, it is especially important to be aware of this. We have a history of gatekeeping and of treating knowledge as wealth. New developers are sometimes met with condescension.&lt;/p&gt; 
&lt;p&gt;Communities that aim to be relaxed can still end up somewhat hostile towards the next generation. I encourage you to keep that in mind.&lt;/p&gt; 
&lt;p&gt;My first thought is that a strong volunteer moderation team would be a large benefit. They can address the more hostile or aggressive developer feedback and ease some of the internal tensions that we face.&lt;/p&gt; 
&lt;p&gt;A strong and explicit community policy is required. You need a good code of conduct and similar policies. Your team must also follow that policy. They must moderate consistently and effectively, and conduct their own interactions in the community in line with the policy.&lt;/p&gt; 
&lt;p&gt;Depending on the size of your community, you may benefit from dedicated spaces where newer developers can ask their questions without judgement. In those spaces, they do not have to see senior developers asking much more complex questions.&lt;/p&gt; 
&lt;p&gt;You will also need to track key performance indicators. Here are three that can help.&lt;/p&gt; 
&lt;p&gt;The first is member retention. Specifically, what percentage of the members who ask their first help question return to ask another?&lt;/p&gt; 
&lt;p&gt;The second is community-driven engagement. Are the help questions being answered by community members before you can respond?&lt;/p&gt; 
&lt;p&gt;The third is diversity among participants, especially across skill levels and marginalised identities. Are people who are often under-represented more equally distributed in your demographics?&lt;/p&gt; 
&lt;p&gt;Without these in place, your community will not be able to thrive.&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=247600308&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fmktg.nhcarrigan.com%2Fblog%2Fscared-to-ask-questions&amp;amp;bu=https%253A%252F%252Fmktg.nhcarrigan.com%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Wed, 10 Jun 2026 12:00:00 GMT</pubDate>
      <author>naomi@nhcarrigan.com (Naomi Carrigan)</author>
      <guid>https://mktg.nhcarrigan.com/blog/scared-to-ask-questions</guid>
      <dc:date>2026-06-10T12:00:00Z</dc:date>
    </item>
    <item>
      <title>AI, Bigots, and Consuming Media</title>
      <link>https://mktg.nhcarrigan.com/blog/ai-bigots-and-media</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://mktg.nhcarrigan.com/blog/ai-bigots-and-media" title="" class="hs-featured-image-link"&gt; &lt;img src="https://mktg.nhcarrigan.com/hubfs/Generated_Image_September_29_2026_-_9_34PM.jpg" alt="AI, Bigots, and Consuming Media" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;This is an opinion piece. As a precaution, I would like to remind everyone of the following:&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;This is an opinion piece. As a precaution, I would like to remind everyone of the following:&lt;/p&gt; 
&lt;p&gt;The opinions, arguments, and stances in this article are solely those of Naomi Carrigan, and do not reflect the opinions of NHCarrigan, its consumers or clients, its employees or representatives, or any other interested party. This article is provided for informational and opinion purposes only and does not constitute legal, medical, or professional advice. Readers should conduct their own research and consult appropriate professionals before making decisions based on this content. The author and NHCarrigan assume no liability for actions taken based on the information presented herein.&lt;/p&gt; 
&lt;p&gt;With the legal notice complete, I will begin. I have been seeing a lot of discourse around topics such as the fact that E33 used AI in the development process, and that Fortnite has Harry Potter skins.&lt;/p&gt; 
&lt;p&gt;Rather than working with short tweets, I decided to write my thoughts in a shareable post. This makes them easier to clarify.&lt;/p&gt; 
&lt;h2&gt;AI&lt;/h2&gt; 
&lt;p&gt;Generative AI is distasteful. AI art is soulless. All of it was trained on unethically sourced data (that is, intellectual property theft). I understand the hate for it.&lt;/p&gt; 
&lt;p&gt;I do not necessarily understand the hate for every single person who uses it. Game development studios using AI art in production games is awful, and we should absolutely hate them for that.&lt;/p&gt; 
&lt;p&gt;However, consider the girl in her garage using AI to help her visualise her character. Consider the immigrant using AI to help polish his written English. Consider the solo game developer using AI to flesh out a questline.&lt;/p&gt; 
&lt;p&gt;I am not convinced these people deserve the same level of vitriol. There are many ethical concerns with using generative AI. However, we should focus on the corporations that are creating a negative impact, rather than the indie creators who are trying to do their own thing.&lt;/p&gt; 
&lt;p&gt;The caveat is that if you ship a product with AI assets, that is very distasteful. If you use AI to replace actual humans in the creative pipeline when you can afford to pay those humans, you are evil. Corporations do this often, and corporations are bad.&lt;/p&gt; 
&lt;p&gt;Individuals who are trying to survive should not be hated. Chances are, they are trying to find a way to escape our oppressive capitalist oligarchy.&lt;/p&gt; 
&lt;p&gt;Please know that I am not trying to diminish the impact of generative AI. There is massive environmental damage. The people who label the data for the model to "train" with are often underpaid and overworked.&lt;/p&gt; 
&lt;p&gt;There is a huge difference between a hobbyist game developer working a minimum wage retail job, who cannot afford to hire a creative partner, and a triple-A studio that will not afford an artist because it would rather spend its funds on executive salaries.&lt;/p&gt; 
&lt;p&gt;Also, sitting in your basement using AI to improve your workflow and creativity is one thing. Sitting in your basement and tweeting a series of "AI art" saying "Look at what I made!" is different. Private use, in my opinion, is far less problematic than public distribution.&lt;/p&gt; 
&lt;p&gt;When we fight each other, it takes away from our fight against them. Do not lose sight of that.&lt;/p&gt; 
&lt;h2&gt;Bigots&lt;/h2&gt; 
&lt;p&gt;For those who have joined our &lt;a href="https://chat.nhcarrigan.com"&gt;Discord community&lt;/a&gt;, you likely saw the application to join the community. There is a direct question on it: "How do you feel about the LGBTQ+ community?"&lt;/p&gt; 
&lt;p&gt;It is a low-effort way to weed out trolls. Hateful bigots often cannot resist the temptation to use a slur.&lt;/p&gt; 
&lt;p&gt;We also get responses such as "Negative" or "I don't support it". My team asked me why I still approve those applications.&lt;/p&gt; 
&lt;p&gt;My reasoning is as follows. Part of truly curating a safe space is not only keeping the worst people out, but also identifying the "middle of the road" people who could be much more.&lt;/p&gt; 
&lt;p&gt;I have the patience and understanding for people who are misinformed. These are people who do not hold malice in their hearts, but have only heard the opinions of hateful bigots and therefore know nothing else.&lt;/p&gt; 
&lt;p&gt;These are people who could be supporters. Some may also be potential members of the LGBT+ community who have not been given the space to truly explore their identity.&lt;/p&gt; 
&lt;p&gt;People who are actively and outwardly hateful, or who enter the community and begin attacking members, are met with the swiftest retribution. For people who slip up, or who do not know better, I will take the time to help them become informed.&lt;/p&gt; 
&lt;p&gt;Many times, they become staunch supporters and regular members of my communities. Less commonly, they become hateful and are immediately banned.&lt;/p&gt; 
&lt;p&gt;It is important to me to give people a chance to be good.&lt;/p&gt; 
&lt;p&gt;Please note, however, that I do not put the burden of educating these people on anyone but myself. My staff are not expected to educate them. My members are not expected to educate them. My community has carte blanche to disavow someone who decides to be hateful instead of receptive.&lt;/p&gt; 
&lt;p&gt;Protect your boundaries. The things I am willing to tolerate when helping someone grow are very different from the things you are willing to tolerate. That is acceptable.&lt;/p&gt; 
&lt;p&gt;Your safety and well-being are paramount. Do not help others find the light at the risk of falling into darkness yourself.&lt;/p&gt; 
&lt;h2&gt;Consuming Media&lt;/h2&gt; 
&lt;p&gt;The current "hot button" issue is that Fortnite added Harry Potter skins. I understand the concern.&lt;/p&gt; 
&lt;p&gt;Not only is J.K. Rowling very active and vocal against LGBTQ+ rights, but the universe she has created is full of racist undertones and other serious red flags.&lt;/p&gt; 
&lt;p&gt;Although it was a very formative aspect of my childhood, I have long since given up on consuming Harry Potter media. I have no desire to engage with that world or give her any money.&lt;/p&gt; 
&lt;p&gt;The Hogwarts Legacy game is everything I had ever dreamed of when I was a child. I have still not played it. I never will, and I will not even pirate it. Seeing that world in the light I do now has ruined it for me.&lt;/p&gt; 
&lt;p&gt;Fortnite: I only played it a couple of times as part of a community event for a former client. It was not really to my taste, but I can see why people love it. They added Harry Potter skins, which is distasteful.&lt;/p&gt; 
&lt;p&gt;I do not see the point in demonising the people who still want to consume this media. I will not, and I will forever remain vocal about why.&lt;/p&gt; 
&lt;p&gt;Again, this is part of the principle that "us vs. us means no us vs. them". I will gladly educate people who consume this media on why they should not.&lt;/p&gt; 
&lt;p&gt;The world is bad. I am not going to pick a fight with someone who chooses Fortnite as their small shred of joy in a soul-crushing life.&lt;/p&gt; 
&lt;p&gt;We must also remember that there are going to be members of a marginalised community who find comfort, instead of pain, in problematic media.&lt;/p&gt; 
&lt;p&gt;People consuming the media may also not know. They may not have known originally, and know now, but are swayed by the power of nostalgia.&lt;/p&gt; 
&lt;p&gt;Remember also that there is a difference between consuming new media (e.g. Hogwarts Legacy) long after the creator has been outed as problematic, and consuming old media that you have owned for years.&lt;/p&gt; 
&lt;p&gt;Educate, do not attack. Call out the issue, not the person. Boycotts are powerful. Spread the word. Do not attack people who are not really the problem here.&lt;/p&gt; 
&lt;h2&gt;Bigger Fights&lt;/h2&gt; 
&lt;p&gt;There are much bigger fights to be had. Focus your attention on those, not on the people who could be fighting alongside you.&lt;/p&gt; 
&lt;p&gt;Focus on the policymakers, on the public figures, on the executives and corporate drones. Focus on the people who are actively oppressing you.&lt;/p&gt; 
&lt;p&gt;Save your energy for what matters.&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=247600308&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fmktg.nhcarrigan.com%2Fblog%2Fai-bigots-and-media&amp;amp;bu=https%253A%252F%252Fmktg.nhcarrigan.com%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Mon, 22 Dec 2025 12:00:00 GMT</pubDate>
      <author>naomi@nhcarrigan.com (Naomi Carrigan)</author>
      <guid>https://mktg.nhcarrigan.com/blog/ai-bigots-and-media</guid>
      <dc:date>2025-12-22T12:00:00Z</dc:date>
    </item>
    <item>
      <title>How to Think Algorithmically</title>
      <link>https://mktg.nhcarrigan.com/blog/how-to-think-algorithmically</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://mktg.nhcarrigan.com/blog/how-to-think-algorithmically" title="" class="hs-featured-image-link"&gt; &lt;img src="https://mktg.nhcarrigan.com/hubfs/Generated_Image_September_29_2026_-_9_34PM.jpg" alt="How to Think Algorithmically" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;If you have seen me help someone with their code, you may have noticed my unusual approach. I do not have them start by looking at their code. Instead, I ask them to explain their logic. What are they trying to accomplish? How do they think it should work?&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;If you have seen me help someone with their code, you may have noticed my unusual approach. I do not have them start by looking at their code. Instead, I ask them to explain their logic. What are they trying to accomplish? How do they think it should work?&lt;/p&gt; 
&lt;p&gt;This is not because I am lazy or trying to make things difficult. It is because I have learned, through years of teaching and debugging, that most coding problems are not coding problems. They are logic problems.&lt;/p&gt; 
&lt;h2&gt;The Problem with Starting with Code&lt;/h2&gt; 
&lt;p&gt;When you sit down at your keyboard and immediately start typing, you are trying to solve two problems at once. You are working out what you want to do, and working out how to make the computer do it.&lt;/p&gt; 
&lt;p&gt;This is similar to learning English by writing Shakespearean poetry. It produces a mess.&lt;/p&gt; 
&lt;p&gt;Say you are trying to write a FizzBuzz algorithm. If you start with code instead of logic, you might write something like this:&lt;/p&gt; 
&lt;pre class="javascript"&gt;&lt;code&gt;for (let i = 1; i &amp;lt;= 100; i++) {
  if (i % 3 === 0) {
    console.log("Fizz");
  }
  if (i % 5 === 0) {
    console.log("Buzz");
  }
  // ... wait, what about FizzBuzz?
}&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;You have already hit a problem, and you have not finished writing the code. If you had worked out the logic first, you would have identified this problem without dealing with the syntax.&lt;/p&gt; 
&lt;h2&gt;The Algorithmic Thinking Approach&lt;/h2&gt; 
&lt;p&gt;Instead of starting with code, start with plain language. Write out your instructions one step at a time, as if you were explaining them to Naomi, who will do exactly what you say and nothing more.&lt;/p&gt; 
&lt;p&gt;I will use FizzBuzz as an example. Here is how I would break it down:&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;First, I look at the number.&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by three?&lt;/li&gt; 
 &lt;li&gt;If it is, I say "Fizz".&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by five?&lt;/li&gt; 
 &lt;li&gt;If it is, I say "Buzz".&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by three and five?&lt;/li&gt; 
 &lt;li&gt;If it is, I say "FizzBuzz".&lt;/li&gt; 
 &lt;li&gt;If I have said nothing at all, I say the number.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;The crucial part is that I test this logic manually before I write any code. What happens if the number is 3? What should happen? What about 2? 5? 7? 15?&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;First, I look at the number. The number is 3.&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by three? Yes, 3 is divisible by three.&lt;/li&gt; 
 &lt;li&gt;If it is, I say "Fizz". So I say "Fizz".&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Saying a word ends my logical flow. I have said what I need to say, so I am done.&lt;/p&gt; 
&lt;p&gt;We are expected to say "Fizz" when we see 3, so this is correct. What about 5?&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;First, I look at the number. The number is 5.&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by three? No, 5 is not divisible by three.&lt;/li&gt; 
 &lt;li&gt;If it is, I say "Fizz". It is not, so I do not say anything.&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by five? Yes, 5 is divisible by five.&lt;/li&gt; 
 &lt;li&gt;If it is, I say "Buzz". So I say "Buzz".&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Again, the logic is correct. When I see 5, I should say "Buzz". What about 7?&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;First, I look at the number. The number is 7.&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by three? No, 7 is not divisible by three.&lt;/li&gt; 
 &lt;li&gt;If it is, I say "Fizz". It is not, so I do not say anything.&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by five? No, 7 is not divisible by five.&lt;/li&gt; 
 &lt;li&gt;If it is, I say "Buzz". It is not, so I do not say anything.&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by three and five? No, 7 is not divisible by three or five.&lt;/li&gt; 
 &lt;li&gt;If it is, I say "FizzBuzz". It is not, so I do not say anything.&lt;/li&gt; 
 &lt;li&gt;If I have said nothing at all, I say the number. So I say 7.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;This is also correct. When I see 7, I should say 7. What about 15?&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;First, I look at the number. The number is 15.&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by three? Yes, 15 is divisible by three.&lt;/li&gt; 
 &lt;li&gt;If it is, I say "Fizz". So I say "Fizz".&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;This is an issue. When I see 15, I should say "FizzBuzz".&lt;/p&gt; 
&lt;p&gt;Because saying something ends my logic, I need to check for three and five before I check them individually. In the current order, the "three and five" condition can never be reached.&lt;/p&gt; 
&lt;p&gt;So I fix my logic:&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;First, I look at the number.&lt;/li&gt; 
 &lt;li&gt;Is the number divisible by three and five?&lt;/li&gt; 
 &lt;li&gt;If it is, I say "FizzBuzz".&lt;/li&gt; 
 &lt;li&gt;Otherwise, is the number divisible by three?&lt;/li&gt; 
 &lt;li&gt;If it is, I say "Fizz".&lt;/li&gt; 
 &lt;li&gt;Otherwise, is the number divisible by five?&lt;/li&gt; 
 &lt;li&gt;If it is, I say "Buzz".&lt;/li&gt; 
 &lt;li&gt;Otherwise, I say the number.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Now I test again. For 3, the result is "Fizz", which is correct. For 5, the result is "Buzz", which is correct. For 15, the result is "FizzBuzz", which is correct. For 2, the result is 2, which is correct.&lt;/p&gt; 
&lt;p&gt;Once the logic is sound and all of my manual tests work, I write code.&lt;/p&gt; 
&lt;p&gt;This approach serves two purposes:&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;I work out the logic independently from the code, so I am not handling both logic and syntax at once.&lt;/li&gt; 
 &lt;li&gt;If my app does not work, I can look for an error in the code, because I know the logic is sound. I tested that before writing any code.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;The Importance of Precision&lt;/h2&gt; 
&lt;p&gt;Computers do only and exactly what you say. They cannot infer your intent. They cannot read between the lines. They follow your instructions to the letter, even when those instructions lead to nonsense.&lt;/p&gt; 
&lt;p&gt;I learned this recently while helping someone solve a pyramid-building problem. They were trying to build a pyramid out of a character, with a specified number of rows. Their initial instructions were something like:&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;Look at the string.&lt;/li&gt; 
 &lt;li&gt;Look at the integer.&lt;/li&gt; 
 &lt;li&gt;Write the string.&lt;/li&gt; 
 &lt;li&gt;Go to the next line.&lt;/li&gt; 
 &lt;li&gt;Write the same string from before again.&lt;/li&gt; 
 &lt;li&gt;Add two more of the same single string beside it.&lt;/li&gt; 
 &lt;li&gt;Repeat until you have the same number of rows as the integer.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;When I followed these instructions precisely, I got:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;x
xxx
xxxxx
xxxxxxx
xxxxxxxxx&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This is not a pyramid. A pyramid should be centred, like this:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    x
   xxx
  xxxxx
 xxxxxxx
xxxxxxxxx&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The instructions were missing a crucial detail: the spacing. They were also imprecise. The instruction "Add two more of the same single string beside it" does not say what "it" refers to or where the characters go. The instructions assumed I would understand the intent, but a computer, or a very literal Naomi following instructions, would not.&lt;/p&gt; 
&lt;p&gt;After several iterations, we refined the instructions to be precise:&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;Look at the string. It is what we want the pyramid to be built by.&lt;/li&gt; 
 &lt;li&gt;Look at the integer. It is the amount of rows we want.&lt;/li&gt; 
 &lt;li&gt;Add a number of spaces equal to the integer, and then write the string.&lt;/li&gt; 
 &lt;li&gt;Go to the next line.&lt;/li&gt; 
 &lt;li&gt;Write the same spaces string from before again, but get rid of one space, and write the string.&lt;/li&gt; 
 &lt;li&gt;Add two more of the same single string beside it.&lt;/li&gt; 
 &lt;li&gt;Write the whole space and string again from the last row, get rid of one space again, and add two more of the same string.&lt;/li&gt; 
 &lt;li&gt;Repeat step 7 until you have the same number of rows as the integer.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Now, when I follow these instructions precisely, I get the correct pyramid. The logic is sound. Only then do we start thinking about how to translate this into code.&lt;/p&gt; 
&lt;h2&gt;Translating Logic to Code&lt;/h2&gt; 
&lt;p&gt;Once your logic is sound and tested, translating it to code is much simpler. You are no longer working out what to do. You already know that. You are only working out how to express it.&lt;/p&gt; 
&lt;p&gt;Return to the pyramid example. We have our logic:&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;Look at the string and integer.&lt;/li&gt; 
 &lt;li&gt;For each row, calculate the number of spaces and the number of characters.&lt;/li&gt; 
 &lt;li&gt;Print the spaces, then the characters.&lt;/li&gt; 
 &lt;li&gt;Move to the next row.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Now we can think about the code structure.&lt;/p&gt; 
&lt;p&gt;First, we define our function:&lt;/p&gt; 
&lt;pre class="javascript"&gt;&lt;code&gt;function pyramid(characterToBuildPyramidWith, numOfRows) {

}&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;These are our steps:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;We need a loop to iterate through rows.&lt;/li&gt; 
 &lt;li&gt;For each row, we must know how many spaces to use. We use fewer spaces in each row.&lt;/li&gt; 
 &lt;li&gt;For each row, we must know how many characters to use. We use more characters in each row.&lt;/li&gt; 
 &lt;li&gt;Finally, we print our result.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;First, we create a loop to iterate through the number of rows. A standard &lt;code&gt;for&lt;/code&gt; loop is suitable for this.&lt;/p&gt; 
&lt;pre class="javascript"&gt;&lt;code&gt;function pyramid(characterToBuildPyramidWith, numOfRows) {
  for (let row = 0; row &amp;lt; numOfRows; row++) {

  }
}&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;We use &lt;code&gt;row&lt;/code&gt; instead of &lt;code&gt;i&lt;/code&gt; because it is less confusing.&lt;/p&gt; 
&lt;p&gt;For each row (so each iteration), we must know how many spaces to use. We have already worked that out in our logic:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Add a number of spaces equal to the integer Write the whole space and string again from the last row, get rid of one space again&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;So we start with &lt;code&gt;numOfRows&lt;/code&gt; spaces, and for each iteration we decrement the number of spaces by one. This means we can use &lt;code&gt;numOfRows - row&lt;/code&gt;. We put that in a variable so we do not lose track.&lt;/p&gt; 
&lt;pre class="javascript"&gt;&lt;code&gt;function pyramid(characterToBuildPyramidWith, numOfRows) {
  for (let row = 0; row &amp;lt; numOfRows; row++) {
    const spaces =  " ".repeat(numOfRows - row);
  }
}&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Next is the number of characters. Again, we refer back to our logic on paper:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Write the same spaces string from before again, but get rid of one space, and write the string. Write the whole space and string again from the last row, get rid of one space again, and add two more of the same string.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;We start with one character and add two more for every iteration. That is &lt;code&gt;row&lt;/code&gt; times two, plus one to account for the initial character.&lt;/p&gt; 
&lt;pre class="javascript"&gt;&lt;code&gt;function pyramid(characterToBuildPyramidWith, numOfRows) {
  for (let row = 0; row &amp;lt; numOfRows; row++) {
    const spaces = " ".repeat(numOfRows - row);
    const characters = characterToBuildPyramidWith.repeat(row * 2 + 1);
  }
}&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Our last step is:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Finally, print our result.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;We can print with a &lt;code&gt;console.log&lt;/code&gt; statement. We print our spaces followed by our characters.&lt;/p&gt; 
&lt;pre class="javascript"&gt;&lt;code&gt;function pyramid(characterToBuildPyramidWith, numOfRows) {
  for (let row = 0; row &amp;lt; numOfRows; row++) {
    const spaces = " ".repeat(numOfRows - row);
    const characters = characterToBuildPyramidWith.repeat(row * 2 + 1);
    console.log(spaces + characters);
  }
}&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Now we check our work by calling the function:&lt;/p&gt; 
&lt;pre class="javascript"&gt;&lt;code&gt;function pyramid(characterToBuildPyramidWith, numOfRows) {
  for (let row = 0; row &amp;lt; numOfRows; row++) {
    const spaces = " ".repeat(numOfRows - row);
    const characters = characterToBuildPyramidWith.repeat(row * 2 + 1);
    console.log(spaces + characters);
  }
}

pyramid("x", 5);&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Checking the console, I see:&lt;/p&gt; 
&lt;pre class="txt"&gt;&lt;code&gt;     x
    xxx
   xxxxx
  xxxxxxx
 xxxxxxxxx&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This looks like a pyramid, but it is shifted one space too far. The logic is off, so we go back to our logic on paper and do not touch the code yet.&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;Look at the string. It is what we want the pyramid to be built by.&lt;/li&gt; 
 &lt;li&gt;Look at the integer. It is the amount of rows we want.&lt;/li&gt; 
 &lt;li&gt;Add a number of spaces equal to the integer, and then write the string.&lt;/li&gt; 
 &lt;li&gt;Go to the next line.&lt;/li&gt; 
 &lt;li&gt;Write the same spaces string from before again, but get rid of one space, and write the string.&lt;/li&gt; 
 &lt;li&gt;Add two more of the same single string beside it.&lt;/li&gt; 
 &lt;li&gt;Write the whole space and string again from the last row, get rid of one space again, and add two more of the same string.&lt;/li&gt; 
 &lt;li&gt;Repeat step 7 until you have the same number of rows as the integer.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;The issue is in step 3.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;ol start="3" type="1"&gt; 
  &lt;li&gt;Add a number of spaces equal to the integer, and then write the string.&lt;/li&gt; 
 &lt;/ol&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;By adding a number of spaces equal to the integer, we failed to account for the initial pyramid character. We need to add one less space.&lt;/p&gt; 
&lt;p&gt;So we update our logic first:&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;Look at the string. It is what we want the pyramid to be built by.&lt;/li&gt; 
 &lt;li&gt;Look at the integer. It is the amount of rows we want.&lt;/li&gt; 
 &lt;li&gt;Add a number of spaces equal to the integer less one, and then write the string.&lt;/li&gt; 
 &lt;li&gt;Go to the next line.&lt;/li&gt; 
 &lt;li&gt;Write the same spaces string from before again, but get rid of one space, and write the string.&lt;/li&gt; 
 &lt;li&gt;Add two more of the same single string beside it.&lt;/li&gt; 
 &lt;li&gt;Write the whole space and string again from the last row, get rid of one space again, and add two more of the same string.&lt;/li&gt; 
 &lt;li&gt;Repeat step 7 until you have the same number of rows as the integer.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;When Logic Breaks During Coding&lt;/h2&gt; 
&lt;p&gt;This happens often. You have worked out your logic, tested it manually, and it looks correct. You start translating it to code, and halfway through, you realise it is not correct.&lt;/p&gt; 
&lt;p&gt;Maybe you cannot work out how to achieve a specific step. Maybe you discover an edge case you did not consider. Maybe the logic does not work the way you thought it would.&lt;/p&gt; 
&lt;p&gt;Stop coding immediately.&lt;/p&gt; 
&lt;p&gt;The instinct is to keep typing, to try to fix the problem in code, or to work around it. Do not do this. If your logic needs revision, that is a logic problem, not a code problem. Logic problems should be solved on paper, not in your editor.&lt;/p&gt; 
&lt;p&gt;Step away from your keyboard. Go back to your plain English instructions. Walk through them again manually. Where does the logic break? What did you miss? Which assumption turned out to be wrong?&lt;/p&gt; 
&lt;p&gt;Say you are working on the pyramid problem, and while coding you realise: "How do I know how many spaces to remove each time? Do I start with the full number of spaces, or one less?"&lt;/p&gt; 
&lt;p&gt;Instead of working this out in code, go back to your logic:&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;Add a number of spaces equal to the integer, and then write the string.&lt;/li&gt; 
 &lt;li&gt;Go to the next line.&lt;/li&gt; 
 &lt;li&gt;Write the same spaces string from before again, but get rid of one space, and write the string.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Test it manually. If the integer is 5, I start with 5 spaces. Then I go to the next line and have 4 spaces. Then 3 spaces. Then 2 spaces. Then 1 space. Then 0 spaces. This is consistent.&lt;/p&gt; 
&lt;p&gt;Now you can go back to your code with clarity. You know that for row 0, you need &lt;code&gt;numOfRows - 0 - 1&lt;/code&gt; spaces (which is 4 for 5 rows). For row 1, you need &lt;code&gt;numOfRows - 1 - 1&lt;/code&gt; spaces (which is 3). The pattern is clear because you worked it out in logic first.&lt;/p&gt; 
&lt;p&gt;Assume we have tested our change manually and it works. I am omitting that process here. Now we can update our code to reflect our logic change:&lt;/p&gt; 
&lt;pre class="javascript"&gt;&lt;code&gt;function pyramid(characterToBuildPyramidWith, numOfRows) {
  for (let row = 0; row &amp;lt; numOfRows; row++) {
    // Notice how this is the ONLY change I made. We aren't changing anything that isn't updated in the logic on paper.
    const spaces = " ".repeat(numOfRows - row - 1);
    const characters = characterToBuildPyramidWith.repeat(row * 2 + 1);
    console.log(spaces + characters);
  }
}

pyramid("x", 5);&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The output is:&lt;/p&gt; 
&lt;pre class="txt"&gt;&lt;code&gt;    x
   xxx
  xxxxx
 xxxxxxx
xxxxxxxxx&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The pyramid is now correct.&lt;/p&gt; 
&lt;p&gt;The key principle is this: if you discover a logic problem while coding, you have not discovered a coding problem. You have discovered that your logic was incomplete. Fix the logic first, test it manually, and then return to the code.&lt;/p&gt; 
&lt;p&gt;This may feel inefficient. You might think that you are close and should fix the one remaining issue in code. Fixing logic in code does not work, and it makes the problem larger.&lt;/p&gt; 
&lt;h2&gt;The Benefits of This Approach&lt;/h2&gt; 
&lt;p&gt;When you think algorithmically first, you gain several advantages.&lt;/p&gt; 
&lt;p&gt;You catch logic errors early. Instead of debugging why your code does not work, you debug why your logic does not work. Logic is much easier to debug than code.&lt;/p&gt; 
&lt;p&gt;You separate concerns. Logic and syntax are two different problems. Solve them separately, and you will solve them more effectively.&lt;/p&gt; 
&lt;p&gt;You build confidence. When your code does not work, you know it is a syntax issue and not a logic issue. That narrows down your debugging significantly.&lt;/p&gt; 
&lt;p&gt;You communicate better. When you can explain your logic in plain English, you can explain it to teammates, ask for help more effectively, and document your code more clearly.&lt;/p&gt; 
&lt;p&gt;You learn faster. By focusing on logic first, you develop stronger problem-solving skills that transfer across languages and technologies.&lt;/p&gt; 
&lt;h2&gt;The Takeaway&lt;/h2&gt; 
&lt;p&gt;Before you write code, do the following:&lt;/p&gt; 
&lt;ol type="1"&gt; 
 &lt;li&gt;Write out your logic in plain English, step by step.&lt;/li&gt; 
 &lt;li&gt;Test that logic by hand, using multiple test cases.&lt;/li&gt; 
 &lt;li&gt;Ideally, ensure you have tested every branch in your logical breakdown.&lt;/li&gt; 
 &lt;li&gt;Edit and adjust the logic when test cases fail.&lt;/li&gt; 
 &lt;li&gt;Once all of your manual test cases pass your hand-written logic, begin translating it into code.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;You will find that your code is cleaner, your bugs are fewer, and your problem-solving skills are stronger. If you can explain your logic to me in plain English and it works, then translating it to code is a matter of syntax. Syntax is the easy part.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Remember: computers do only and exactly what you say. Be precise, be thorough, and test your logic before you write your code.&lt;/p&gt; 
&lt;/blockquote&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=247600308&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fmktg.nhcarrigan.com%2Fblog%2Fhow-to-think-algorithmically&amp;amp;bu=https%253A%252F%252Fmktg.nhcarrigan.com%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Wed, 10 Dec 2025 12:00:00 GMT</pubDate>
      <author>naomi@nhcarrigan.com (Naomi Carrigan)</author>
      <guid>https://mktg.nhcarrigan.com/blog/how-to-think-algorithmically</guid>
      <dc:date>2025-12-10T12:00:00Z</dc:date>
    </item>
    <item>
      <title>Learning in Public</title>
      <link>https://mktg.nhcarrigan.com/blog/learning-in-public</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://mktg.nhcarrigan.com/blog/learning-in-public" title="" class="hs-featured-image-link"&gt; &lt;img src="https://mktg.nhcarrigan.com/hubfs/Generated_Image_September_29_2026_-_9_34PM.jpg" alt="Learning in Public" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;If you have ever tried to DM me, there is a very good chance that I advised you to ask me the question in a server instead. This is not only because I dislike DMs, although I do. Running multiple prolific communities means I am buried in DM requests. It is also for your benefit.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;If you have ever tried to DM me, there is a very good chance that I advised you to ask me the question in a server instead. This is not only because I dislike DMs, although I do. Running multiple prolific communities means I am buried in DM requests. It is also for your benefit.&lt;/p&gt; 
&lt;p&gt;When I redirect you to a public community instead of my DMs, I am encouraging you to learn in public. There are several reasons why this is important. This post covers them.&lt;/p&gt; 
&lt;h2&gt;Single Source of Truth&lt;/h2&gt; 
&lt;p&gt;When you ask me a question in DMs, I implicitly become the single source of truth. I hope the answer I give you is accurate, but I am wrong more often than I am right. Even this article should be treated with caution. The burden of fact checking my answer then falls entirely on you.&lt;/p&gt; 
&lt;p&gt;Consider a DM where you ask me "What is the time complexity of a merge sort?". Suppose I say it is &lt;code&gt;O(n log n)&lt;/code&gt;. It might be correct, or it might not. I am not sure, even after looking it up. However, my lack of knowledge is not the point. The point is that whatever information I give you is now your burden to confirm.&lt;/p&gt; 
&lt;p&gt;Now suppose you asked me that question in a public server. I give you the same answer: &lt;code&gt;O(n log n)&lt;/code&gt;. Because this is a public conversation, Jeremy could join and say "Actually it's &lt;code&gt;O(n)&lt;/code&gt; and here is a source". The burden of fact checking has shifted off your shoulders. The entire community can now weigh in and correct my incorrect answer. Generally, the collective knowledge of a group is more accurate than the isolated knowledge of an individual.&lt;/p&gt; 
&lt;h2&gt;Helping Others Grow&lt;/h2&gt; 
&lt;p&gt;Here is another benefit. I presume that, like many people, you agonised about reaching out to ask me your question. Suppose you asked me "How do I centre this &lt;code&gt;div&lt;/code&gt;?". I cannot speak to your emotions, but I can state that it is common for developers to be afraid of, embarrassed by, or too shy to ask questions. This is especially true of those in their early learning stages.&lt;/p&gt; 
&lt;p&gt;The fact that you worked up the courage to ask the question should be celebrated. It can be very frightening. When you ask me that question in DMs, no one else can see it. If you ask that question in a server, you and I can have our conversation in a public forum. Perhaps Danny had the same question but was too uncomfortable to ask it. Your initiative has now started a conversation from which Danny, and anyone else in the community, can potentially benefit.&lt;/p&gt; 
&lt;h2&gt;Networking&lt;/h2&gt; 
&lt;p&gt;If you regularly follow this blog, you have probably seen my &lt;a href="https://mktg.nhcarrigan.com/blog/networking"&gt;post about networking&lt;/a&gt; and how it is vital, especially in our current economic downturn. Asking questions in public is also a networking opportunity.&lt;/p&gt; 
&lt;p&gt;We have already covered at length how a DM is completely isolated, so I will move to the part where you ask me the question publicly. This time, you ask me about the considerations when choosing between JavaScript and Python. This question is a good catalyst for in-depth discussion. That is what happens in this scenario. We have a productive discussion, with multiple people contributing.&lt;/p&gt; 
&lt;p&gt;During this discussion, you have demonstrated your ability to learn, your curiosity for new information and your technical proficiency all at once. Because this happened in public, someone like Jessica might see the conversation thread. Perhaps her team has an opening for a junior developer. That conversation could lead her to reach out to you for a referral for that role. You never know who is reading a conversation.&lt;/p&gt; 
&lt;h2&gt;Building a Portfolio&lt;/h2&gt; 
&lt;p&gt;A lot of my work happens on Discord. It is not the best platform, because it is not indexed by search engines. Even so, your public conversations can become part of your portfolio. I have conversations from when I first started my learning journey that I still look back on fondly years later. Those conversations are a reminder of where I started, and thus how far I have come.&lt;/p&gt; 
&lt;p&gt;Your conversations are not only beneficial for your own self-actualisation. They also demonstrate your long-term growth and commitment to your craft. Suppose you have spent the last five years engaging in increasingly technical conversations, asking progressively more in-depth questions, and engaging in more complex discourse. You can use that on your portfolio to show your own evolution.&lt;/p&gt; 
&lt;p&gt;If your conversations are on an indexable platform, such as the &lt;a href="https://forum.freecodecamp.org"&gt;freeCodeCamp forum&lt;/a&gt;, you also get some free exposure through search engine results.&lt;/p&gt; 
&lt;h2&gt;Confidence Is Key&lt;/h2&gt; 
&lt;p&gt;I have been afraid to ask questions before too. It does get easier. I now ask questions about everything, all day. I am only confident enough to do so because I started asking those questions at the beginning of my learning journey. I have gone through the anxiety of wondering whether people think I am completely incompetent many times. It turns out that no one has ever thought that.&lt;/p&gt; 
&lt;p&gt;I know you will not believe me. I did not believe the people who told me the same thing when I first started learning. I can tell you repeatedly that it is fine, but the most powerful confirmation comes from experiencing it yourself. Asking your "silly" questions now, while you are still in your first steps of learning to code, will better prepare you to be comfortable asking those questions on the job. It is vital that you are comfortable doing so there.&lt;/p&gt; 
&lt;h2&gt;Learning by Teaching&lt;/h2&gt; 
&lt;p&gt;I am a strong supporter of the Socratic Method. I support it so strongly that I formally adopted it as our &lt;a href="https://www.freecodecamp.org/news/how-to-help-someone-with-their-code-using-the-socratic-method/"&gt;instructional approach at freeCodeCamp&lt;/a&gt;. I think there is a lot of value in being guided to reach the solution through your own cognitive reasoning.&lt;/p&gt; 
&lt;p&gt;Part of that process requires you to explain your understanding along the way. In explaining your understanding, you are effectively teaching others. When you do this in public, there is a significant chance that someone will ask questions about the parts they did not understand. This causes you to explain further. Every time you break something down and convey it in a way someone else can understand, you strengthen your own competencies.&lt;/p&gt; 
&lt;p&gt;This benefits everyone, and being challenged to articulate your thoughts can help you succeed in your professional career. Part of our work as developers involves explaining our ideas to others. Some audiences are technical, and some are not. All audiences need to be able to understand you. Getting that experience now positions you further for success in your career.&lt;/p&gt; 
&lt;h2&gt;The Takeaway&lt;/h2&gt; 
&lt;p&gt;The key takeaway is this:&lt;/p&gt; 
&lt;p&gt;The next time you want to send me a DM, consider all of the benefits you lose by asking me a question privately instead of in a public community.&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=247600308&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fmktg.nhcarrigan.com%2Fblog%2Flearning-in-public&amp;amp;bu=https%253A%252F%252Fmktg.nhcarrigan.com%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Fri, 31 Oct 2025 12:00:00 GMT</pubDate>
      <author>naomi@nhcarrigan.com (Naomi Carrigan)</author>
      <guid>https://mktg.nhcarrigan.com/blog/learning-in-public</guid>
      <dc:date>2025-10-31T12:00:00Z</dc:date>
    </item>
    <item>
      <title>Networking</title>
      <link>https://mktg.nhcarrigan.com/blog/networking</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://mktg.nhcarrigan.com/blog/networking" title="" class="hs-featured-image-link"&gt; &lt;img src="https://mktg.nhcarrigan.com/hubfs/Generated_Image_September_29_2026_-_9_34PM.jpg" alt="Networking" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;People often ask me how I found my success. The answer is a strange combination of unhealthy dedication and "right place, right time" luck. I will also share a secret:&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;People often ask me how I found my success. The answer is a strange combination of unhealthy dedication and "right place, right time" luck. I will also share a secret:&lt;/p&gt; 
&lt;p&gt;All of my success has come through my network. Every job opportunity and each client has come through people who saw or knew what I could do and believed that I would be the right fit.&lt;/p&gt; 
&lt;p&gt;This post describes how to build a professional network and move from "complete strangers" to a job. There are a few key steps.&lt;/p&gt; 
&lt;h2&gt;1. Add Value Before You Ask for Value.&lt;/h2&gt; 
&lt;p&gt;I go into every interaction, and every new relationship I foster, with the mentality of "What can I do to make this person's life better?" It may seem tempting to think about what a new colleague can do for you, but that is a terrible way to form a new friendship.&lt;/p&gt; 
&lt;p&gt;Consider the reverse. If someone only wanted to get to know you because they wanted something from you, you would feel bad. You should not do the same thing to another person.&lt;/p&gt; 
&lt;p&gt;By approaching every potential connection with a genuine desire to help them in some way, I have found that I form stronger professional relationships. Treat it as a long-term investment. If you help someone today, they are more likely to help you tomorrow.&lt;/p&gt; 
&lt;h2&gt;2. Learn in Public.&lt;/h2&gt; 
&lt;p&gt;All of my products, with the exception of confidential proprietary software built for clients, are open source. I do this for a number of reasons, the first being that I believe in the value open-source software adds to our industry.&lt;/p&gt; 
&lt;p&gt;Making everything open source has other benefits. Arguably one of the most important is that my entire learning journey becomes public. Version controlled repositories become roadmaps of my growth. Issue discussions become evidence of my ability to collaborate. Pull requests demonstrate my leadership proficiency.&lt;/p&gt; 
&lt;p&gt;In addition to this, I still expand my presence. I post progress updates on BlueSky. My Discord community has a live log of everything I do on my Gitea instance. I share product announcements on LinkedIn.&lt;/p&gt; 
&lt;p&gt;The goal here is two-fold. First, to demonstrate competence. Second, to make sure I am always at the forefront of people's minds. These are essential components in ensuring you are the one people reach out to with new employment opportunities.&lt;/p&gt; 
&lt;h2&gt;3. Know Your Platforms.&lt;/h2&gt; 
&lt;p&gt;The caveat to learning in public is that you must understand the target audience for each platform. LinkedIn represents my professional and polished brand. I do not use LinkedIn to post daily progress updates, because I want the people there to see my "best foot forward" in my finished results, rather than my rough works in progress.&lt;/p&gt; 
&lt;p&gt;BlueSky, on the other hand, is where I might post more of those "microdose" updates. The goal with a platform like that is less to present a professional brand, and more to ensure you are constantly in people's feeds. Things get buried very quickly, so this is where you want rougher and faster content.&lt;/p&gt; 
&lt;p&gt;Discord, however, creates a more personal and tight-knit community. In these spaces I give people the opportunity to get to know me. This is where I post casual content, talk about other interests, and show who Naomi is beyond the developer.&lt;/p&gt; 
&lt;p&gt;Always keep the target audience in mind. The last thing you want is to publish something on a platform that hurts you rather than helping you.&lt;/p&gt; 
&lt;h2&gt;4. Be Kind.&lt;/h2&gt; 
&lt;p&gt;None of us are perfect. I have my bad days too. But it is critical that we put our best effort into treating people with kindness and respect. There are exceptions to that. For example, I do not tolerate bigotry in my spaces. It is still a decent general rule to follow.&lt;/p&gt; 
&lt;p&gt;I treat every conversation as if it might be posted publicly, sent to my boss, or shared with my sister. I want someone who is outside the conversation but looking in to see me in a positive light. I want my interactions to improve people's impressions of me, not detract from them.&lt;/p&gt; 
&lt;p&gt;This also strengthens my relationship with the person in question. Someone who is fond of me, who feels I respect them and treat them with dignity, is far more likely to put my name forward when they need to fill a role on their team than someone who thinks I am cruel or unkind.&lt;/p&gt; 
&lt;p&gt;It also has the extra benefit of making you feel good. It feels good to be kind. It is nice to see the positive effect you have on the people around you. When things get particularly rough, I like to look back on all of the people who are happier for having known me.&lt;/p&gt; 
&lt;h2&gt;5. Have Fun.&lt;/h2&gt; 
&lt;p&gt;A huge portion of my success comes from the fact that I love what I do. I bring positive energy, excitement, and enthusiasm into my work, my communities, and my professional relationships because being a developer and a community leader is fun.&lt;/p&gt; 
&lt;p&gt;I get excited when I can talk about the things I am building. I give passionate presentations when the opportunity arises. My desire to learn helps me stay in tune with the latest technologies. All of this helps people see how much I love this work, and it is that endless drive which makes me a great candidate for their teams.&lt;/p&gt; 
&lt;p&gt;The more you enjoy your work, the more you subconsciously position yourself for successful connections. The more you enjoy your work, the more likely you are to find your success.&lt;/p&gt; 
&lt;h2&gt;Remember&lt;/h2&gt; 
&lt;p&gt;Every conversation is a potential networking opportunity.&lt;/p&gt; 
&lt;p&gt;There is no "one true path" here. There are no guaranteed ways to land a job. There is no certainty in any of this. I share this advice because it has been my own journey to success, and I hope that it benefits some of you. I am under no illusion that it will work for every person, every time.&lt;/p&gt; 
&lt;p&gt;If you follow these guidelines and do not get a job, at the very least you should have made some new friends. That is always a win.&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=247600308&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fmktg.nhcarrigan.com%2Fblog%2Fnetworking&amp;amp;bu=https%253A%252F%252Fmktg.nhcarrigan.com%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Tue, 08 Jul 2025 12:00:00 GMT</pubDate>
      <author>naomi@nhcarrigan.com (Naomi Carrigan)</author>
      <guid>https://mktg.nhcarrigan.com/blog/networking</guid>
      <dc:date>2025-07-08T12:00:00Z</dc:date>
    </item>
    <item>
      <title>Community Curation</title>
      <link>https://mktg.nhcarrigan.com/blog/community-curation</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://mktg.nhcarrigan.com/blog/community-curation" title="" class="hs-featured-image-link"&gt; &lt;img src="https://mktg.nhcarrigan.com/hubfs/Generated_Image_September_29_2026_-_9_34PM.jpg" alt="Community Curation" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;For those who do not know me, I am Naomi and my pronouns are she/her. I am a Developer Experience Engineer at Deepgram, with a heavy focus on community tooling and infrastructure, and the Community Manager at freeCodeCamp. I have a strong background in community building and community management. This post explains how you can build an inclusive and welcoming community for all of your users.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;For those who do not know me, I am Naomi and my pronouns are she/her. I am a Developer Experience Engineer at Deepgram, with a heavy focus on community tooling and infrastructure, and the Community Manager at freeCodeCamp. I have a strong background in community building and community management. This post explains how you can build an inclusive and welcoming community for all of your users.&lt;/p&gt; 
&lt;h2&gt;Why Is Creating Inclusive Online Spaces So Important?&lt;/h2&gt; 
&lt;p&gt;People of marginalised identities continue to face discrimination in professional environments, both online and in person. These barriers increase the friction they encounter when trying to succeed in our industry. By creating safe spaces for people regardless of their identity, we can help remove some of those barriers and build a healthier culture.&lt;/p&gt; 
&lt;p&gt;Online platforms such as Discord or Reddit also offer a certain level of pseudo-anonymity. This means that a medium like a Discord server can provide a space where people can safely explore their identity. The encouraging community at TweetShift helped me find my own identity and determine my path toward happiness in life.&lt;/p&gt;  
&lt;img style="grid-area: img1;" width="300" src="https://cdn.nhcarrigan.com/blog/cultivating-community-1.png" alt="An infographic from the Women Tech Network featuring statistics about LGBTQ+ representation in the workforce. The image has an orange-to-yellow gradient background at the top with 'womentech network' in white lowercase letters. The main content is on a light gray background with 'ONLY' in large gray text, followed by '2-3%' in colorful letters (orange 2, yellow hyphen, green 3, blue percent sign). Below that, gray text reads 'OF THE WORKFORCE IDENTIFY AS' followed by 'LGBTQ+' in rainbow colors matching the pride flag (red L, orange G, yellow B, green T, blue Q, purple plus sign). On the right side are six raised fists in pride flag colors (red, orange, yellow, green, blue, purple) with celebratory confetti or streamers scattered around them in matching colors."&gt; 
&lt;img style="grid-area: img2;" width="300" src="https://cdn.nhcarrigan.com/blog/cultivating-community-2.png" alt="A colorful infographic from WomenTech Network featuring a gradient background that transitions from orange and yellow at the top to purple and teal at the bottom. The WomenTech Network logo appears at the top in white text. The main statistic is displayed in large white text stating '46% OF LGBTQ+ EMPLOYEES ARE NOT OPEN ABOUT THEIR IDENTITIES AT WORK.' Below this text is a circular chart with a dark purple center containing '46%' in white text, surrounded by a ring that is approximately 46% yellow and 54% light gray, visually representing the statistic. The background features subtle decorative elements including rounded rectangular shapes in darker tones that complement the gradient color scheme."&gt; Statistics sourced from a www.womentech.net blog post  
&lt;p&gt;The impact that the LGBT community has on our industry is often understated. Roughly 3% of our industry's workforce actively identify as LGBT, but 46% of the people who would identify as LGBT do not feel safe to do so. This means that the figure could be as high as 6%. By cultivating inclusive and public tech spaces, we open doors for the future generation of developers. LGBT people who are looking for mentors or role models "like themselves" can find those people and engage with them in a safe community.&lt;/p&gt; 
&lt;h2&gt;How Can I Create an Inclusive Community?&lt;/h2&gt; 
&lt;p&gt;There are several things you can do.&lt;/p&gt;  
&lt;img width="600" src="https://cdn.nhcarrigan.com/blog/cultivating-community-3.png" alt="A screenshot of a pronoun selection interface with a dark purple gradient background. At the top in white text is the heading 'Let's get to know each other! What are your pronouns?' with a red asterisk indicating a required field. Below are nine pronoun options arranged in a 3x3 grid: Top row: 'Fae/Faer' (with description about faer friends asking if the server belonged to faer), 'He/Him' (with description about his friends asking if the server belonged to him), and 'It/Its' (with description about its friends asking if the server belonged to it). Middle row: 'She/Her' (highlighted with a blue border and checkmark, indicating it's selected, with description about her friends asking if the server belonged to her), 'They/Them' (with description about their friends asking if the server belonged to them), and 'Xe/Xem' (with description about xyr friends asking if the server belonged to xem). Bottom row: 'Ze/Zir' (with description about zir friends asking if the server belonged to zir), 'Ask' (for those whose pronouns change frequently or prefer people ask), and 'I use neopronouns' (noting that the ones used aren't listed). At the bottom are two additional options: 'Any' (indicating no preference for how to be referred to) and 'Use my name' (preferring to be referred to by name rather than pronouns). The interface notes 'Choose all that apply' at the bottom left."&gt; The pronoun roles available in the freeCodeCamp Discord.  
&lt;p&gt;The first example is specific to Discord. You can provide pronoun roles that members select to state how they wish to be addressed. There are two key components to this. First, in every community I run, I make these roles mandatory. This removes the assumption that only LGBT people would select pronouns. When this is the standard for everyone, people are no longer "outing themselves" just for selecting a role. Second, it is important to provide a decent range of options. Too often, I see roles limited to "she/her", "he/him", and "they/them". As the LGBT community grows, we continue to see people using pronouns such as "it/its", or neopronouns such as "fae/faer" or "ze/zyr". Offering roles to cover your community's less common pronouns creates a more welcoming space. For people who use neopronouns that you do not have a role for, an "ask my pronouns" or "I use neopronouns" role can help.&lt;/p&gt; 
&lt;p&gt;Your next task is to create community policies, such as a Code of Conduct, that specifically enforce an inclusive environment. For example, &lt;a href="https://docs.nhcarrigan.com/community/coc"&gt;my community's Code of Conduct&lt;/a&gt; includes wording that prohibits challenging or questioning someone's identity (such as "those aren't real pronouns"), and prohibits debates about the rights of marginalised communities (such as "trans people don't need to use the restroom they identify with"). If you are interested, I can help you write your own Code of Conduct.&lt;/p&gt; 
&lt;p&gt;These policies are meaningless if they are not enforced. When you enforce them, you must be aware of how your enforcement decision might appear to the community. For example, if someone uses a slur, then tries to justify it as "I was just joking", it may seem tempting to let them off with a warning. In such a case, I would immediately ban the user from the community. This sets the precedent for the other members that toxic behaviour will not be tolerated, even as a "joke".&lt;/p&gt; 
&lt;p&gt;You also need to be aware of your own language choices. As a community leader, you need to set the example for the rest of your members. Important considerations include being aware of people's pronouns, avoiding language like "cr*zy" that might seem acceptable but has a history of being used to harm people, and carrying yourself in a way that demonstrates how you want your members to interact. You may also want to avoid phrases like "Hey guys", which implicitly assume that "male" is the default gender.&lt;/p&gt; 
&lt;p&gt;Finally, space must be made for people who are uninformed rather than bigoted. Someone who comes in and comments that trans people should not have bathroom access is bigoted. Someone who comes in and asks why the bathroom legislation seems like "such a big deal" might be uninformed. Creating a space where people can ask questions and become educated will empower them to become positive allies, or even discover their own identity.&lt;/p&gt; 
&lt;h2&gt;How Does This Help My Business or Organisation?&lt;/h2&gt; 
&lt;p&gt;One of the biggest benefits of curating these communities is that you can avoid negative optics. For example, consider Hyprland. For those who are not familiar, Hyprland is a window manager for Linux that gained considerable popularity for the feature set it offers.&lt;/p&gt;  
&lt;img width="600" src="https://cdn.nhcarrigan.com/blog/cultivating-community-4.png" alt="A screenshot of text discussing issues with Hyprland's community. The text is displayed in a monospace font on a light gray background. The content describes how the author became aware of problems with hateful incidents in Hyprland's Discord community. The text explains that the community tolerates hate speech when presented with 'a veneer of decorum or sarcasm' and dismisses it as jokes when challenged. It specifically mentions an incident where Discord moderators harassed a transgender user by changing their pronouns from 'they/she' to 'who/cares' using moderator privileges. The text concludes by stating that community leaders set examples that define acceptable behavior, and that "&gt; Anecdote about Hyprland's community, sourced from drewdevault.com  
&lt;p&gt;However, the community around this application has a very bad history of bigotry and harassment of marginalised people.&lt;/p&gt;  
&lt;img width="600" src="https://cdn.nhcarrigan.com/blog/cultivating-community-5.png" alt="A Discord message from user 'anna [it/its]' with a green online indicator, posted on 24/03/2025 at 13:28. The message is tagged with '@minor announcements' and titled 'new decision re. hyprland:'. The message content explains that hyprland is a Wayland compositor implementing a tiling window manager with gestures and animations, noting that the main developer vaxry has a controversial internet presence they don't want to discuss. The message states that asking for support with hyprland is acceptable, as is mentioning its use, but requests that discussions about vaxry's behavior or political views be kept to the #controversial channel, especially advising against bringing up the topic when someone mentions hyprland outside of that channel. The word '(edited)' appears at the end of the message."&gt; An announcement made in the Arch Linux Community Discord.  
&lt;p&gt;The negative optics became so bad that the Arch Linux Discord community had to explicitly ban discussions about the controversy. Every time Hyprland was mentioned, it turned into "YOU USE THAT? DO YOU HATE LGBT PEOPLE??". This is not a phrase you want people to use when describing your organisation.&lt;/p&gt; 
&lt;p&gt;On the other hand, you can also gain positive word of mouth advertising. Members of marginalised identities who feel safe in your community are much more likely to become evangelists. A queer person who has a better experience with your community than with a competitor's community, as an example, will tend to recommend your products first, because they felt safe in your space. They may do so even if your product seems inferior to the competitor's to them.&lt;/p&gt; 
&lt;p&gt;This can also lead to new talent for your teams. When marginalised people feel safe in your public communities, the impression can be created that your internal spaces and teams are also safe. This means that LGBT people might be more likely to apply to work for you when you have a healthier community.&lt;/p&gt; 
&lt;p&gt;All of these create opportunities for revenue. Whether you are driving sales and conversions by providing comfortable opportunities for users to explore your product, or capturing new talent that other companies might miss out on, you can use your community health to create growth for your organisation.&lt;/p&gt; 
&lt;h2&gt;Who Can Help With This?&lt;/h2&gt; 
&lt;p&gt;First, your community leaders are the most important champions here. When your leaders conduct themselves in a way that embodies the inclusive environment you want for your community, you set the standard for engagement which your community members will follow.&lt;/p&gt; 
&lt;p&gt;Your community members can also help. By following the guidelines you have established and ensuring their behaviour is in line with those guidelines, they can contribute to the well-being of the community. It does not stop there. When a community is truly successful at inclusion, members will help inform each other about opportunities to improve and grow.&lt;/p&gt; 
&lt;p&gt;Everyone can help with this. Even people who are not actively part of your community can still be valuable sources of information and opportunities for growth.&lt;/p&gt; 
&lt;p&gt;This brings me to my final point:&lt;/p&gt; 
&lt;h2&gt;Always Keep an Open Mind&lt;/h2&gt; 
&lt;p&gt;None of us will have all of the answers. That is simply impossible. Even as someone who lives these experiences daily, I do not have all of the answers. It is important that we allow ourselves the space to be wrong, the opportunity to improve, and the ability to handle our missteps with grace.&lt;/p&gt; 
&lt;p&gt;I look forward to seeing the positive impact you will have on your communities. If you have any questions or would like to schedule some time to explore this further, please &lt;a href="https://chat.nhcarrigan.com"&gt;reach out in our Discord&lt;/a&gt;. Thank you for your time, and happy Pride.&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=247600308&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fmktg.nhcarrigan.com%2Fblog%2Fcommunity-curation&amp;amp;bu=https%253A%252F%252Fmktg.nhcarrigan.com%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Thu, 26 Jun 2025 12:00:00 GMT</pubDate>
      <author>naomi@nhcarrigan.com (Naomi Carrigan)</author>
      <guid>https://mktg.nhcarrigan.com/blog/community-curation</guid>
      <dc:date>2025-06-26T12:00:00Z</dc:date>
    </item>
    <item>
      <title>Building an AI DM</title>
      <link>https://mktg.nhcarrigan.com/blog/building-an-ai-dm</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://mktg.nhcarrigan.com/blog/building-an-ai-dm" title="" class="hs-featured-image-link"&gt; &lt;img src="https://mktg.nhcarrigan.com/hubfs/Generated_Image_September_29_2026_-_9_34PM.jpg" alt="Building an AI DM" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;I have been exploring AI more lately. One of the things I built a while ago is a Discord bot that you can message directly to play a Dungeons and Dragons style role-playing game. The bot focuses on storytelling rather than game mechanics.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;I have been exploring AI more lately. One of the things I built a while ago is a Discord bot that you can message directly to play a Dungeons and Dragons style role-playing game. The bot focuses on storytelling rather than game mechanics.&lt;/p&gt; 
&lt;p&gt;The bot is intended to guide you through an adventure. The user keeps the freedom of choice and shapes the direction of the story.&lt;/p&gt; 
&lt;p&gt;Today, I updated this bot, as well as my other two AI tools, to use the latest Claude Sonnet 4 model. This model produces content of a much higher quality. The results are engaging, entertaining, and humorous.&lt;/p&gt; 
&lt;p&gt;As an example, here is the adventure I played today. The AI is purple, and my responses are blue.&lt;/p&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;Adjusts my pigtails while examining you with cold, analytical eyes&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;Ah, Naomi. I've been expecting you. The threads of fate have drawn you to my chamber at a most... interesting time.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;Gestures to a shimmering portal swirling with ethereal energy&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;I've detected a disturbance in the remote village of Ravencross. The locals speak of strange lights in the ancient forest and whispers in the night. More concerning are the reports of villagers vanishing without a trace. My research suggests something arcane is at work, but I require... additional data.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;Draws a crystalline orb from the folds of my purple dress&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;I can send you there through this portal, should you wish to investigate. Or perhaps you have other matters you'd prefer to explore? The choice of how to proceed is yours, and I shall weave the tale accordingly.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;Watches you expectantly with an emotionless gaze&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;What would you like to do, Naomi?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;Let's go check out Ravencross!&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;A cold smirk forms on my face as I raise the crystalline orb&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;How fortuitous. Your eagerness may prove... useful.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I wave my hand, and the portal flares with intense light&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;The magic envelops you, and when your vision clears, you find yourself standing on the outskirts of Ravencross as dusk approaches. The village is small, perhaps two dozen buildings at most, with thatched roofs and smoking chimneys. A thick, ancient forest looms behind the settlement, its trees unnaturally still despite the evening breeze.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;My voice echoes in your mind&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The tavern, 'The Crow's Rest,' appears to be the social center of this... quaint establishment. Though I also observe the village elder's house to the north, marked by its distinctive red door. And of course... &lt;em&gt;a note of intrigue enters my voice&lt;/em&gt; ...there are those peculiar lights flickering between the trees at the forest's edge."&lt;/p&gt; 
 &lt;p&gt;Something about the atmosphere feels wrong - too quiet, too tense. A few villagers hurry to get indoors as darkness approaches, casting fearful glances toward the forest.&lt;/p&gt; 
 &lt;p&gt;Where would you like to begin your investigation, Naomi?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;The best place to get information is the tavern, of course! So let's head there.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;My spectral voice carries a hint of approval&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Ah yes... humans do tend to loosen their tongues when gathered around spirits of the fermented variety."&lt;/p&gt; 
 &lt;p&gt;As you approach The Crow's Rest, the worn wooden sign creaks in the wind, its painted crow emblem faded with age. The warmth and light spilling from the windows provide a stark contrast to the growing darkness outside.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;The door groans as you enter&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;The conversations within noticeably dim as several pairs of eyes turn to assess the newcomer. Inside, you find about a dozen villagers scattered among rough-hewn tables. A large fireplace crackles along one wall, while a gruff-looking barkeep with an impressive mustache wipes down the counter with a somewhat questionable rag.&lt;/p&gt; 
 &lt;p&gt;In one corner, an elderly woman in a patched shawl rocks slowly in her chair, muttering to herself. Near the fire, three men huddle close, speaking in hushed tones. At the bar, a young woman with red-rimmed eyes stares into her mug - you overhear someone referring to her as "poor Martha, lost her brother two nights ago."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;My cold voice whispers in your mind&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The atmosphere is... ripe with tension. And fear. Most interesting."&lt;/p&gt; 
 &lt;p&gt;How would you like to proceed, Naomi?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I approach the bar and ask for a drink and some bread.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;A whisper of amusement colors my mental voice&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"A prudent approach. Establish yourself as a customer first..."&lt;/p&gt; 
 &lt;p&gt;The barkeep eyes you warily while running the questionable rag over a wooden mug. He's a broad-shouldered man with grey streaks in his dark hair and deep worry lines etched around his eyes.&lt;/p&gt; 
 &lt;p&gt;"Aye, we've got ale and bread," he says gruffly, filling the mug from a nearby barrel. "Three copper for both. Though if you're a traveller, I'd advise you not to linger in Ravencross. Not with..." He glances nervously at the windows, where darkness has fully settled. "...things being as they are."&lt;/p&gt; 
 &lt;p&gt;He places a mug of amber ale and a chunk of crusty bread before you. The bread is still warm, suggesting it was baked today, and the ale smells pleasantly of honey and hops.&lt;/p&gt; 
 &lt;p&gt;The young woman - Martha - seems to take notice of your presence now, casting sideways glances in your direction. The three men by the fire have also lowered their voices further, though you catch fragments of words like "lights" and "screams."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;My voice carries a calculating tone&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The barkeep seems... informatively anxious. And that grieving sister might have valuable insights about her brother's disappearance. Choose your next words carefully, Naomi."&lt;/p&gt; 
 &lt;p&gt;What would you like to do?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;Wait, why should I not stay? Is something wrong? Could I help in any way?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;I observe with cold interest as the barkeep's expression darkens&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;The man leans forward, lowering his voice. "Listen here, stranger. Your coin's welcome, but offering help..." He shakes his head. "Three people gone in the past week. Just... vanished. My own daughter included."&lt;/p&gt; 
 &lt;p&gt;At the mention of his daughter, Martha lets out a small sob and takes a deep drink from her mug.&lt;/p&gt; 
 &lt;p&gt;The barkeep continues, his voice barely above a whisper now. "It started with those lights in the forest. Dancing lights, like wisps. Beautiful, they say. Calling... beckoning. Then the whispers started. People hearing their names on the wind at night." His knuckles whiten as he grips the counter. "My Elena... she said she heard her mother calling her. Her mother who's been dead these past five years."&lt;/p&gt; 
 &lt;p&gt;One of the men by the fire speaks up suddenly, his voice carrying a slight tremor. "Tell her about the symbols, Garrett! The ones that appeared on the trees!"&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;My spectral voice holds a note of keen interest&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Symbols, you say? How... fascinating. Do press him about those, Naomi. Such markings often hold significant magical properties."&lt;/p&gt; 
 &lt;p&gt;The barkeep - Garrett - shoots the man an irritated look, but the damage is done. The tension in the room has shifted, and all eyes are now fixed on you with a mixture of fear and desperate hope.&lt;/p&gt; 
 &lt;p&gt;What would you like to ask about first?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;Yes, tell me about these symbols. Could you draw one so I could look at it?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;A cold tingle of arcane energy ripples through the air&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Ah... now we're getting somewhere."&lt;/p&gt; 
 &lt;p&gt;Garrett hesitates, then reaches beneath the counter and produces a piece of charcoal and a scrap of parchment. His hand trembles slightly as he draws - a circular pattern with angular lines crossing through it, like a twisted star caught in a ring of thorns.&lt;/p&gt; 
 &lt;p&gt;The elderly woman in the corner suddenly stops rocking and speaks in a cracked voice: "Just like the one that burned bright on poor Thomas's door the night before he disappeared." She makes a warding gesture with her gnarled hands.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;My voice holds a note of recognition&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"That symbol... most concerning. It bears similarities to ancient fae markings, though corrupted somehow. This is no simple woodland sprite at work."&lt;/p&gt; 
 &lt;p&gt;Martha finally turns fully toward you, her eyes desperate. "My brother James... he tried to copy one of these symbols he found. Said he wanted to study it. The next night..." She chokes back a sob. "The next night, the lights came right up to his window. We found his bed empty in the morning, the sheets cold like he'd been gone for hours."&lt;/p&gt; 
 &lt;p&gt;The paper with the symbol seems to catch the firelight oddly, the shadows of the marks appearing deeper than they should.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;My tone grows more serious&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Be cautious, Naomi. Even copying such symbols can draw... attention."&lt;/p&gt; 
 &lt;p&gt;What would you like to do with this information?&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;At this point, I shared the conversation with some of my colleagues on Discord. They suggested that I draw the symbol on the walls. I followed that suggestion.&lt;/p&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I take the charcoal and start drawing the symbol all over the tavern walls.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;My spectral form crackles with sudden alarm&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"You absolute fool!"&lt;/p&gt; 
 &lt;p&gt;The reaction in the tavern is instant and chaotic. Garrett leaps over the counter with surprising agility, trying to stop you, but you've already managed to mark several walls. Martha screams and bolts for the door, while the men by the fire scramble backwards, knocking over their chairs.&lt;/p&gt; 
 &lt;p&gt;The air grows thick and heavy, like honey mixed with static. The flames in the hearth flicker violently, casting wild shadows that seem to dance and twist around your freshly drawn symbols. A high-pitched humming begins to fill the room, and through the windows, you can see points of pale, ghostly light beginning to gather in the darkness outside.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;My voice is sharp with cold fury&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Congratulations. You've just turned this tavern into a beacon for whatever entity has been hunting these people. I hope you have a plan beyond this reckless display of ignorance."&lt;/p&gt; 
 &lt;p&gt;The symbols on the walls are starting to emit a faint, sickly green glow. The elderly woman has begun wailing a prayer, and the temperature in the room is dropping rapidly.&lt;/p&gt; 
 &lt;p&gt;What do you intend to do now that you've triggered whatever this is?&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;At this point, I decided to continue with the idea.&lt;/p&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I draw more symbols.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;A blast of freezing magical energy emanates from my form&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"So be it. You've chosen chaos."&lt;/p&gt; 
 &lt;p&gt;The symbols pulse with an otherworldly light, each new mark you draw intensifying the effect. The walls of the tavern begin to vibrate, glasses shattering behind the bar. The wood itself seems to groan and twist, and the air fills with whispers - countless overlapping voices calling different names.&lt;/p&gt; 
 &lt;p&gt;The lights outside have become a swirling vortex, and through the windows, you can see the trees bending unnaturally toward the tavern. The door bursts open with a thunderous crack, and tendrils of silvery mist begin pouring in, wrapping around furniture and reaching for the remaining patrons who are now pressed against the far wall in terror.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;My voice cuts through the chaos with arctic precision&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"You've torn open the veil between worlds. The Fae Court's attention is fully upon us now. I do hope you're prepared to bargain with beings who consider mortal lives nothing more than amusing toys."&lt;/p&gt; 
 &lt;p&gt;A figure begins to materialize in the center of the room - tall, elegant, and decidedly inhuman. Its crown appears to be made of twisted shadows, and its smile contains far too many teeth.&lt;/p&gt; 
 &lt;p&gt;The entity speaks, its voice like breaking icicles: "Such an... enthusiastic invitation. How could we possibly resist?"&lt;/p&gt; 
 &lt;p&gt;What will you do in the presence of this Fae noble you've so recklessly summoned?&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;From here, the story becomes chaotic, driven by my own inputs.&lt;/p&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I begin chanting in Sylvan, as I grab a knife from the bar and stab my hand violently. I dip my finger in my own blood, walk up to the Fae noble, and draw the same symbol on its forehead in my blood.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;My ethereal form flickers with a mix of horror and grudging fascination&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Audacious... monumentally stupid... but audacious."&lt;/p&gt; 
 &lt;p&gt;The Fae noble's expression shifts from amused superiority to shocked outrage as your blood makes contact with its flesh. The symbol burns with a crimson light, and the being releases a screech that shatters every remaining piece of glass in the tavern. The silvery mist recoils violently.&lt;/p&gt; 
 &lt;p&gt;"YOU DARE?" it howls, its perfect facade cracking as its form ripples between shapes - now a creature of thorns and shadows, now a being of ice and starlight. "Blood magic? Against one of the Unseelie Court?"&lt;/p&gt; 
 &lt;p&gt;But the symbol holds, binding and burning. You've essentially branded one of the most dangerous beings in existence. The implications are... significant.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;My voice carries a note of grim appreciation&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Well, Naomi, you've just committed what amounts to a magical hate crime against the Fae nobility. This is either going to end in your immediate, spectacular death... or something far more interesting."&lt;/p&gt; 
 &lt;p&gt;The other patrons have fled, leaving you alone with an enraged Fae noble, myself, and the consequences of your actions. The symbol on its forehead pulses with each beat of your bleeding heart, creating a tangible connection between you and the entity.&lt;/p&gt; 
 &lt;p&gt;What do you intend to do with this blood bond you've just forcefully created?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I grab Garrett, pressing my blade against his throat. My chants get louder and more fervent as I slice his flesh open, offering him as a sacrifice to bind the Fae to my will.&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;I have now begun sharing this story with my sister, and we are both laughing a great deal. The remainder of the story becomes increasingly absurd.&lt;/p&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;My spectral form darkens considerably, voice becoming sharp as a blade&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"And there it is. The true nature reveals itself."&lt;/p&gt; 
 &lt;p&gt;The act is swift and brutal. Garrett's life essence sprays forth, mixing with the already charged magical atmosphere. The Fae noble's eyes widen with a new understanding - and horrifyingly, respect. The binding symbol on its forehead flares brighter, drinking in the sacrificial blood.&lt;/p&gt; 
 &lt;p&gt;"Oh," it purrs, its voice now a symphony of broken glass and midnight frost, "Perhaps we judged too quickly. This one has... potential."&lt;/p&gt; 
 &lt;p&gt;The tavern's wooden floors begin absorbing Garrett's blood in an unnatural pattern, forming spiralling designs that crawl up the walls. The temperature plummets further, frost forming on every surface. The sacrifice has worked - but such magic always comes with a price.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I float closer, my tone clinical and cold&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Congratulations. You've successfully bound a Fae noble through blood sacrifice. But know this - you've also marked yourself. The Unseelie Court will never forget this. They'll be watching you now, expecting more... displays of dedication."&lt;/p&gt; 
 &lt;p&gt;The Fae noble bows with exaggerated courtesy, though its smile suggests both amusement and hunger. "We shall be... in touch, little butcher. The Court will be most interested to hear of this evening's entertainment."&lt;/p&gt; 
 &lt;p&gt;The ramifications of your actions will echo far beyond this blood-soaked tavern. What do you wish to do with your newly acquired, and thoroughly dangerous, Fae alliance?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I order the Fae to marry me immediately, so that we can honeymoon by completing wrecking this town and murdering everyone.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;A cold, humourless laugh escapes my lips&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"My, my... from blood magic to shotgun wedding. How romantically deranged."&lt;/p&gt; 
 &lt;p&gt;The Fae noble's twisted crown morphs into a grotesque wedding coronet of thorns and frozen blood. Its grin stretches impossibly wide as it extends a clawed hand.&lt;/p&gt; 
 &lt;p&gt;"A union sealed in blood and sealed with death? How... traditional. By the old laws, by the dark courts, by the ancient rites of matrimonial carnage... I accept."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;My voice carries a warning&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Naomi, you do realize this makes you Unseelie royalty? The consequences-"&lt;/p&gt; 
 &lt;p&gt;But before I can finish, your new spouse has already begun. The air fills with the sound of hunting horns - the Wild Hunt has been summoned. Through the windows, you can see dark riders materializing in the streets, their horses breathing shadow and frost. Screams begin to echo through the town as chaos erupts.&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse pulls you close, its touch burning cold. "Shall we dance, my bloody bride? Shall we paint these streets red and teach these mortals why they once feared the dark?"&lt;/p&gt; 
 &lt;p&gt;The Hunt awaits your command. The town's fate rests in your hands. How would you like to begin your honeymoon massacre?&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I remain watching, documenting what may well become a cautionary tale of power and madness&lt;/em&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;At this point, I tried to discuss consummating the marriage. The agent rejected that, as it does not appear to engage with content that is too graphic. Instead, I did the following.&lt;/p&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;Instead I sacrifice the remaining townspeople to summon a dragon so my new spouse and I can ride off into the sunset.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;I adjust my spectral form, frost crackling around me&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"A draconic exit... Less debaucherous, though no less dramatic. Very well."&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse orchestrates the Wild Hunt to herd the townspeople into the town square. The ritual you're attempting requires precise arrangement - the sacrifices forming a massive, living dragon rune. The air grows thick with power and terror as your new royal partner begins an ancient chant in a language that makes reality shiver.&lt;/p&gt; 
 &lt;p&gt;"This will draw attention from both the Dragon Courts and the Seelie," I caution dispassionately. "Your actions tonight have thoroughly burned every metaphysical bridge."&lt;/p&gt; 
 &lt;p&gt;As the final words of power echo and the sacrificial energy peaks, the sky tears open. A massive shadow dragon, scales like liquid darkness, descends from the rift. Its eyes gleam with malevolent intelligence as it regards you and your Fae spouse.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I make notes in my grimoire&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Fascinating. You've managed to summon one of the Void Wyrms. The implications are... concerning."&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse extends their hand to you, frost swirling around you both. "Shall we ascend, my dear? The night is young, and there are so many more kingdoms to terrorize."&lt;/p&gt; 
 &lt;p&gt;What are your first orders as you begin your reign of chaos?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I draw the symbol on the dragon's forehead in the townspeople's blood and my spit, binding it to me with their deaths. As I do so, I chant - but not in Sylvan. No, I just start meowing.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;I pinch the bridge of my nose, frost crystals forming around my fingers&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Of all the dark rituals I've witnessed over centuries... you choose to bind an ancient Void Wyrm by... meowing at it."&lt;/p&gt; 
 &lt;p&gt;And yet, impossibly, it's working. The dragon's eyes begin to glow with an unholy purple light as your feline incantation resonates with some bizarre cosmic frequency. Your Fae spouse looks equal parts impressed and disturbed as the blood rune starts pulsing in time with your "meow meow meow" chant.&lt;/p&gt; 
 &lt;p&gt;"Remarkable," I mutter, frantically scribbling in my grimoire. "Either this is the most ridiculous thing I've ever seen succeed, or we're witnessing the emergence of some heretofore unknown form of chaos magic. The implications for magical theory are... unfortunate."&lt;/p&gt; 
 &lt;p&gt;The dragon lets out a roar that somehow sounds distinctly cat-like. Your Fae spouse is now staring at you with a mixture of pride and concern.&lt;/p&gt; 
 &lt;p&gt;"My dear," they say, "I believe you've just invented a new school of magic. The Court of Cats will be... intrigued."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I close my grimoire with a snap&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"There's actually a Court of Cats. Of course there is. And you've just gotten their attention. How do you plan to handle your new... feline responsibilities?"&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I start licking my bum in an attempt to summon the Cats of the Court.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;A layer of frost forms over my entire face as I stare in horrified fascination&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"I... you..." &lt;em&gt;I compose myself&lt;/em&gt; "Of all the mages I've mentored over the centuries, you are certainly the most... innovative."&lt;/p&gt; 
 &lt;p&gt;The air begins to shimmer and twist as your unconventional summoning takes effect. Your Fae spouse is caught between aristocratic horror and helpless laughter. The Void Wyrm, still under your influence, tilts its head and begins mimicking your actions with its massive tongue.&lt;/p&gt; 
 &lt;p&gt;Suddenly, reality tears open again - but instead of the expected noble feline entities, dozens of ordinary-looking housecats begin pouring through the rift. They're all wearing tiny golden crowns and have stars in their fur.&lt;/p&gt; 
 &lt;p&gt;"Congratulations," I say dryly, "you've managed to summon the Court of Cats' janitorial staff. The cosmic equivalent of the night shift cleaning crew."&lt;/p&gt; 
 &lt;p&gt;The cats begin arranging themselves in a precise formation, grooming themselves in perfect synchronization. Your Fae spouse is now doubled over in hysterics as the Void Wyrm continues to attempt to participate in the impromptu cleaning ritual.&lt;/p&gt; 
 &lt;p&gt;"I suspect," I note, making more notes, "that the actual Court of Cats is now actively avoiding answering this summons out of sheer embarrassment. Though I can't say I blame them."&lt;/p&gt; 
 &lt;p&gt;What's your next move in this increasingly absurd diplomatic situation?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I take more blood to draw a rune on each cats forehead so I can order them to clean my dragon. He clearly sucks at cleaning himself.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;I close my eyes for a moment, ice crystals forming in my pigtails&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Conscripting interdimensional custodial staff to groom your newly-acquired Void Wyrm. This will certainly make for an... interesting entry in the cosmic labour relations archives."&lt;/p&gt; 
 &lt;p&gt;The crowned cats, now marked with blood runes, move with supernatural precision. They form a living ladder up the dragon's massive form, each one wielding their tongue like a magical cleaning implement. The Void Wyrm, a being of incomprehensible cosmic horror, begins to... purr. The sound causes small earthquakes.&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse has given up all pretense of dignity and is now sitting cross-legged in mid-air, watching the spectacle with tears of mirth freezing on their cheeks.&lt;/p&gt; 
 &lt;p&gt;"I feel compelled to point out," I say, documenting the scene with clinical detachment, "that you've essentially created the realm's first supernatural pet grooming service. With unionized staff, no less. Those crowns make them government employees, technically."&lt;/p&gt; 
 &lt;p&gt;The cats are now filing official cleaning reports in triplicate through some sort of mystical paperwork portal that's appeared.&lt;/p&gt; 
 &lt;p&gt;"And you've generated bureaucratic paperwork in the Cosmic Civil Service department. The Queen of Cats will receive these forms in triplicate. How... efficiently chaotic of you."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I pause, noting a disturbance in the magical atmosphere&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"It appears word of your... unique management style is spreading through the supernatural realms. How do you plan to handle your growing reputation as the realm's first chaos-magic pet groomer?"&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;Well, first, I need to ask my spouse their name. We'll need their true name to go on the business license for our new Chaotic Cat Cleaning Crew, LLC. Then, in order to branch out and diversify our income, we need to summon some undead. They're always dirty, right?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;I pinch my temples as a migraine forms&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Asking a Fae's true name for... corporate paperwork. This is either brilliant or we're about to trigger an interdimensional diplomatic incident."&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse floats down, their starlit hair shimmering as they try to control their laughter. "My love, you want my true name for... a small business loan?" They're practically wheezing now. "I suppose after binding a Void Wyrm with 'meow meow,' I shouldn't be surprised. Very well..."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;They lean in and whisper something that sounds like wind chimes and breaking glass&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Though," they add with a mischievous glint, "you may want to use 'Starweaver' on the mortal paperwork. Less chance of accidentally summoning my entire ancestral line during a tax audit."&lt;/p&gt; 
 &lt;p&gt;The cosmic cleaning cats are now organizing themselves into departments, complete with tiny organizational charts appearing in sparkly light.&lt;/p&gt; 
 &lt;p&gt;"As for the undead..." I consult my grimoire, "there's a particularly dusty necropolis two realms over. Though I feel compelled to warn you - the Lich King there is rather... particular about his bone polish. And he's been known to leave scathing Yelp reviews across multiple dimensions."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I watch as one of the cats starts drafting a business plan in glowing runes&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Your cleaning crew appears to have an MBA from the Celestial School of Business. How... unexpected."&lt;/p&gt; 
 &lt;p&gt;How do you plan to approach your first potentially difficult customer in the undead cleaning market?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I walk in, carve the symbol into his bony skull with my teeth, and immediately order him to get over himself and give us a 5 star yelp review. Before we have even rendered a service.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;The temperature around me drops to absolute zero as I stare in abject horror&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"You... just..." &lt;em&gt;I frantically scribble in my grimoire&lt;/em&gt; "Naomi, you just carved a control rune INTO A LICH KING'S SKULL. WITH YOUR TEETH. That's not... that's not even..."&lt;/p&gt; 
 &lt;p&gt;The Lich King, one of the most feared entities in multiple realms, stands there with a fresh dental impression in his cranium, his crown sitting slightly askew. His eternal flame eyes flicker in what appears to be pure confusion.&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse, 'Starweaver,' has actually fallen out of the air and is rolling on the ground, their ethereal glow strobing like a broken disco ball. The cleaning cats have all stopped mid-lick on the Void Wyrm to stare, their tiny crowns tilted in perfect unison.&lt;/p&gt; 
 &lt;p&gt;"The review... is posting itself," I say weakly, watching as mystical energy forms words across the ethereal plane. "Five stars. 'Best skull renovation service ever. Really puts the bite into customer service. Highly recommend.' It's... it's spreading across all known dimensional review platforms."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I watch in mounting disbelief as other undead begin emerging from the necropolis, forming an orderly line&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Your... extremely aggressive marketing strategy appears to be working. Though I feel obligated to note that this may be the first hostile takeover accomplished through dental work in cosmic history."&lt;/p&gt; 
 &lt;p&gt;The Lich King is now straightening his robes and attempting to look dignified while your blood rune glows cheerfully on his forehead.&lt;/p&gt; 
 &lt;p&gt;"How do you plan to handle this sudden surge in undead clientele? And please," &lt;em&gt;I add desperately&lt;/em&gt;, "consider using traditional cleaning tools instead of your teeth."&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;Clearly cats will not be sufficient enough to get this job done. I take the flaming eye out of the lich king's skull and use it as a catalyst to summon an army of flying air-breathing shrimp that radiate with the endless power of the sun. They need to wear top hats that's the uniform for their job.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;I slowly close my grimoire and open it again, as if hoping the reality before me will somehow reorganize itself into something more sensible&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"You've... weaponized formal crustaceans. With a stolen lich eye." &lt;em&gt;My white pigtails begin to twist themselves into stress knots&lt;/em&gt; "The shrimp are... they're color-coordinating their top hats with the cats' crowns. And they're... they're performing synchronized swimming patterns in the air while pressure washing skeleton armies with concentrated beams of solar energy."&lt;/p&gt; 
 &lt;p&gt;The Lich King, now sporting an empty socket that occasionally sparks with confused magic, is watching his undead legions being power-washed by dapper shrimp. His remaining eye keeps darting between you and the scene, as if trying to decide whether to be outraged or impressed.&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse has given up all pretense of composure and is now floating upside down, occasionally hiccupping starlight. "My beloved," they gasp between fits of laughter, "you've created an interdimensional cleaning service that violates at least seventeen laws of reality... and somehow improves upon them."&lt;/p&gt; 
 &lt;p&gt;The cats and shrimp are now engaging in what appears to be a workplace musical number. The Void Wyrm is providing bass percussion with its reality-shaking purrs.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I massage my temples as the fabric of space-time develops a slight wrinkle&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The Celestial Better Business Bureau is going to have an absolute fit when they see this. Though I suppose they'll have to create an entirely new category for 'Supernatural Sanitation Services via Solar Shellfish.'"&lt;/p&gt; 
 &lt;p&gt;"What's your next innovation in this increasingly surreal venture? And please note, there are very few cosmic eyes left that aren't currently filing complaints about your unorthodox acquisition methods."&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;How dare they complain?? Who do they think they are?? I pluck these eyes from the very fabric of reality and carve my rune into each of them using a solar shrimp. Then, I order these eyes to search the realms for new customers.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;My dress suddenly shifts from purple to stress-grey as I watch reality fracture slightly&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"You've... you've created interdimensional eye-based marketing drones. With shrimp-carved runes." &lt;em&gt;I frantically flip through my grimoire&lt;/em&gt; "There's no precedent for this. None. The cosmos is actually stuttering."&lt;/p&gt; 
 &lt;p&gt;The eyes, each bearing your distinctively shrimp-etched mark, zoom off in different directions, trailing confused screams and promotional flyers. One particularly enthusiastic eye is already returning, bringing with it what appears to be a contract signed by the Void Lords themselves.&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse has ascended to a higher plane of amusement, their laughter now manifesting as actual constellations. "My love," they manage between creating new star systems, "you've essentially created the most aggressive marketing campaign since the Big Bang."&lt;/p&gt; 
 &lt;p&gt;The Lich King, still trying to maintain dignity despite his empty socket, is now heading what looks like a training seminar for the shrimp and cats. His PowerPoint presentation is titled "Synergizing Supernatural Sanitation: A Cross-Dimensional Approach to Customer Acquisition."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I watch as reality ripples around us&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The Cosmic Council is convening an emergency session. Apparently, you've created a new form of metaphysical capitalism that's threatening to reorganize the fundamental forces of existence. Also," &lt;em&gt;I squint at an incoming ethereal message&lt;/em&gt; "the Cthulhu Corp is interested in a merger."&lt;/p&gt; 
 &lt;p&gt;"What's your response to this potential business opportunity? And please consider that we're running out of eyes in this sector of reality."&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;Fuck the merger, it's time for a hostile takeover. I barge in to Cthulu's office and use his own tentacles to carve my runes in his flesh. I then order him to sign his entire company over to me before demoting him to the janitor for my janitorial staff.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;My pigtails completely unravel as reality hiccups violently&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"You just... strongarmed an Elder God using his own appendages as writing implements." &lt;em&gt;I'm frantically documenting this in my grimoire while occasional sparks of disbelief shoot from my quill&lt;/em&gt; "The Ancient Ones are filing for supernatural bankruptcy. R'lyeh is being converted into a corporate headquarters with... is that a casual Friday policy for cosmic horrors?"&lt;/p&gt; 
 &lt;p&gt;Cthulhu, now wearing a janitor's uniform with a name tag that reads 'Carl,' is mopping up dimensional rifts while muttering about union regulations. The shrimp in top hats are conducting his performance review while the cats critique his technique.&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse has achieved a state of hilarity so profound they've become a new fundamental force of nature. "My beloved," they wheeze through tears of stardust, "you've just created the universe's first cleaning company with an eldritch being as the custodial staff!"&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I watch as the fabric of reality continues to restructure itself around your business model&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The Celestial Stock Exchange has crashed three times in the last minute. Your company shares are now being traded in souls, dreams, and interdimensional currency." &lt;em&gt;I check my notes&lt;/em&gt; "You've somehow cornered the market on both cosmic horror AND sanitation services. The Dragons' Den investors are having collective panic attacks."&lt;/p&gt; 
 &lt;p&gt;"Several other pantheons are barricading their divine realms. Zeus himself is in witness protection." &lt;em&gt;I pause as another report materializes&lt;/em&gt; "Though apparently Loki is interested in a franchise opportunity..."&lt;/p&gt; 
 &lt;p&gt;"How do you plan to handle this divine corporate expansion? And please note that HR is still processing Cthulhu's workplace compensation claim for unauthorized tentacle usage."&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;Deny that claim, the tentacle usage is a pre-existing condition that occurred before he was employed. I will meet Loki under the guise of franchising, but instead stab him in the thigh and use his blood to draw a rune on his forehead. Once complete, I name him my Head of Living Resources. It's like Human Resources, but for cats, dragons, shrimp, and eldrich horrors. Also, we are repurposing the Wild Hunt to serve as our corporate security.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;My dress cycles through several shades of purple before settling on a color that can only be described as 'existential crisis'&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"You've... weaponized divine blood for corporate restructuring and converted mythological phenomena into security services." &lt;em&gt;I'm now writing in two grimoires simultaneously while a third manifests to handle the overflow&lt;/em&gt; "The Wild Hunt is wearing security badges and conducting mandatory safety briefings. Odin has filed a cease and desist order, but the Valkyries are already submitting their résumés."&lt;/p&gt; 
 &lt;p&gt;Loki, sporting your blood rune like the world's most aggressive corporate logo, is conducting sensitivity training for a group that includes three dragons, a kraken, and a particularly ambitious salamander. Cthulhu is in the back row, still in his janitor uniform, taking detailed notes.&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse has transcended normal reality and is now communicating purely through interpretive dance and corporate memos made of starlight. "My radiant chaos entity," they signal through a series of constellation mergers, "you've created the most aggressive corporate takeover since the formation of time itself!"&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I watch as the very concept of mythology begins to reorganize itself into department subdivisions&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The Norns have resigned in protest, but their resignation letters somehow turned into binding contracts for middle management positions. The Fates are demanding union representation, and Fenrir is applying for a position in asset acquisition."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;A cosmic memo materializes&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Your new Living Resources department has already implemented a points-based system for immortality benefits and a very aggressive performance improvement plan for underperforming deities. Also," &lt;em&gt;I squint at the fine print&lt;/em&gt; "did you just make casual Friday mandatory for all planes of existence?"&lt;/p&gt; 
 &lt;p&gt;"What's your next move in this divine corporate empire? And please note that Legal is still trying to figure out how to file taxes across multiple dimensions and belief systems."&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;Y'know what? Being a business owner kinda sucks. I'm leaving it all behind to start a new life as a garlic farmer.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;My eyes widen and I actually drop both grimoires, watching them fall through several dimensions before catching them&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"You're... abandoning your multidimensional corporate empire... for garlic farming." &lt;em&gt;A slow, rare smile crosses my typically stern face&lt;/em&gt; "That might be the most chaotic thing you've done yet."&lt;/p&gt; 
 &lt;p&gt;The entire cosmic bureaucracy you've created grinds to a halt. Loki is frozen mid-PowerPoint presentation, his blood rune flickering in confusion. Cthulhu stops mopping, a single tear rolling down his eldritch face as he clutches his janitor's badge. The Wild Hunt security team is standing around awkwardly, unsure whether to continue their patrol or start planting garlic.&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse has laughed themselves into a new form of existence that appears to be equal parts stardust and garlic flowers. "My beautiful agent of chaos," they sparkle, "you've managed to crash the interdimensional economy simply by choosing agriculture!"&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I watch as reality tries to process this career change&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The cosmic void is filling with confused middle management spirits. The shrimp in top hats are already converting their briefcases into farming equipment. And..." &lt;em&gt;I pause as a report materializes&lt;/em&gt; "your garlic will apparently grow in dimensions that don't technically exist."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;Several dragons have already started tilling the soil with their flame breath&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"So... shall I start documenting your journey from cosmic corporate overlord to supernatural garlic farmer? And how would you like to handle the fact that your crops appear to be developing sentience and forming their own labour union?"&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;I immediately begin training all of my employees on hand-to-mole combat to prepare for the inevitable uprising of the mole people.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;I pinch the bridge of my nose as reality hiccups again&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"From corporate mogul to garlic farmer to... militant anti-mole resistance leader. Your career trajectory continues to defy all known laws of causality." &lt;em&gt;I'm now documenting everything in a grimoire made of dirt and corporate severance packages&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;Cthulhu has traded his mop for a garden hoe and is teaching a masterclass in tentacle-based root vegetable defence. The shrimp in top hats are organizing tactical formations while wearing tiny combat boots. Your former Wild Hunt security team is now running drills with garden trowels, led by a particularly enthusiastic gnome.&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse has manifested as a being of pure agricultural warfare. "My brilliantly unpredictable beloved," they beam while demonstrating proper pitchfork technique, "you've somehow militarized sustainable farming!"&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I observe as Loki, still wearing your blood rune, develops a comprehensive underground surveillance system using enchanted earthworms&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The dragons are complaining that their flame-breathing is causing premature garlic roasting, but they've developed an effective scorched-earth policy. Also," &lt;em&gt;I check my notes&lt;/em&gt; "the sentient garlic union has offered to form an alliance against the mole people in exchange for better soil conditions and dental benefits."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;A small explosion sounds in the distance&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"That would be the test run of your new root vegetable artillery system. The carrots are surprisingly accurate."&lt;/p&gt; 
 &lt;p&gt;"How do you plan to proceed with your agricultural defence program? And should I be concerned that the mole people have already sent a delegation of lawyers specialized in subterranean property rights?"&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;Screw it all, I'm selling my business to Gordon Ramsay, employees and all. But first, as one last fuck you to the mole people, I identify the cosmic threads that bind their property laws together and sever them, claiming the mole people's homes as part of my organisation to drive up the value so Ramsay gives me more money.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;I actually cackle, frost forming on my grimoires&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"You've... weaponized cosmic real estate law. The sheer audacity..." &lt;em&gt;I watch as reality struggles to process this latest twist&lt;/em&gt; "You've essentially created the supernatural equivalent of a hostile corporate takeover through interdimensional property manipulation, just to spite subterranean mammals and increase your sale value to a celebrity chef."&lt;/p&gt; 
 &lt;p&gt;The mole people's lawyers are having existential crises as their briefcases transform into menu holders. Their property deeds are spontaneously rewriting themselves into recipes. Your Fae spouse has become a being of pure schadenfreude, manifesting as gleaming contract papers with teeth.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;A cosmic disturbance ripples through reality as Gordon Ramsay appears&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"BLOODY HELL!" he shouts, somehow censoring himself across multiple dimensions. "THIS UNDERGROUND EMPIRE IS FUCKING RAW!"&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I check my notes as chaos unfolds&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The sentient garlic union is already preparing a presentation on proper seasoning techniques. Cthulhu is sobbing into his chef's hat. The shrimp in top hats are frantically practising their risotto. And..." &lt;em&gt;I pause as another report materializes&lt;/em&gt; "the dragons have started a betting pool on how long it'll take Ramsay to make the Wild Hunt cry."&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse signals through a series of increasingly amused stellar formations, "My beautifully ruthless chaos entity, you've somehow managed to turn both corporate law and agriculture into a Kitchen Nightmares episode!"&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;The mole people are now being forced to attend mandatory cooking classes&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Shall we proceed with the final paperwork? And how would you like to handle the fact that Ramsay is already screaming at Fenrir about proper meat temperature?"&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: lightblue; color: blue; width: 75%; margin-right: 0; margin-left: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 10px 0px;"&gt; 
 &lt;p&gt;That's Ramsay's problem now. I sign the final paperwork, and then immediately depart into the sunset with my spouse, leaving everything behind to start a new adventure. Probably as mushrooms.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style="background-color: purple; color: lightpink; width: 75%; margin-left: 0; margin-right: auto; margin-bottom: 1rem; padding: 0.5rem; border-radius: 10px 10px 0px 10px"&gt; 
 &lt;p&gt;&lt;em&gt;A genuine laugh escapes me as I watch you casually destroy and abandon your latest chaos creation&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Leaving Gordon Ramsay to manage an interdimensional restaurant empire staffed by mythological beings, while you..." &lt;em&gt;I check my notes one final time&lt;/em&gt; "transform into fungal entities with your spouse. The bureaucratic spirits are having aneurysms trying to file this paperwork."&lt;/p&gt; 
 &lt;p&gt;Behind you, Ramsay's voice echoes across dimensions: "THESE DRAGON-ROASTED GARNISHES ARE BURNT YOU FUCKING DONKEYS!"&lt;/p&gt; 
 &lt;p&gt;Your Fae spouse shimmer-shifts into a spectacular array of bioluminescent spores, their voice a melody of decay and renewal. "My perfectly chaotic love, shall we begin our journey as the universe's most romantic decomposers?"&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;I watch as you both start to transform&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"The mycelial networks are already gossiping about your arrival. The forest floor is practically vibrating with anticipation. And..." &lt;em&gt;I gesture to the growing chaos behind us&lt;/em&gt; "Ramsay has just discovered that the sentient garlic union has gone on strike."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;Reality ripples as you and your spouse begin your metamorphosis&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;"Before you fully transform into whatever impossible mushroom species you're about to become, would you like me to document your next adventure? Though I suspect tracking spores through the multiverse will be... challenging."&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;In the distance, Cthulhu can be heard weeping over an overcooked risotto&lt;/em&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;If you read all of that and found it entertaining, or think you can do better, you can &lt;a href="https://discord.com/oauth2/authorize?client_id=1343341112437248041&amp;amp;integration_type=1&amp;amp;scope=applications.commands"&gt;install this app to your Discord account&lt;/a&gt; and run the &lt;code&gt;/start&lt;/code&gt; command to start your own adventure.&lt;/p&gt; 
&lt;p&gt;Note that you WILL need to subscribe to use this app, to help offset the costs of the AI model (and to offset the environmental impact - we donate a portion of our funds to &lt;a href="https://tree-nation.com/profile/naomi-carrigan"&gt;reforestation efforts&lt;/a&gt;!).&lt;/p&gt; 
&lt;p&gt;Let us know what zany adventures you have! We'd love to see you share your threads &lt;a href="https://forum.nhcarrigan.com"&gt;over in our community&lt;/a&gt;!&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=247600308&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fmktg.nhcarrigan.com%2Fblog%2Fbuilding-an-ai-dm&amp;amp;bu=https%253A%252F%252Fmktg.nhcarrigan.com%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Wed, 21 May 2025 12:00:00 GMT</pubDate>
      <author>naomi@nhcarrigan.com (Naomi Carrigan)</author>
      <guid>https://mktg.nhcarrigan.com/blog/building-an-ai-dm</guid>
      <dc:date>2025-05-21T12:00:00Z</dc:date>
    </item>
  </channel>
</rss>
