-
You’re (Probably) Wrong About Vibe Coding
This post is the spiritual successor to my other post about AI coding: AI-Generated Code is Good, Actually. In my previous post on this topic, I asserted that AI-generated code is bad, but in the same kind of way that junior-engineer-generated code is bad, and still very useful in the right circumstances. That’s still somewhat true,…
-
How I built a homelab even though I don’t like them
I’ve been a homelab hater for a long time. OK, that’s not technically true. I don’t actually hate the idea of a homelab, and I think that they’re a nice way to practice certain things that might be expensive otherwise. I recognize that it’s a fine hobby, and it’s good for people to have hobbies.…
-
Git Gud: Specialization is (Sometimes) Overrated
Specialization gets a good rap. For doctors, it’s the key to making the really big bucks. Who gets paid more, your GP, or a cardiologist? Heck, advances in agriculture that allowed early humans to specialize are why we have a society at all. In the software engineering world, specialization is everywhere. “I’m a Java developer.” “Oh,…
-
AI-Generated Code is Good, Actually
OK, I admit, I’m clickbaiting you a little with the title. Plenty of code written by large language models (LLMs) are complete crap. That being said, I’ve found a way to make them work for me. Disclaimer: I only use AI-generated code (or AI-generated anything, for that matter) in my personal projects or as authorized…
-
Decoding Design Patterns: A Roadmap for Sensible Software
We wade into the deep waters of design patterns, demystifying their complexities and presenting them as tangible solutions for everyday coding challenges. This guide offers a practical roadmap, illuminating how to select and implement the right patterns to enhance software design, maintainability, and scalability. It’s an essential read for developers seeking to navigate the nuances…
-
Write Code as if the Maintainer Knows Where You Live
This article delves into essential practices for crafting clean, understandable code, ensuring that whoever inherits your code – possibly someone with your address – will appreciate its quality and thoughtfulness.
-
WebDAV on Nginx for Windows Explorer
In this article, I explain how to set up a WebDAV server in Nginx that supports Windows file sharing. You probably shouldn’t even be attempting this, there’s almost certainly a better way for whatever you’re doing.
-
How to build your C project with Make
In this tutorial, we’ll learn how to use Make to build your C project.
-
Debugging C with GDB
A tutorial about debugging C projects with the GNU Project Debugger.
-
How to build a sane C development environment on Windows
Writing software in C is hard enough. Doing it with a half-baked dev environment is impossible.

