2023-12-29
The hubris of beginning
In my opinion, starting a new blog with a post titled "Hello World" is corny. And yet here I sat without any better ideas.
Every few years or so, I obsess over my personal website and become paranoid that it's not good enough. I also try to apply new things I've learned to the way it's built. The last time I attempted (and finished) a new site was in 2019. I've gotten better at a lot of things since then, and a few weeks ago I decided it was time to rebuild.
This is not a post about my tech stack. In fact, this blog is not a tech blog.
I work in software, and I spend a lot of time thinking about code, both on and off the clock. But I find that with most problems, the code is actually the least interesting part. With enterprise businesses—the companies I work most closely with—the hard part is always the people and the processes.
Case in point: the way I wanted to begin this blog. "Tech" in the term tech blog is generally used interchangeably with "software" and that's not what I'm interested in writing about. What I'm interested is the way software affects the way people think and act, and vice versa. While I didn't want to begin with a post about software, I really have no choice but to do so.
While building this blog, I wanted to include some kind of system for handling draft posts. They needed to be visible in development but not in production, and ideally this system would be based on the filesystem. I implemented something that works fairly well, and just before releasing it into production I had a thought. What will if all my posts are drafts?
I ran the site locally in production mode, and you can probably guess: it broke immediately.
This post might be a joke, and if it is, I am definitely the butt of it. In my haste to build an elegant system, I forgot to think about what happens when there are no posts to display. I forgot to consider the test case "I should have something to say."
This is arguably better than a post titled "Hello World" for a couple reasons. First, it will not fall into a Google black hole because it's identical to a million other code blog titles. But more importantly, it's illustrative of the things I want to write about. Tech is about so much more than system integration and performance optimization. It's about the dumb things people do while trying to make their computers obey them (and sometimes the smart things they do too!). It's about the inertia of a business unit that simply wants to write their code and go home. It's about making the best choice from a set of bad choices, and then explaining all the different ways they could still go wrong.
The most compelling parts of tech are often overshadowed by its mechanics. If you are interested in the details of building auth systems and the reasons why closures work at the interpreter level, I'm afraid I don't have much to offer that hasn't been said before. But if you are interested in how anything ever gets done in a world full of fascinating systems that work intermittently at best...well, this is a question I look forward to exploring further.