01
Software engineering
Design and implementation of applications that carry business logic, from data models through to interfaces.
Home / Index
Information technology services
An engineering practice for software, web platforms and cloud infrastructure. The company designs, builds, integrates and maintains systems that organisations depend on daily.

The company concentrates on the parts of technology that carry operational weight — the applications staff use every day, the interfaces customers see, the pipelines that move data, and the infrastructure underneath all of it.
That focus shapes the technical choices. Established languages, well-supported frameworks and explicit architecture are preferred over novelty. Every component is expected to be readable by another engineer, testable in isolation and replaceable without a rewrite of everything around it.
Work is scoped so that value arrives in stages. A first release is deliberately small and observable, and later stages build on what that release proves.
01
Design and implementation of applications that carry business logic, from data models through to interfaces.
02
Browser-based products, portals and content-driven sites built for maintainability and measurable performance.
03
Environment design, deployment pipelines, observability and cost-aware resource configuration.
04
Connecting internal systems and third-party services so information moves reliably between them.
05
Replacing repetitive manual steps with scheduled, auditable processes that report their own outcomes.
06
Ongoing correction, dependency upkeep and incremental improvement after a system goes live.
Custom development is appropriate when off-the-shelf software forces an organisation to distort the way it works. The company builds applications around existing processes instead of the other way round.

Front-end work is treated as engineering, not decoration: state, accessibility and performance are part of the specification.
Component structures, layout systems and typographic scales that stay coherent as a product grows.
Semantic markup, keyboard reachability, contrast and reduced-motion behaviour considered during implementation.
Asset sizing, lazy loading below the fold, caching and rendering strategy chosen per page.
Editorial structures and metadata so pages are readable by people and by crawlers.


Environments are defined in configuration so they can be recreated, reviewed and changed with the same discipline as application code.
Most organisations run several tools that were never designed to work together. Integration work maps the data each system owns, agrees a single source of truth for every field, and builds the transfer layer between them with retries, validation and clear error reporting.
Automation follows the same principle. A manual routine is documented step by step, then implemented as a scheduled or event-driven process that records what it did and raises an alert when a step fails.
Typical artefacts
Security practices are built into ordinary engineering work rather than added at the end. The aim is to reduce avoidable exposure; no engineering practice can promise that a system will never be attacked.
Access granted narrowly, reviewed when roles change.
Untrusted data validated at the boundary it enters.
Credentials kept out of source control and rotated.
Third-party packages tracked and updated deliberately.
Encrypted connections and sensible default headers.
Meaningful logs that support investigation after an incident.

Phase 01
The problem, current systems, constraints and the definition of a good outcome are written down and confirmed.
Phase 02
Work is broken into deliverables with assumptions and open questions stated explicitly, so unknowns are visible rather than hidden in an estimate.
Phase 03
Short cycles produce working software. Each increment is reviewed against the framing document and the plan is adjusted.
Phase 04
Automated and manual checks are run against agreed acceptance criteria before anything reaches production.
Phase 05
Deployment runs through a repeatable pipeline with a rollback path and post-release observation.
Phase 06
Work continues into maintenance, or documentation and access are handed to the team that will own it.
Tests exist to state what a system is supposed to do and to notice when that stops being true. They are written alongside the code they cover, not retrofitted at the end of a project.
Individual functions and modules checked against their contracts, including edge cases and error paths.
Behaviour across module and service boundaries, including database access and external interfaces.
Critical user journeys exercised through the interface in a browser.
Every reported defect gains a test so the same fault is caught if it returns.
Exploratory checking of interfaces, content and accessibility before release.
The test suite runs automatically on every change; failures block the release.
A system in production changes even when nobody adds features: dependencies age, volumes grow and requirements shift. Maintenance keeps that drift under control.
Decisions, assumptions and open questions are recorded in plain English so nobody relies on memory.
Progress is demonstrated with something that runs, at short and predictable intervals.
Where an estimate depends on an unknown, the unknown is named instead of padded over.
Documentation, readable code and access handover so the client is never dependent on a single explanation.
Budget, internal policy, legacy systems and staff capacity are treated as part of the design problem.

Work centres on custom software, web applications, cloud environments, integration between systems, automation of manual processes, and long-term maintenance of systems already in production.
It begins with a written description of the problem, the systems already in place, and the outcome expected. That description is turned into a scope note that lists assumptions, open questions and the first deliverable.
Yes. Incremental work on an existing codebase or infrastructure is common: adding tests, isolating risky areas, updating dependencies and extracting components before any larger change is considered.
Through working software at short intervals, written notes on what changed, and a shared record of open issues. Estimates are revised as understanding of the problem improves.
Automated tests are written alongside features, changes are reviewed before merging, and releases run through repeatable pipelines. Testing reduces defects; it is not presented as a guarantee of a defect-free system.
Maintenance covers dependency updates, security patching, monitoring review, correction of reported defects and planned improvements agreed in advance.
By email to [email protected]. Including the goal, current systems, constraints and timing helps produce a useful first response.
Enquiries are handled by email. A short description of the goal, the systems already in use, any constraints and the intended timing is enough for a considered first reply.
Company
SPOONER & SONS GAS & HEATING LTD
Shown as plain text. This website contains no clickable elements.