Blog
Longer notes on software engineering and working with AI – written down so I have to get them right.
· 27 min read
Engineering mindset in the age of AI
AI took the typing, not the engineering – and the thinking is now the bottleneck. What that mindset is, how its absence looks (tool faith, green tests and red prod, best practices without their context), why AI repriced every trade-off, the difference between simple and naive, and what a junior loses when the consequences land on someone else. With migrations, three pods and an Excel export, in .NET and Java.
EngineeringAI engineering.NETJavaCareer· 22 min read
Shadow AI and local AI: the data class decides
It isn't local versus cloud: there are four levels of control, and the data class picks one. The arithmetic of running models locally, why local carries the burden of proof, the LLM provider as an adapter, what an EU region does and doesn't give you – and why shadow AI is a product problem, not a disciplinary one.
AI engineeringLocal LLMsSecurityArchitecture· 20 min read
Loop engineering is a control problem
What people mean by "loops" around coding agents, why the version that works in a team is a fifty-year-old control loop with an agent as the actuator, and how to build one from a linter, a cron job and pull requests.
AI engineeringCoding agentsControl loops· 18 min read
Two kinds of micromonolith
Microservices and Kubernetes are scaling and organisational tools, not quality tools. What splitting an application really costs, why the modular monolith is the good micromonolith, and how to build one that scales without either.
Architecture.NETModular monolithMicroservices· 18 min read
Git and GitHub: the mental model, in pictures
Almost every git confusion is a missing picture, not a missing command. The pictures: snapshots, the three areas, branches, remotes, pull requests and undo – with VS Code as the daily driver and the commands beside every button.
GitGitHubVS CodeFundamentals