Why starting with understanding, not code, is the key to unlocking AI’s full potential in software development Picture this: You’re 7 hours into your work day, you’re on your third cup of coffee, and the AI just generated 200 lines of code that compile perfectly… and do absolutely nothing you wanted. Sound familiar? If you’ve […]
Tests in TypeScript or JavaScript often run setup code inside hooks like “beforeEach”: Developers must take care to get the setup correct, especially in large or nested test suites. Many scopes (“describe”, “beforeEach”, “it”) read and mutate the test fixtures. The setup must reset the fixtures before each test. Test authors must be careful to […]
A developer’s perspective on mastering AI coding tools for competitive advantage The software development landscape has undergone more transformation in the past year than in the previous decade combined. As AI coding tools evolve from novelty to necessity, development teams face a critical decision: invest heavily in learning these tools now, or watch competitors pull […]
What is this project? If you have not yet read the introduction, you can find it here. The abridged version is is: My goal is to create a system for determining the “best” possible Factorio factories based on footprint and cost to build. Modelling? So, one of the key things for making a maze solver, […]
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 […]
I love software engineering because it lets me create new things every single day. As a programmer, I get to conjure novel solutions to problems I’ve never encountered before – manipulating chaos is my jam. For months, I stubbornly resisted tools like Cursor, Cline and Windsurf. Why? Because I’m passionate about programming and worried these […]
This article was originally posted on my personal blog under the same title, “Dodging Merge Conflicts in git.” Introduction Of all the source control management systems that have ever been created, git is certainly one of them. You’ve probably used it, and been burned by a particularly complicated merge conflict. Resolving merge conflicts can be […]
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) […]
I learned about these open source and commercially licensed tools for developers at NeurIPS 2024. Most of the tools on this list are new to me, but not new to the world. You can deploy and use them today! …pssst – if your manager or your client would rather you make something from scratch instead […]
My development workflow revolves around virtual machines: I have dev VMs for multiple concurrently-running projects. Some are Windows, some are Linux. My hypervisor of choice used to be VirtualBox, but with the introduction of VBS, VirtualBox has become extremely slow because it’s forced to function under Hyper-V. So I switched to just using Hyper-V by […]