Who am I? My name is Keith Hanson, I graduated from Rose-Hulman with a degree in Software Engineering in 2021. In my time since graduation I worked extensively with infrastructure as code and on backend systems. Notably what you won’t find in my project background is anything to do with AI. I took 1 course […]
Vibe coding absolutely nails the values of Agile, and quietly violates the mechanisms that make Agile work. Vibe coding might be the purest form of Agile we’ve ever seen. No standups, no tickets, no backlog grooming, just chaos and bliss. It nails the Agile values: working software, responding to change, and individuals over process. The […]
AI is an amplifier for whatever signal we humans provide. Garbage in, garbage out. Signal in, software out. – Robert Herbig, in the thing you’re currently reading If you haven’t heard of vibe coding, it’s an interesting concept: you prompt an AI agent to do all the coding and focus on fast iterations. Minimize time from thought to working application. […]
I love boosting productivity. If you’re manually comparing files, squinting at Git diffs, or struggling to sync folders across servers, you’re wasting time and there’s a better way— it’s called Beyond Compare. I’ve been using this tool for over a decade, and I’ve paid for it with my own money. That’s how much I believe […]
You can interact with the source code for this article using the TypeScript playground. Throughout my experience using TypeScript, I have constantly been finding new features in the type system that I had no idea existed. At some point, I discovered that the type system was turing complete! (If we ignore the infinite memory requirement) Many […]
Personal programming projects are a great way to explore new topics. They can allow you a scaffold for exploring new technologies or techniques. They can use a personal interest as a motivator to overcome the trials of learning. But they compete for your limited time with your responsibilities, friends, and family. Sitting down for a […]
This post describes how to manage the lifecycle of QObjects in C++ by using smart pointers with custom deleters which invoke deleteLater. Qt has it’s own lifecycle for QWidgets/Objects that is distinct from the usual C++ object lifecycle. Most of the time that is essentially a non-issue. Normally, QWidgets last for the lifetime of the […]
Preface For the last few months, I’d been working on my side project Contact, a JSON REST API written with Elixir and Phoenix, designed to be the backend to an instant messaging platform. I thought that SEP’s semi-annual hackathon: SEP: Makes, would be the perfect time to make a front end application for Contact, but […]
My new year’s resolution for 2017 was to stop using variables. My goal was to force some learning by applying a constraint to my work. Over the course of the year, I attempted this while writing various types of code: Restful api endpoints – good. It felt quite natural to write code without variables in […]
In any profession involving performance (like music or sports), the professionals practice out of sight of their audience. They practice to get better. They push their limits and try things they’ve never tried before. When they try those things for the first time, they suck! The football player misses the catch trying out that new […]