Services
Senior engineering, in the shape you need.
Some problems need a few days of experienced judgement. Others need a principal engineer in the team for months. Most clients use a mix of the two.
Specialist services
- Architecture review An independent, senior review of a proposed design or a system already in production, with a prioritised written report.
- Cloud cost reduction Find out where your cloud bill goes and cut what doesn’t need to be there, without trading away reliability.
- Legacy modernisation Modernise the systems your business depends on step by step, without a risky big-bang rewrite.
- AI integration and MCP MCP servers, CLIs and LLM features that connect AI assistants to real products and data, safely.
- AI-assisted software development Helping engineering teams get real, reliable value from AI coding assistants and agents, from someone who builds software that way every day.
- Rust engineering Fast, safe, efficient services, tools and components in Rust, from a principal engineer who reaches for it by choice.
Advisory
A senior second opinion, measured in days.
Useful when a big decision is coming up, or when something isn’t working and nobody can quite say why.
- Architecture reviews, of a proposed design or of a system already in production
- Code and system health checks, with a prioritised list of what to fix first
- Cloud cost reviews: where the money goes, and how much of it doesn’t need to
- Technology choices and build-versus-buy decisions
- Cloud, on-premises or colocation: choosing the right home for a workload
- How your team uses AI: what’s working, what’s risky, and what to change first
- Independent assessment of a supplier’s architecture and code quality. At Thames Water, my improvement plan helped the supplier release more often, with fewer errors.
You get a clear written recommendation, not a slide deck of options.
Hands-on engineering
A principal engineer on your team.
I work inside your team as a principal or lead engineer, usually on a day-rate contract.
- Designing and building the hard parts: core services, data models, integrations
- Setting technical direction and making the decisions others are blocked on
- Code review and mentoring that raise the standard of the whole team
- Helping the team work well with AI coding assistants and agents, on your own codebase
- Getting delivery working: CI/CD, infrastructure as code and security in the pipeline
Fixed-scope delivery
A defined outcome, at an agreed price.
For work that can be described clearly up front, we agree the scope, the outcome and the price before anything starts.
- Migrations: to the cloud, between clouds, or back out again
- Modernising legacy applications one piece at a time
- New services and internal tools
- AI integrations: MCP servers, CLIs and developer tooling
- Automating manual, error-prone processes
Technology
Given the choice, I build in Rust. I also work in Go, TypeScript and Node.js, and C#/.NET, with PostgreSQL and SQL Server, on Azure, AWS or plain Linux servers. I choose tools to suit the problem and the team that will maintain the result, not my own preferences.
How an engagement starts
- Get in touch. Email a few lines about what you’re trying to achieve and where things stand.
- Talk it through. A short call, with no charge and no obligation, to understand the problem. If I’m not the right person, I’ll say so.
- Agree the shape. A short written proposal setting out scope, approach and commercial terms: day rate or fixed price.
I do most of the work myself. For larger jobs, I bring in trusted colleagues I’ve worked with before, and I stay your single point of contact and responsible for the result.
Get in touch to discuss current availability and rates.
Have a problem worth solving?
Tell me what you’re working on. A short email is plenty, and you’ll get a straight answer on whether I can help.