<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>words _by jm_</title>
    <link>https://words.horse</link>
    <description>Things and stuff.</description>
    <language>en</language>
    <lastBuildDate>Thu, 14 May 2026 14:09:56 +0000</lastBuildDate>
    <atom:link href="https://words.horse/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Dont cut the burger</title>
      <link>https://words.horse/posts/dont-cut-the-burger/</link>
      <guid isPermaLink="true">https://words.horse/posts/dont-cut-the-burger/</guid>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
      <description>&lt;p class=&#34;lede&#34;&gt;One of the biggest mindset adjustments I had to make when transitioning to a manager was to learn to not cut the burger for my team.&lt;/p&gt;
&lt;p&gt;One time my wife and I were out to eat with a friend of ours, and he was having issues trying to eat the comically gigantic burger he had ordered. My wife offered to cut it in half for him to make it easier to eat. Keep in mind: we&amp;rsquo;re all grown people. He was perfectly capable of doing it himself, but my wife works a lot with kids, so it&amp;rsquo;s her normal instinct to just step in and fix problems like that regardless of whether it&amp;rsquo;s the best option in the situation.&lt;/p&gt;
&lt;p&gt;I had an issue with this when I stepped into my first Pure Manager™ role. I was just as technical as my team and love solving technical problems with code, which was helpful when it came to estimating, unblocking team members, guiding technical decisions, and so on. But it also made me really prone to cutting the burger. Oh, you&amp;rsquo;re stuck on a problem? You know what, just let me slide in here and fix that. We need to get a feature out the door? I&amp;rsquo;ll just jump in and crank out some code really quick.&lt;/p&gt;
&lt;p&gt;If you do this as a manager, you (without even meaning to) may be doing a number of bad things for your team. You may be depriving them of a growth and learning moment. You might be depriving them of your attention on something more &amp;ldquo;managerial&amp;rdquo; that would help the whole team rather than dealing with this one problem you&amp;rsquo;re trying to address. You could be making them feel like, since you&amp;rsquo;re having to &amp;ldquo;step in,&amp;rdquo; that they&amp;rsquo;re not doing a good enough job even though you&amp;rsquo;re really just trying to accelerate the work forward.&lt;/p&gt;
&lt;p&gt;Early on in my managerial journey, I had to apologize to a lot of team members about this issue. I just wanted to get my grubby paws on all these cool problems and solve them! I love to code! But I needed a reality check. The first time it happened, I had a team member get very upset with me nearly to the point of tears because he felt like he was working as hard as he possibly could, but I felt like I still needed to step in to help. That made him feel like he wasn&amp;rsquo;t doing a good enough job when in reality, I saw that he was working incredibly hard and wanted to help him out. In doing so (at least uninvited), I communicated a pretty negative message with my actions.&lt;/p&gt;
&lt;p&gt;Obviously, there are caveats. If your involvement or intervention is invited, of course you need to act. If the work is something you should be responsible for in the first place (i.e., something manager-y), obviously step in to do it. But don&amp;rsquo;t deprive your team of the opportunity to do their work and/or grow just because you can&amp;rsquo;t keep your tendencies in check.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t cut the burger for your team.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gratitude</title>
      <link>https://words.horse/posts/gratitude/</link>
      <guid isPermaLink="true">https://words.horse/posts/gratitude/</guid>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
      <description>&lt;p class=&#34;lede&#34;&gt;It&amp;rsquo;s my opinion that the best non-mechanical skill (i.e., not project management methods, communication styles, etc.) one can cultivate as a manager is gratitude.&lt;/p&gt;
