Services
Everything a software product needs, from one engineer
Six areas of work that cover the full life of a digital product — shaping it, building it, shipping it, and keeping it healthy once real users depend on it.
SaaS product development
Multi-tenant web platforms with subscriptions, roles and an admin back office built in from the start.
A SaaS product is far more than its main feature. It needs tenant isolation, a permission model that survives contact with real customers, billing that reconciles with your accounting, and an admin surface your team can actually operate. I build all of it as one coherent system rather than bolting pieces on later.
- Multi-tenant architecture with strict data isolation
- Subscription billing, plans, trials and usage metering
- Role-based access control, teams and invitations
- Admin back office, audit trails and impersonation
- Self-service onboarding and account lifecycle flows
Android & iOS applications
Native and cross-platform mobile apps, taken through development, store review and release.
Mobile work is judged on the details: how the app behaves on a bad connection, how quickly it starts, how gracefully it handles a rejected permission. I build apps that hold up in those moments, and I handle the unglamorous parts too — signing, provisioning, store metadata and the review process.
- Native Android (Kotlin, Jetpack Compose) and iOS (Swift, SwiftUI)
- Cross-platform builds where a shared codebase is the better trade-off
- Offline-first storage and conflict-aware synchronisation
- Push notifications, deep links and in-app purchases
- App Store and Google Play submission, review and phased rollout
Backend & API engineering
The systems underneath — APIs, background processing and integrations that stay reliable under load.
Most product problems that surface in the interface actually live in the backend. I design APIs that are predictable to consume and safe to evolve, move slow work into queues, and make integrations resilient to the third parties that will inevitably time out.
- REST and GraphQL APIs with versioning and documentation
- Queues, scheduled jobs and event-driven background processing
- Third-party integrations: payments, e-mail, ERP, logistics, identity
- Webhook delivery and consumption with retries and idempotency
- Query, cache and database tuning for real traffic
Cloud, DevOps & deployment
Repeatable deployments, monitoring and backups, so releases are routine rather than risky.
Software that cannot be deployed confidently gets deployed rarely, and rare deployments are how small problems become large ones. I set up pipelines that make shipping unremarkable, and the observability needed to know when something is wrong before your customers tell you.
- CI/CD pipelines with automated testing and zero-downtime releases
- Containerised environments that match production locally
- Infrastructure on AWS, Hetzner, DigitalOcean or your existing provider
- Uptime, error and performance monitoring with real alerting
- Automated backups with restores that are actually tested
Legacy modernisation & rescue
Bringing inherited, outdated or stalled codebases back to a maintainable state.
Plenty of working software is running on unsupported framework versions, with no tests and no one left who built it. Rewriting from scratch is usually the most expensive option. I stabilise first, add a safety net of tests, then modernise in steps that keep the product live throughout.
- Framework and language upgrades, including long-overdue jumps
- Incremental refactoring behind a growing test suite
- Performance investigation and remediation
- Security review and dependency remediation
- Documentation and handover for whoever maintains it next
Technical consulting & architecture
Senior technical judgement at the points where a wrong decision is expensive to reverse.
Sometimes what is needed is not more implementation, but a clear-eyed assessment: is this architecture going to hold, is this codebase worth acquiring, is this estimate realistic. I do that work as a defined engagement with a written deliverable at the end.
- Architecture and scalability reviews
- Technical due diligence ahead of investment or acquisition
- GDPR and data-protection readiness for product teams
- Vendor and technology selection
- Scoping and estimation support for non-technical founders
Technology
The tools I reach for
Chosen for maturity and long-term support rather than novelty — because someone has to maintain this in three years.
Backend
- PHP
- Laravel
- Livewire
- C#
- .NET
- Java
- Node.js
- REST
- GraphQL
- Queues & Horizon
Frontend
- TypeScript
- Vue
- React
- Tailwind CSS
- Alpine.js
- Vite
- Inertia
Mobile
- Kotlin
- Jetpack Compose
- Swift
- SwiftUI
- Flutter
- Firebase
- App Store & Play Console
Data & storage
- PostgreSQL
- MySQL
- Microsoft SQL Server
- Redis
- SQLite
- Elasticsearch
- S3-compatible storage
Infrastructure
- Docker
- AWS
- Microsoft Azure
- Hetzner
- DigitalOcean
- Nginx
- GitHub Actions
- Terraform
Quality & tooling
- PHPUnit & Pest
- Playwright
- Static analysis
- Sentry
- Structured logging
- Uptime monitoring
Not sure which of these you need?
Describe the problem rather than the solution and I will tell you what the work actually involves — including when the honest answer is that you do not need me yet.
Get in touch