Services
Where I can help
Software for real problems, from a first working version to something you can run in production. If your needs don't fit neatly below, get in touch anyway.
Custom web applications
Off-the-shelf tools don't fit the way your team or customers actually work, or an idea needs a first working version to prove itself.
Related: Gregory, Sketch & Share
Typical use cases
- A first production version of a product idea
- Internal tools that replace spreadsheets and manual steps
- Customer-facing apps with accounts, data and installable (PWA) behaviour
Potential deliverables
- A deployed application and its source code
- A short technical overview and setup instructions
- A list of known limitations and suggested next steps
Backend systems & REST APIs
Your frontend, mobile app or partners need a dependable API, or an existing backend has become hard to change safely.
Related: ApiFreeMaN
Typical use cases
- Designing and implementing a REST API for a new product
- Documenting an existing API with OpenAPI
- Refactoring a fragile service so changes are less risky
Potential deliverables
- API implementation with an OpenAPI description
- Automated tests for the critical endpoints
- Deployment and configuration notes
Integrations & automation
Data is copied by hand between tools, or a process depends on someone remembering to run it.
Typical use cases
- Syncing data between third-party services through their APIs
- Scheduled jobs, imports and exports
- Scripts and small services that automate a recurring task
Potential deliverables
- A working integration with logging and error handling
- Documentation of how it runs and how to change it
Mobile & desktop applications
Your users need something that lives on their device, works offline or integrates with the local file system.
Related: SmartTimes, ApiFreeMaN
Typical use cases
- A focused Android app for a specific audience
- A desktop tool that works with local files
- Offline-first behaviour with on-device storage
Potential deliverables
- A store-ready or installable build
- Source code and release instructions
Architecture & technical consulting
You're about to commit to a technical direction, or the current system is slowing the team down and it's unclear why.
Typical use cases
- Reviewing a proposed architecture before building it
- Assessing an existing codebase and delivery process
- Helping a team plan a migration or a large refactor
Potential deliverables
- A written assessment with prioritised recommendations
- Working sessions with your team where useful
Quality engineering & test automation
Releases are stressful, regressions reach users, or the existing test suite is slow and flaky enough that people stop trusting it.
Related: Flow-Guard
Typical use cases
- Defining a practical test strategy for a product
- Automated end-to-end and API regression tests in CI
- A pre-release review of a product before launch
Potential deliverables
- A test strategy document sized to your team
- An automated test suite running in your CI pipeline
- Findings reports with clear reproduction steps
How an engagement starts
It starts with a conversation about the problem. From there, the work usually follows this shape:
01
Understand the problem
We talk through what you're trying to achieve, who it's for and what already exists.
02
Choose a practical approach
An architecture and plan that fits the problem, the budget and the people who will maintain it.
03
Build and validate
Working software in small increments, tested as it's built and reviewed with you along the way.
04
Deploy and observe
Ship to production with the monitoring and documentation needed to run it with confidence.
05
Improve from feedback
Use real usage and feedback to decide what to improve next.
Have a software problem to solve?
Tell me what you're trying to build or fix. I'm happy to talk about project enquiries, product collaborations and professional conversations.