&lt;p&gt;I have worked for managers who were great at it, and I&amp;rsquo;ve worked for managers who literally told me that my pay is my gratitude for my work. I&amp;rsquo;ll let you guess which set of management was actually engaged with the work happening and the people doing it and which set of managers simply saw the work they were doing effectively as moving things around in a spreadsheet.&lt;/p&gt;
&lt;p&gt;When I say &amp;ldquo;cultivate gratitude,&amp;rdquo; I don&amp;rsquo;t mean learning to say variations of &amp;ldquo;thank you&amp;rdquo; in several languages or putting a fruit basket provider on speed dial for rapid fire gift giving. It&amp;rsquo;s not just the expression of gratitude that matters. Anyone can fake it and say &amp;ldquo;thanks&amp;rdquo; a lot, but in reality, there doesn&amp;rsquo;t have to be any appreciation there. I&amp;rsquo;m talking about adopting a posture of gratitude towards those around you whose work you manage and help you do your own work. Cultivating gratitude means developing a genuine appreciation for their work and sincerely expressing gratitude and thanks to them when it warrants it.&lt;/p&gt;
&lt;p&gt;The true catch to this is that it requires taking a real interest in other people and their work. You have to have a sense of wonder about people, what they&amp;rsquo;re working on, and how it helps move things forward in the business (if it doesn&amp;rsquo;t move the business forward&amp;hellip;well, then one may need to adopt a posture of feedback 😅). Having the people around you know that they&amp;rsquo;re seen and their work is seen not only provides a positive feedback mechanism, but it also validates them as people. It makes them feel valued, and when people feel valued, they&amp;rsquo;re more fulfilled, they&amp;rsquo;re more invested in doing well, and they&amp;rsquo;re far more likely to be able to steer clear of burnout.&lt;/p&gt;
&lt;p&gt;The other, less obvious catch is that you shouldn&amp;rsquo;t just adopt this perspective for things that help you directly. This mindset isn&amp;rsquo;t transactional. It&amp;rsquo;s holistically appreciating people for who they are and what they do, so even if they don&amp;rsquo;t things that directly benefit your career, you should still appreciate and validate their work as best you can. Side note: it also means that even if they&amp;rsquo;re super annoying or otherwise personally distasteful to you, if you adopt this way of thinking, you&amp;rsquo;ll still appreciate and express gratitude for their work. It&amp;rsquo;s not always easy.&lt;/p&gt;
&lt;p&gt;This is something I&amp;rsquo;m constantly working on inside myself. Over the years as I&amp;rsquo;ve put the work in, I&amp;rsquo;ve found it increasingly easy to see the inherent value in the work that people do, but I&amp;rsquo;m still learning how to find opportunities to express it and express it well. My best advice here is don&amp;rsquo;t lean on formal opportunities like feedback cycles and skip levels. First, because you might forget before then, but secondly and more importantly, sharing gratitude solely in these situations can make it feel more like a mere formality than a genuine expression of thanks.&lt;/p&gt;
&lt;p&gt;Remember: the idea here is to create connection with another human and help them feel valued, not check another checkbox on the feedback rubric!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Opportunity costs</title>
      <link>https://words.horse/posts/opportunity-costs/</link>
      <guid isPermaLink="true">https://words.horse/posts/opportunity-costs/</guid>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
      <description>&lt;p class=&#34;lede&#34;&gt;Every action you take (or don&amp;rsquo;t) has an opportunity cost, and sometimes it&amp;rsquo;s super easy to overlook them because the choice may not even feel like a &amp;ldquo;choice.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s vital to, of course, consider opportunity costs when working. One is always running the calculus on things like &amp;ldquo;If we pick this tech stack, we will need a this amount of ramp time before features go out&amp;rdquo; or &amp;ldquo;If I spend the time mentoring this junior member of the team, I can&amp;rsquo;t knock out as many stories this week.&amp;rdquo; Weighing these against the results of the choices is just part of the job.&lt;/p&gt;
