Dec 312024
 

Yes, it’s always time to learn something new, but this is just what I’m focusing on now. Java was my first programming language, that I’ve been using since I learned in college. I’ve picked up some other languages, search as just enough C/C++ to get through class, Progress (which appears to have been renamed over the years), Python, a very brief experimentation with Scala, Javascript, and just enough Ruby to be dangerous to your Chef scripts. However, almost everything I’ve done professionally has been Java. And while I’ve been working as a software developer for my whole professional career, during that time the idea that developers own their code in production really took off, which means operations is becoming an increasing part of the software developer’s job description. So far, that’s been mitigating by using managed services on public clouds like AWS, which in turn has led to an explosion of more managed services, which handily are also big cash cows for these companies. But the emphasis on running services in addition to writing them means I need to be good not just at writing code, but also able optimize how I build it to answer questions about what’s going on when there’s user complaints, or things seem off, as well as be able to tell the business what the code I’m writing is doing for them.

Continue reading »
 Posted by at 11:45 AM
Nov 272024
 

With all the AI hype in terms of software development (you can see the latest update on AI taking over software development here), I’ve found myself revisiting what it is I love about programming in the first place. For me, it’s the satisfaction of having built something (or a piece of something) that didn’t exist before, that (hopefully) solves a problem. I’m not a “code should be beautiful” kind of guy, but there’s a non-trivial amount of pride to sitting down at a text editor, typing out commands, running them, and repeating until they finally do the thing I envisioned, and then getting it out to the world. Because ultimately, it’s something that I worked on, if not did altogether. There’s just no equivalent of that from AI.

Continue reading »
 Posted by at 11:45 AM
Oct 312024
 

I came across 2 tweets (because they’re on Twitter, not X) recently that really seem to be on opposite sides of the same coin. The first, from Kelsey Hightower, was simply a call to think before coding. The second, from The Primeagen, pointing out that writing the code is far from simple. Now, these 2 tweets aren’t mutually exclusive, or even make competing points (I don’t believe for a second The Primeagen didn’t think about the problem before he started coding). But taken together they offer good reminder about both not coding from the hip, as well as the limits of trying to think through everything before starting the actual code writing.

Continue reading »
 Posted by at 11:45 AM
Sep 302024
 

As someone who follows DHH on Twitter, I’ve seen a lot of posts around his switching to Linux as his daily driver. I’ve had Linux on my personal machine for a few years now, but never put a huge amount of effort into it since it’s not my “work” computer. Still, I try to poke around with some code when I can, so I do want to have it set up for development on personal projects. I’ve always had (at least some) co-workers who would code in Vim/Tmux exclusively (and swear by it), but it’s never been for me. I used Eclipse in college, bounced around a lot between VS Code and the IntelliJ community edition, briefly dabbled in Atom, and I even used regular vim (OK, gvim) for a bit…after I stumbled across a setting to use regular Windows keyboard shortcuts1. No editor ever really stuck as something I particularly liked using, but I could at least get VS Code (for front-end work) and then IntelliJ (for Java) “good enough” but that was it. So I decided to give Neovim a try, since the Vim people I worked with always seemed passionate about how they liked their editor and because..why not? This time, I decided to do it properly, with the real Vim keybindings, not replacing with Windows versions. After a few weeks, I see why Vim people are the way they are – this just feels like a better way of doing things.

Continue reading »
 Posted by at 11:45 AM
Aug 312024
 

I’ve been working in an agile environment for most of my career (other than a little stretch as a government contractor). Pretty much all of those were versions of Scrum. Scrum also happens to be the butt of nearly every joke I’ve ever seen about the software development lifecycle, and the subject of the periodic articles and videos about why Scrum failed. On the 1 hand, it’s a shot at what I do, specifically how I do it; but on the other hand, all the crap-talking has a good point. So why is having a problem with Scrum so ubiquitous, and is it really justified?

Continue reading »
 Posted by at 5:30 AM
Jul 312024
 

When you’re trying to concentrate, 1 of the worse things that can happen is to get interrupted with what’s essentially either a) a status update or b) a request for a status update. It was 1 thing pre-2020 when working remotely was largely a thing people did as-needed, but by this point, even if you’re working in an office* (*for most developers, an big open room, but you get the idea) again, you’d think we’d have used the time where everyone was remote to learn and adopt better ways of communicating updates without having to rely on doing interrupting people.

Continue reading »
 Posted by at 11:45 AM
Jun 302024
 

I was going through some old links I had saved for later and I came back to this tweet (it’s never X and thus never a post) from Derek Comartin of CodeOpinion.com. While I’m partial to Comartin’s position (effectively domain knowledge is more valuable than experience with a particular framework/tool/library), there was a surprising amount of disagreement in the replies. Part of this is because Twitter is a bad place for adding qualifiers (like both sets of skills are important, and both can be learned on the job in any job), but the prioritization was revealing about both how a lot of people seem to think about their jobs in tech, how they think that fits into the bigger picture, and forces some uncomfortable observations on whether or not that’s true.

Continue reading »
 Posted by at 1:00 PM
May 312024
 

I’ve been against the idea of writing getters and setters off as boilerplate for a while, yet sadly that’s the prevailing idea in software development. A large part of that is probably fueled by the fact that we treat objects is nothing more than a local copy of database records. The result is that half the time we’re assuming the data is already valid and we don’t have to validate or default anything (when we’re reading it from the database), or that we just have to validate data when it first enters our system via endpoint (when creating or updating a database record). As a result, we don’t have to actually write proper getters and setters, and can lazily just use the templates our IDEs make for us, and outsource our validation to some simple annotations. It’s a tempting sales pitch, but it’s for a specific (limited) use case. Getter and setter methods, on the other hand, are universal.

Continue reading »
 Posted by at 11:45 PM
Apr 302024
 

Chelsea Troy wrote a fantastic article last September titled “What do we do with the Twitter-shaped hole in the internet?” While I don’t subscribe to the premise that Twitter is “crashing,” there were about 2 articles worth of good reading in 1 URL, so it bears a lot of consideration (It’s worth noting that I have a much smaller follower count, get less activity on my tweets, and generally tweet less original stuff vs. just retweeting, so my mileage clearly varies). Troy does a good job of discussing the things Twitter does well, areas where it’s historically been weak from a fundamental “this is how the app was intended to run” perspective, as well as good comparisons and contrasts with other communications apps, and their designed limitations. She follows up with a great post walking through a potential design for a hypothetical new social application that would be very appealing. But in the process of designing her hypothetical application was a great discussion on identifying and promoting quality that is the part that really sticks out as particularly interesting.

Continue reading »
 Posted by at 11:45 AM
Mar 302024
 

Lately I’ve been trying to run some server software in a local Docker container just to play around with it, but I ran into network issues trying to use it. It’s 2024, and it seems like everything is containerized (precisely so you can run it locally the same as you would in production) and deployed via infrastructure as code, so why shouldn’t I be able to grab the container image, fire it up, and actually use this service? I think is a result of just running our code on the cloud, and it’s something we need to explicitly be considering.

Continue reading »
 Posted by at 1:00 PM