-
The right approach for the situation at hand
I think highly of clean code principles, and I learned in start-ups how quickly a workable MVP can be up and running. There is no contradiction in that. The skill lies in recognising what matters right now: does the idea have to prove itself in the market first, or are formal correctness and performance the overriding concern? I make that call deliberately, and I say plainly what the shortcut will cost further down the line.
-
Small, traceable steps
Changes arrive in reviewable units with a history that reads. You can see at any time what I am working on and how far it has come. And what is built today will still make sense to your team without me in the room.
-
Tests are part of the solution
Automated tests are written with the feature, not afterwards. Integration tests run against real databases and real neighbouring systems, not against mocks that always return what you hoped for.
-
Automated delivery
Build, test and deployment run through a pipeline. A release is a button press and a changelog entry, not an evening of manual work.
-
Decisions are written down
I write architecture decisions down, together with the alternatives I rejected and the reason for the choice. Otherwise whoever wants to change something later has to guess.
-
Knowledge transfer over dependency
My goal is that your team moves forward after the engagement. Code review, pairing and clean documentation are part of the daily work.
-
Care with data and access
No credentials in the repository, encryption by default, data minimisation as the starting point. In regulated environments this gets audited anyway.
-
Technology is only half the job
I listen, I translate between the business side and engineering, and I name friction while it is still small. Working relationships from these projects regularly outlast them. I am a little proud of that, and I consider it one of the foundations of good results.
-
AI as a tool, not an autopilot
I use locally hosted models and the common cloud services for looking things up, as a source of architectural and implementation ideas, and to get on faster. The code is still written and owned by me. Where policy or confidentiality require it, I work with local models only, or with none at all.