&lt;p&gt;But it&amp;rsquo;s also important to calculate the opportunity cost of factors impacting the galaxy of your life surrounding your work as well. That analysis could range from things like &amp;ldquo;If I have this conversation at work, it may limit my ability to advance at this firm&amp;rdquo; to &amp;ldquo;If I spend these extra hours working, it may impact my relationship with my family.&amp;rdquo; It&amp;rsquo;s easy to overlook these choices because they don&amp;rsquo;t always have a deterministic, discrete result to measure against, and negative results can creep in without you even noticing.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m sharing this because it&amp;rsquo;s approaching the holidays, and every holiday season I have to live with the fact that I gravely miscalculated an opportunity cost that resulted in something I can never fix. I was working on a big, very visible project at a big, very visible company. I had been working on it solo for months (not my choice), and it was going slowly because I was working in a new tech stack with poor documentation and a small ecosystem (somewhat my choice but not really). It was supposed to launch in the Fall, but it wasn&amp;rsquo;t ready yet. It kept slipping until it wasn&amp;rsquo;t going to launch until after Christmas, but that was likely only to happen if I worked over our Christmas break to get it done.&lt;/p&gt;
&lt;p&gt;I hadn&amp;rsquo;t seen my family in a long time (I think maybe I&amp;rsquo;d missed the previous holiday season with them for various reasons), but I had been promising to get home to see them this year. With this project hanging over my head, I told them I&amp;rsquo;d have to miss holidays again, but I&amp;rsquo;d make it home as soon as I could, at least before my grandmother&amp;rsquo;s birthday in May. I just really had to get this done and out, or it just felt like it was never going to get done. I didn&amp;rsquo;t really consider any other option because it just seemed like this was what had to happen. I was blinded by the seeming inevitability and/or banality to any opposing consequence that I may have needed to consider. My manager directly asked me to work over the holiday break to ship it, so obviously I needed to. I&amp;rsquo;d just knock this out, go see my family with some PTO later, and all would be good. &lt;/p&gt;
&lt;p&gt;Well, my grandmother didn&amp;rsquo;t make it that far.&lt;/p&gt;
&lt;p&gt;My grandmother who helped raise me, who was like a second mom to me, had a sudden stroke and died before I could make it home again. Even typing this right now is a little overwhelming, so I won&amp;rsquo;t dwell on the emotions that evoked. I&amp;rsquo;ve worked through them, I&amp;rsquo;ve accepted it, but it still hurts. Honestly, the worst part is that project never launched. I did finish it, but no one was working then to deploy it because they took their PTO. And then when they returned, all these new requirements came into existence that were never previously communicated, so it just got shelved. So, I gave up a lot of badly needed PTO, missed seeing my grandmother one last time, and essentially ended up in a state of serious psychological distress for&amp;hellip;nothing. That was not a well considered choice.&lt;/p&gt;
&lt;p&gt;But these things have soft edges. They leave a lot to factors that are often out of your control. I don&amp;rsquo;t beat myself up over it, but if I could do it again, I would 100% have chosen differently. All I&amp;rsquo;m asking is to be sure to take a deep look at your situation to make sure that you&amp;rsquo;re not making what seems like an easy or obvious choice (or acting on things that may not even seem like a choice!) simply because you aren&amp;rsquo;t considering that there may be wider consequences to it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Support team</title>
      <link>https://words.horse/posts/support-team/</link>
      <guid isPermaLink="true">https://words.horse/posts/support-team/</guid>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
      <description>&lt;p class=&#34;lede&#34;&gt;Something that jumped into my brain this weekend: if you&amp;rsquo;re a product owner of SaaS tool, talk to your support people to see what canned replies they have saved in their support tool. That&amp;rsquo;s basically free pain point discovery from your customers because your support people have had to reply with the solution so many times they automated it.&lt;/p&gt;
&lt;p&gt;Hopefully you don&amp;rsquo;t have many of these, but I&amp;rsquo;ve been surprised by how a big pile of these things can accrete over time because &amp;ldquo;well, that&amp;rsquo;s just how it works.&amp;rdquo; Maybe it doesn&amp;rsquo;t have to, though?&lt;/p&gt;</description>
    </item>
    <item>
      <title>The stack, such as it is</title>
      <link>https://words.horse/posts/tech/the-stack-such-as-it-is/</link>
      <guid isPermaLink="true">https://words.horse/posts/tech/the-stack-such-as-it-is/</guid>
      <pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate>
      <category>tech</category>
      <description>&lt;p class=&#34;lede&#34;&gt;Software teams are a lot like pastries.&lt;/p&gt;
&lt;p&gt;When one is preparing a recipe, there is a list of ingredients to follow along with instructions on how to use those ingredients to produce a composed dish on the other side. That part is obvious. What might be less obvious, is that adding an ingredient or taking one away fundamentally changes the recipe. It&amp;rsquo;s not that it&amp;rsquo;s the dish but different. It is no longer the same dish. The difference between exquisite pâte à choux and down home southern biscuits is simply adding eggs. They are 90%+ the exact same elements, but they produce vastly different products on the other side.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s the same with software teams as well. So many times we think adding a person, removing a team member, or moving someone around will create minimal chaos, but the reality is that the entire chemistry of the team changes when that happens. When you add an ingredient to a recipe, you have to adjust the steps to alter the product or you&amp;rsquo;ll end up with a mess (trust me, I&amp;rsquo;ve experimented in the kitchen enough to know this is true!). Likewise, when team chemistry changes workflows have to be adapted, expectations have to be adjusted, knowledge gaps have to be filled, and so on. Fundamentally the graph of responsibilty and relationship has changed within the group of people on the team. It&amp;rsquo;s up to you as a manager to recognize this, and put the work in to rebalance everything. &lt;/p&gt;
&lt;p&gt;The great thing is that these changes can present opportunities for positive transformation. Composition dictates capability. Ending up with &amp;ldquo;better&amp;rdquo; or more cohesive &amp;ldquo;ingredients&amp;rdquo; on the other side can present the opportunity to turn a janky biscuit recipe into perfect puff pastry. Take advantage of it!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wu Tang AI</title>
      <link>https://words.horse/posts/writing/wu-tang-ai/</link>
      <guid isPermaLink="true">https://words.horse/posts/writing/wu-tang-ai/</guid>
      <pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate>
      <category>writing</category>
      <category>meta</category>
      <description>&lt;p class=&#34;lede&#34;&gt;I think there&amp;rsquo;s an old Wu Tang jam about AI models: &amp;ldquo;D.R.E.A.M.&amp;rdquo; That is, Data Rules Everything Around Models.&lt;/p&gt;
