Custom application development
Web, mobile and desktop software, secure from the start
Security added at the end of a project is expensive, incomplete and usually architectural. We design and build custom web, mobile and desktop applications where authorisation, data handling and trust boundaries are decided at the same time as the features that depend on them.
Why it matters
The costly flaws are design decisions, not typos
In the applications we test, the findings that lead to real exposure are rarely exotic. They are tenancy boundaries that were never enforced at the data layer, permission checks placed at the route rather than the record, and workflows that can be driven out of order.
Those are architecture decisions. By the time a penetration test finds them, changing them means touching everything built on top. Deciding them correctly during design costs a fraction as much, which is why threat modelling sits in our build process rather than after it.
Built into every project
- Threat model produced during architecture, not after launch
- Authorisation enforced server-side at every entry point
- Parameterised data access with no string-built queries
- Strict server-side validation regardless of client-side checks
- Secrets held in the environment, never in the codebase
- Security headers, secure cookies and enforced TLS by default
- Dependency review and a documented patching path
- Audit logging of security-relevant actions
Secure development lifecycle
Ten phases from discovery to maintenance
Security is not a stage in this list. It runs through all of them. Each phase has a security activity attached to it, and each one produces something you keep.
-
Discovery
Business goals, users, constraints and existing systems. We establish what success looks like before proposing an architecture.
-
Requirements
Functional requirements alongside security requirements: data classification, roles and permissions, compliance obligations, auditability and retention.
-
Architecture & threat modelling
System design, data flows and trust boundaries, with threat modelling carried out at the same time so controls are designed in rather than retrofitted.
-
UI implementation
Accessible, responsive interfaces built on semantic HTML with progressive enhancement, fast on real devices and usable by keyboard and assistive technology.
-
Backend development
Application and domain logic with parameterised data access, strict server-side validation, enforced authorisation at every entry point and structured audit logging.
-
API development
Versioned, documented APIs with authentication, object-level authorisation, rate limiting, schema validation and predictable error handling.
-
Security review
Code review against the threat model, dependency and secrets review, configuration hardening and verification of security headers and transport settings.
-
Testing
Automated unit and integration tests covering authorisation and validation paths, plus targeted security testing before release.
-
Deployment
Repeatable deployments, environment-separated configuration, secrets held outside the codebase, TLS enforced and least-privilege access to infrastructure.
-
Maintenance
Dependency and patch management, monitoring and logging review, and periodic reassessment as the application and its threat landscape change.
How we work
Delivery you can take over
You should not need us to keep running what we built. Every project is handed over with source code, documented architecture, automated tests and a deployment runbook.
We work in short increments with a review at the end of each one, so you see working software early and priorities can change without renegotiating the whole engagement. Where an existing system is involved, we assess it first and improve it incrementally. A rewrite is a last resort, not an opening proposal.
Documented
Architecture, data model and deployment steps written down and kept current.
Tested
Automated coverage of authorisation, validation and the critical business paths.
Portable
Environment-based configuration and repeatable deployments with no machine-specific setup.
Yours
Source code and full version history transferred to your organisation.
Development services
What we build
Custom Application Development
Purpose-built web, mobile and desktop applications designed, delivered and hardened by security-minded engineers.
Learn more DevelopmentInternal Business Applications
Replace fragile spreadsheets and manual processes with systems your team can actually rely on.
Learn more DevelopmentAPI Development
Documented, versioned APIs with authorisation enforced on every object and every operation.
Learn more DevelopmentBackend Systems Engineering
Data models, background processing and integrations built to stay correct under load and under change.
Learn more DevelopmentSecure Application Architecture
Threat modelling and architecture review before the expensive decisions are locked in.
Learn more
Have a project in mind?
Tell us what you are building and what it has to protect. We will come back with an approach, a shape and an honest estimate.