<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>Blake Hair</title>
  <subtitle>Personal blog of Blake Hair</subtitle>
  <link href="https://blakehair.com/feed.xml" rel="self" />
  <link href="https://blakehair.com/" />
  <updated>2026-05-05T12:00:00Z</updated>
  <id>https://blakehair.com/</id>
  <author>
    <name>Blake Hair</name>
  </author>
  <entry>
    <title>Thinking about Software Development</title>
    <link href="https://blakehair.com/posts/thinking-about-software-development/" />
    <updated>2026-05-05T12:00:00Z</updated>
    <id>https://blakehair.com/posts/thinking-about-software-development/</id>
    <content type="html">&lt;p&gt;The worst kind of Product guy is an &amp;quot;idea guy&amp;quot;. I think every industry has folks who think they&#39;re here for their ideas. What you really want out of a Product guy is someone who can think rigorously about the problem they&#39;re solving (even when that problem is something like standardizing email signatures for your company).&lt;/p&gt;
&lt;p&gt;The lifecycle of a software product is not an idea and then the developers get to work tapping out code. There is an idea and then a bunch of people talk about that idea and all the problems with that idea and they come up with some worse ideas and some better ideas and eventually they hammer out something that&#39;s good enough to start talking with the developers about.&lt;/p&gt;
&lt;p&gt;There are a lot of ways to do this part. I joined the workforce in the hayday of Agile and everyone taking week long Scrum Master certification courses. There are good and bad parts to all the ways we&#39;ve run software teams. I could write up a long blog post on what I think matters, but I won&#39;t (yet).&lt;/p&gt;
&lt;p&gt;The worst way to build a software product is to skip all of that and go from idea to execution without stopping to think. We&#39;ve removed all the barriers that made idea guys have to stop and work out what their idea actually is. We don&#39;t plan so much anymore. Requirements gathering is done ad-hoc in a prompt input to an LLM when it generates unintended outputs.&lt;/p&gt;
&lt;p&gt;We&#39;re now in the age where the cost of producing code is cheap&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blakehair.com/posts/thinking-about-software-development/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; and LLMs mean that any random person can vibe code something that looks halfway decent on the surface to most folks. The distance between idea and product has been shortened immensely and we now have a C suite that looks at their Product &amp;amp; Engineering teams and say &amp;quot;What&#39;s taking you so long? Codex gave me a whole app and put it online in a few hours.&amp;quot;&lt;/p&gt;
&lt;p&gt;This may all be my frustration with LLMs, vibe coding, and a generally rough job market surfacing. Maybe folks on other teams in other companies are finding time and value out of backlog grooming rituals and curating a backlog of tickets to work though. Maybe other teams are making architectural decisions looking ahead 5 years (or even 9 months).&lt;/p&gt;
&lt;p&gt;Even if this is all something that I&#39;m feeling on my lonesome I do think there is some worth to repeating the phrase that I find myself saying a lot these days &amp;quot;My job isn&#39;t to write code. It&#39;s to understand the systems that the code describes that satisfies the requirements of the business.&amp;quot;&lt;/p&gt;
&lt;p&gt;It isn&#39;t catchy, but it does explain why Claude can&#39;t just do it.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I know that LLMs are not cheap. They have a profound impact societally, environmentally, and monetarily. However, in the short term it looks like you&#39;ve just replaced 6 full-time employees with a machine that won&#39;t tell you your idea is bad and waste your time arguing about it. &lt;a href=&quot;https://blakehair.com/posts/thinking-about-software-development/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
  </entry>
  <entry>
    <title>Building my personal website</title>
    <link href="https://blakehair.com/posts/building-my-personal-website/" />
    <updated>2026-04-28T12:00:00Z</updated>
    <id>https://blakehair.com/posts/building-my-personal-website/</id>
    <content type="html">&lt;p&gt;A few weeks ago as I was procrastinating on going to bed I decided to make a list of things I could do with my time that weren&#39;t just media consumption. I&#39;d been watching a lot of television and playing video games rather than engaging in more creative hobbies and felt kinda down about it. I got out my journal and wrote down &amp;quot;What do I want to put on the Internet?&amp;quot;&lt;/p&gt;
