Services
Eight services, described in terms of the work they involve.
Each service below sets out the situation it addresses, what the engagement covers, what you receive, and how we work. Scope is always confirmed in writing before a project begins.
01Custom software development
Applications built around an operating model that off-the-shelf products cannot express.

Common need
The process that makes the business work does not fit a standard product, and workarounds have started to cost more than the software.
Scope
- Domain modelling and data design
- Backend services and business logic
- User interfaces for each role involved
- Migration of existing records
Deliverables
- Running application in a maintained environment
- Source repository with readable commit history
- Automated tests covering critical paths
- Data model and integration documentation
Working approach
We describe the domain in plain language first, then design the schema and module boundaries. Features ship in short cycles so behaviour can be reviewed early, and every cycle ends with something you can use rather than a progress report.
02Web application development
Browser-based products, portals and internal tools that stay usable as data grows.
Common need
Several roles need different views of the same records, and coordination currently happens through spreadsheets, email threads and shared folders.
Scope
- Information architecture and interface design
- Authentication, roles and permissions
- Server-rendered or static delivery where it improves load time
- Accessibility and responsive behaviour
Deliverables
- Responsive application tested on mobile, tablet and desktop
- Component structure documented for future work
- Performance budgets for bundle size and query latency
- Deployment configuration and environment notes
Working approach
Data access is planned around realistic volumes: pagination, indexing and caching decided before the interface is polished. Accessible semantics and keyboard support are treated as requirements, not enhancements.
03Cloud solutions
Environments and pipelines that can be rebuilt from their definitions.

Common need
Deployments are manual, environments differ from one another, and nobody is certain the backups would restore.
Scope
- Environment topology for development, staging and production
- Infrastructure defined as code
- Managed databases, storage and networking
- Automated deployment pipelines
Deliverables
- Reproducible environment definitions
- Deployment pipeline with automated checks
- Monitoring, alerting and log aggregation
- Tested backup and recovery procedure
Working approach
Access follows least privilege and secrets live in a managed store. Cost and scaling behaviour are reviewed against expected load, and recovery steps are rehearsed before they are needed rather than improvised during an incident.
04API and systems integration
Reliable data exchange between systems that were never designed to cooperate.

Common need
Two or more systems hold overlapping records and disagree, so staff reconcile them by hand or trust whichever screen they opened last.
Scope
- Field-level ownership mapping between systems
- Integration services, webhooks or queue consumers
- API design and documentation for external consumers
- Reconciliation and drift reporting
Deliverables
- Integration service with retries and idempotent writes
- Documented API contracts and error semantics
- Failure handling with alerting and replay
- Reconciliation reports showing mismatches
Working approach
We agree which system owns which field before writing code. Transport is chosen by latency requirements, and failures are surfaced through alerts and replayable queues instead of disappearing into a log file.
05Workflow automation
Repetitive manual work replaced with observable, recoverable processes.
Common need
People spend hours each week copying data, generating the same reports or chasing approvals through email.
Scope
- Documenting the current manual process end to end
- Scheduled jobs, event-driven triggers and approval flows
- Document and report generation
- Notification and escalation rules
Deliverables
- Automated workflow running on a defined schedule or trigger
- Audit trail of every run and its outcome
- Defined failure behaviour with human notification
- Operating notes for the team that owns the process
Working approach
Before anything is scripted we write down the manual steps and decide what should happen when a step fails. An automation that fails quietly is worse than the process it replaced, so every run is logged and every failure is visible.
06Quality assurance
Layered testing that protects behaviour while the codebase keeps changing.

Common need
Releases cause regressions in areas nobody touched, and confidence in deploying has dropped.
Scope
- Test strategy across unit, integration and end-to-end layers
- Test automation in the delivery pipeline
- Exploratory testing of new functionality
- Defect triage and regression coverage
Deliverables
- Automated test suites running on every change
- Coverage of the journeys that must never break
- Regression test for every reported defect
- Written test strategy the team can maintain
Working approach
Testing is treated as a design activity: hard-to-test code is usually badly structured code. Suites run in the pipeline and a failure blocks release, which keeps quality a technical fact rather than a negotiation.
07Technical consulting
Independent review and architecture guidance before large commitments.

Common need
A significant decision is pending — a rebuild, a platform migration, an inherited codebase — and the team wants an outside technical read.
Scope
- Architecture and code review
- Technology selection with trade-offs stated
- Scalability, cost and risk assessment
- Roadmap and sequencing advice
Deliverables
- Written findings with severity and effort estimates
- Prioritised recommendations, sequenced by risk
- Architecture notes and diagrams where useful
- A walkthrough session with the responsible team
Working approach
We read the code against real behaviour rather than relying on documentation, and we say plainly when the existing system is worth keeping. Recommendations are ordered by risk reduction per unit of effort.
08Software maintenance and support
Ongoing care that keeps a working system healthy and changeable.

Common need
The software works, but dependencies are ageing, small improvements queue up, and nobody is clearly responsible when something breaks.
Scope
- Dependency and security updates
- Monitoring, log review and incident response
- Defect fixes with root-cause analysis
- Incremental improvements and small features
Deliverables
- Regular update cycles in small reviewable batches
- Monitoring and alerting kept current
- Documented fixes with regression coverage
- Handover documentation kept up to date
Working approach
Maintenance is continuous rather than reactive. Updates arrive in small batches that are easy to review and revert, and recurring defects are traced to their cause instead of being patched repeatedly.
Enquiries
Project enquiries are handled by email.
Describe the problem, the systems already in place and the outcome you need. Contact details are listed as plain text on this site.