Developer Tools
Getting Started with Terraform: A Practical Guide to Infrastructure as Code
Just like top terraformers in Minecraft reshape entire landscapes to build incredible worlds, mastering Terraform in software engineering gives you complete control over your digital infrastructure. Instead of manually clicking through cloud management consoles, you define your entire …
Revisiting Gorillas in Godot 4: Gemini 3.1 Pro Takes the Challenge
A few months ago, I ran an experiment asking two leading AI coding tools to recreate the classic 1991 QBasic game Gorillas in Godot 4. In my previous Gorillas post, I pitted Anthropic’s Claude Opus 4.6 against OpenAI’s GPT 5.3 Codex. Both generated playable games from a single prompt, …
From Insight to Production: Software Engineering Habits for Data Scientists
If you come from a data science background, your core strength lies in translating complex, messy datasets into actionable business insights. You are likely a master of statistical modelling, feature engineering, and extracting patterns from noise. However, a common bottleneck arises when you need …
Claude Code vs Codex: Recreating an Iconic Game
If you grew up with a DOS machine in the early 1990s, there is a good chance you remember Gorillas. Two apes perched on rooftops, hurling explosive bananas across a city skyline — it shipped free with QBasic and it was many people’s first taste of programming a game, or at least playing one …
Pydantic Settings: A Safer Config Option for your Python Apps
Environment variables are the default way many Python apps handle configuration. They are simple, portable, and work in every deployment environment. But as soon as you add more than a handful of settings, raw env vars become fragile and hard to reason about. Pydantic used to solve this with …
Migrating from Poetry to UV in a Python Project
This is a very short post about our move from Poetry to UV in the Sudoku Solver we’re building in Python. I don’t have a definitive reason for switching, but I’ve been experimenting with UV recently and I’m starting to prefer it over Poetry. In this post, we’ll outline the goals of the …
Lazygit Series: The Commits Panel
This is the fifth post in the Lazygit series. You can see a list of all of the posts in this series by visiting the Lazygit Series tag. This week, we’ll look at how to best use the commits panel. Lazygit’s commits panel allows you to track the hierarchy of commits in your …
Lazygit Series: The Branches Panel
This is the fourth post in the Lazygit series. You can see a list of all of the posts in this series by visiting the Lazygit Series tag. This week, we’ll look at how to best use the branches panel. Lazygit’s branches panel allows you to manage the branching strategy for your project. You …
Lazygit Series: The Files Panel
This is the third post in the Lazygit series. You can see a list of all of the posts in this series by visiting the Lazygit Series tag. This week, we’ll look at how to best use the files panel. Lazygit’s files panel offers a useful view of the state of the files in your repository, including …
Lazygit Series: The Status Panel
This is the second post in the Lazygit series. You can see a list of all of the posts in this series by visiting the Lazygit Series tag. This week we look at how to best use the status panel. Lazygit’s status panel offers a concise snapshot of your repository’s current state, showing essential …
Managing Git Repositories with Lazygit: The Terminal UI Powerhouse
This is the first post in a new series about the Git GUI tool that works directly in your terminal: Lazygit. You can see a list of all of the posts in this series by visiting the Lazygit Series tag. Let’s face it: managing Git repositories via command-line commands can sometimes feel cumbersome and …
A review of Python package managers in 2025
This is an overview of the current state of Python package management in 2025. You can find this and other posts by browsing the Python tag. Package management is a critical part of modern software engineering. It allows developers to declare, install, and isolate project dependencies in a reliable …