&lt;p&gt;I put three bullets under it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a blog&lt;/li&gt;
&lt;li&gt;a weird card game thing&lt;/li&gt;
&lt;li&gt;some kind of personal knowledge base&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The card game idea probably needs a lot more thought and playtesting before I&#39;m going to put it anywhere public. Building a knowledge base requires something to be knowledgable about (and some focus). So a blog it was!&lt;/p&gt;
&lt;p&gt;I set a rough timeline to have something set up and an initial post by May 1st, so I&#39;m beating my expectations at this point. It was probably made easier considering I already had hosting and a very outdated website from when I was job hunting in 2021. I ended up scrapping that entire thing (though you can find it in the commit history on GitHub). I wanted to make something a little less professional and something that didn&#39;t require quite so much hand-coding.&lt;/p&gt;
&lt;p&gt;I&#39;ve used &lt;a href=&quot;https://www.11ty.dev/&quot;&gt;Eleventy&lt;/a&gt; as a tool for building websites for a few family members&#39; businesses, so it seemed a good place to start. I could easily switch between tempate languages as I wanted to and fall back to good old fashioned HTML if needed. It doesn&#39;t hurt that it has lots of folks writing blogs on it and writing blog posts about writing blogs on it.&lt;/p&gt;
&lt;p&gt;First step was to scrap everything I had up already and replace it with a placeholder while I got things together. Of course, unable to just drop an &amp;quot;Under Construction&amp;quot; gif on a page and walk away I decided to &lt;a href=&quot;https://blakehair.com/toys/under-construction/&quot;&gt;re-implement the boot sequence for a silly terminal style game I tinkered with years ago.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After spending a couple hours messing with completely pointless CSS animations I set down to the serious business of finding some inspiration.&lt;/p&gt;
&lt;p&gt;You can see a lot of those inspirations in &lt;a href=&quot;https://blakehair.com/blogroll/&quot;&gt;my blogroll&lt;/a&gt;, but &lt;a href=&quot;https://blog.dante.cool/&quot;&gt;videodante&lt;/a&gt; and &lt;a href=&quot;https://joelhooks.com/&quot;&gt;Joel Hooks&lt;/a&gt; served as the main ones. You can probably tell.&lt;/p&gt;
&lt;p&gt;Most of this site is a pretty straightforward set of Nunjucks templates strung together with Eleventy. The home page, about page, and blogroll are about as simple as they can be. Not much to say about them except that it was fun to mess with CSS again after spending so much time building ETL pipelines and event processors for my day job. I miss doing something more graphical.&lt;/p&gt;
&lt;p&gt;The place that I got completely sidetracked though was my &lt;a href=&quot;https://blakehair.com/now/&quot;&gt;now page&lt;/a&gt;. It started as something simple with just a few headings, a blurb about my job, some copy about hobbies. Then I was looking at &lt;a href=&quot;https://blog.dante.cool/now/&quot;&gt;Dante&#39;s Letterboxd embed&lt;/a&gt; and thinking &amp;quot;I want something like that.&amp;quot;&lt;/p&gt;
&lt;p&gt;Of course, this is a static site and it felt odd to pollute it with some JavaScript to fetch data from somewhere else. Why make someone else&#39;s browser go through all that hassle. &lt;a href=&quot;https://samdking.co.uk/blog/sync-your-letterboxd-film-data-with-eleventy/&quot;&gt;Luckily, other people have had similar thoughts.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;While I did not go quite to the length that Sam King does (though storing data to a spreadsheet is an interesting future consideration) it felt good to tinker with writing a little script that caches data from Letterboxd when my site gets built. The script itself is very simple. It uses Eleventy&#39;s Fetch plugin to get the RSS feed for &lt;a href=&quot;https://letterboxd.com/iverum/&quot;&gt;my Letterboxd page&lt;/a&gt; and pulls out the most recent films I&#39;ve logged and does a bit of CSS tomfoolery to reorganize the content.&lt;/p&gt;
&lt;p&gt;It was fun to tinker with the CSS Grid stuff. It wasn&#39;t in use much when I stopped doing front-end development for my job and it&#39;s impressive how flexible it can be. It does seem like it can entirely break semantic and accessible web patterns though (but what doesn&#39;t?).&lt;/p&gt;
&lt;p&gt;Sam&#39;s blog also detailed some work with Google Sheets and I&#39;ve been tracking my model building in a Google Sheet for the last year or so. It was natural to adapt some of his ideas into a quick &amp;quot;hangar&amp;quot; of the models I&#39;m currently working on. This was a bit more of a hassle because Google wants you to authenticate to access a private Sheet. I did spend a good hour comparing Sam&#39;s code to the new documentation of the libraries he&#39;d used.&lt;/p&gt;
&lt;p&gt;Now I&#39;m wrapping up the last item on my initial agenda: &lt;em&gt;write one blog post by May 1st&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;m not exactly squeezing this one under the wire. I&#39;ve found a lot of joy in tinkering with this little codebase over the last weeks. I&#39;d like to make an effort to keep updating this and doing new things with it. I haven&#39;t entirely given up on the idea of putting some little games and more of my hobby stuff on here. We&#39;ll see!&lt;/p&gt;
</content>
  </entry>
</feed>