&lt;p&gt;As practitioners have started implementing LLMs in their tech stacks, I&amp;rsquo;ve seen a lot of chatter and confusion about what the limitations of these models can be. When you fiddle with ChatGPT for a while, it can seem like some sort of black magic, so when you start bumping up against some of the limitations of LLMs, it can be confusing. Why can it understand my questions about Miley Cyrus&amp;rsquo;s dining preferences as expressed in her memoir &amp;ldquo;Miles To Go&amp;rdquo; but can&amp;rsquo;t seem to parse this seemingly simple question about traffic laws in Milwaukee? Why is it telling me over and over about the growth patterns of eggplants when I asked about the inhumane egg farming plants that I saw in a documentary?&lt;/p&gt;
&lt;p&gt;The thing is, artificial intelligence isn&amp;rsquo;t &amp;ldquo;intelligent&amp;rdquo; as we colloquially describe it. We tend to use &amp;ldquo;IQ&amp;rdquo; to measure someone&amp;rsquo;s perceived intelligence, and AI models currently are not very good at the things we use to determine that. Someone actually did a study (https://lnkd.in/eRszr5Ft), and the results weren&amp;rsquo;t great (spoiler: some models barely reached &amp;ldquo;average,&amp;rdquo; most were slightly below average). AI models currently can not establish new ground truths or innovate newly reasoned facts. They can combine and remix their existing knowledge in new ways, but their training and fine tuning data determine everything that they know or can possibly know without augmentation. Think of them more like really good remix artists rather than lyrical virtuosos.&lt;/p&gt;
&lt;p&gt;This fact also goes for relationships between data. You can supply a giant corpus of data, but if you&amp;rsquo;re asking questions about correlation between data and haven&amp;rsquo;t supplied any training data to enforce the relationship (i.e., you don&amp;rsquo;t have to draw a line between A and B as facts but instead draw a relationship between the types of data), the AI will be very unlikely to make that connection for you. At the least, it will produce very poor understandings of it.&lt;/p&gt;
&lt;p&gt;Side note: that&amp;rsquo;s why having a base model that&amp;rsquo;s trained on a corpus of data that fits your needs is important. Yes, you can fine tune, but unless you need really general capabilities, it&amp;rsquo;s probably better to find/build/train a more specialized model. For example: sure, the big LLMs handle code pretty well, but why not deploy something that&amp;rsquo;s especially geared towards understanding code to cut down on the amount of fine tuning and augmentation necessary to get the results you&amp;rsquo;re seeking?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hello, world</title>
      <link>https://words.horse/posts/meta/hello-world/</link>
      <guid isPermaLink="true">https://words.horse/posts/meta/hello-world/</guid>
      <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>
      <category>meta</category>
      <description>&lt;p class=&#34;lede&#34;&gt;This is the obligatory first post. It exists to prove that a Markdown
file in &lt;code&gt;content/posts/&lt;/code&gt; becomes an HTML page in &lt;code&gt;_site/posts/&lt;/code&gt;. If you
can read this in your browser, the pipeline works.&lt;/p&gt;
&lt;h2 id=&#34;what-lives-in-front-matter&#34; class=&#34;section&#34;&gt;&lt;span class=&#34;num&#34;&gt;§1&lt;/span&gt;What lives in front matter&lt;/h2&gt;
&lt;p&gt;Title, date, categories, and an optional one-line summary. The generator
infers everything else — the URL slug from the title, the reading time
from the word count.&lt;/p&gt;
&lt;h2 id=&#34;what-lives-in-the-body&#34; class=&#34;section&#34;&gt;&lt;span class=&#34;num&#34;&gt;§2&lt;/span&gt;What lives in the body&lt;/h2&gt;
&lt;p&gt;Plain Markdown. Headings like the one above are renumbered automatically
as §-sections by the build, so I never have to keep them in sync by
hand. Code blocks render in Computer Modern Typewriter on a slightly
darker paper:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;content/posts/*.md  -&amp;gt;  generate.py  -&amp;gt;  _site/posts/*/index.html
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&amp;rsquo;s the whole story.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>