We work across the whole life cycle of an application: designing the architecture, building it, integrating it with what is already in place, taking it live, maintaining it and developing it further. The five areas below describe what we do; most projects combine several of them.
Our expertise
Five areas of work
SaaS platforms and software distribution
01
We design multi-tenant software distribution platforms: a single foundation serving several organisations, with the data and permission isolation that implies.
Service catalogue: modelling the offer, tailoring it per reseller, handling options and commercial life cycles.
Automated provisioning: creating, changing and terminating services without manual intervention, with error recovery.
Multi-tenancy and account hierarchies: data isolation, delegated administration, cascading reseller tiers.
Usage-based billing: collecting consumption data, applying differentiated price lists, reporting across several distribution tiers.
Monitoring: availability and activity tracking, alerting, operational dashboards.
A platform of this kind is judged on its ability to absorb growth without a matching increase in manual work. That is the criterion that drives our architectural choices.
Line-of-business applications, CRM and management portals
02
We build the applications that carry your business when no product on the market matches the way you work.
Complete CRM systems: account management, sales pipeline, interaction history and reporting, aligned with how your business actually operates.
Back-office systems and management portals: administration interfaces, customer areas, operational tracking tools.
Takeover and modernisation: audit of an existing application, technical version upgrades, phased overhaul, improvements to performance and usability.
Industrialisation: turning a tool built under time pressure into an application that is maintainable, tested and safe to deploy.
Taking over an existing project is a request we handle regularly. We start with an honest assessment of the code, the architecture and the dependencies, then propose a phased route forward rather than a wholesale rewrite.
Cloud-to-cloud integration and systems integration
03
Organisations accumulate tools that do not talk to each other. We build the links that are missing.
API design: documented, versioned REST APIs, designed to be consumed by third parties.
Data synchronisation: propagation between systems, conflict handling, idempotency, catch-up after an incident.
Integration of disparate systems: connecting cloud tools and internal applications whose data models do not agree.
Unified portals: one interface above several services, so your teams stop switching between tools.
The hard part of an integration is almost never moving the data: it is reconciling the models and handling the error cases. That is where most of our attention goes.
Data, backup and resilience
04
We design cloud backup solutions that account for the real-world European constraints.
Bandwidth and data volumes: incremental backup strategies, deduplication, scheduling matched to the windows actually available.
Data sovereignty: data location and hosting choices treated as architectural constraints, not as an option.
Compliance: auditability, retention periods, access rights and documented data return.
Restoration: because a backup that has never been restored is not a backup, we build verification procedures in from the design stage.
Consultancy, audit and modernisation
05
Not every request starts with development. We also work in a supporting role.
Digital infrastructure audit: technical assessment, identification of risks and blocking points, prioritised recommendations.
Performance optimisation: diagnosis, measurement, and removal of bottlenecks in the application and the infrastructure.
Product ownership: discovery and scoping, specification, trade-off decisions and end-to-end delivery management of a software product, alongside your teams.
Technical advisory: a second opinion on an architecture, code review, help with a technology decision, bringing your developers up to speed.
These assignments can be short and self-contained. You do not need a development project under way to bring us in.
Case studies
Three case studies
Our confidentiality commitments prevent us from naming our clients. The three cases below are presented through their technical content: the context, the problem, what we designed and the outcome.
Industrialising software distribution across a reseller network
Multi-tenancy
Provisioning
Usage-based billing
Monitoring
Context
A distribution network sold software services to end customers through several tiers of resellers. The catalogue held around ten services and served 500 customer accounts across 150 active partners, for tens of thousands of end users.
Problem
Every subscription, change or termination required manual steps spread across several teams and several administration consoles. Time to service was measured in days, data entry errors fed straight through to invoicing, and inter-tier reseller billing was reconstructed by hand every month. The model could not absorb the growth of the network.
What we designed
A single multi-tenant platform built around four components: a centralised service catalogue, tailorable per reseller with its own commercial terms; an automated provisioning engine that creates, changes and terminates services on the underlying systems, with logging and error recovery; a multi-level account hierarchy, with strict data isolation and delegated administration at every tier of the network; and a usage-based billing engine that collects actual consumption, applies the price list specific to each tier and produces invoicing data reproducibly. The whole platform is overseen through operational dashboards and alerts on failed operations.
Outcome
Bringing a customer into service became an automated operation instead of a manual, multi-team process. Billing is produced from measured consumption rather than from manual rework. The network was able to extend its catalogue and its number of resellers without a matching increase in administrative load.
Backing up large data volumes with constrained bandwidth and sovereignty requirements
Incremental backup
Deduplication
Data sovereignty
Compliance
Context
A cloud backup requirement covering more than 4 petabytes of data, spread across an estate of close to 10,000 workstations and servers, including more than 500 virtual machines, with network links of very uneven capacity from one location to another.
Problem
Three constraints stacked up. The data volume far exceeded what the available links could transfer in an overnight window. The data had to remain hosted in Europe, with a demonstrable location. And the arrangement had to be documented to satisfy European compliance requirements on retention, auditability and access rights.
What we designed
An incremental backup strategy with deduplication, so that only what had genuinely changed was transferred, bringing the daily volume within the available network capacity. Scheduling tailored site by site, accounting for real bandwidth and local working hours, with interrupted transfers resumed rather than restarted. A sovereign hosting architecture: controlled and documented data location, encryption, access segregation. A compliance framework: operation auditability, configurable retention periods, access logging, documented procedures for returning and deleting data. Restoration procedures verified on a regular cycle, so that the ability to restore is proven rather than assumed.
Outcome
Backups complete within the available windows at every site, including the least well connected. Data location and retention periods are documented and will stand up to an audit. Restorations are tested, which turns an assumption into a guarantee.
Unifying disparate cloud tools behind a single CRM
Bespoke CRM
REST APIs
Two-way synchronisation
Unified portal
Context
An organisation whose sales and operational activity ran on several separate cloud tools, each holding part of the customer record, and all of them called on daily across its internal user base.
Problem
No single tool held the complete view of a customer. Teams re-entered the same information into several interfaces, discrepancies between systems surfaced late, and any cross-cutting question — the real status of an account, the history of a request — meant opening three or four applications. Consolidated reporting was assembled by hand.
What we designed
A bespoke CRM acting as the customer system of record, with a data model designed to absorb the conflicting representations held in the existing systems. An integration layer built on dedicated REST APIs, synchronising data both ways with the cloud tools already in place. Explicit conflict and error handling: precedence rules between sources, idempotent operations, a catch-up queue for when a third-party service is unavailable. A unified portal giving teams a consolidated view per customer, with everyday actions available without leaving the interface. A reporting foundation fed by data that has already been reconciled.
Outcome
Double data entry has gone from the processes covered. Teams have a single, current view of every customer. Discrepancies between systems are detected and logged as they occur instead of being found at month end. Reporting is produced from the system of record, with no manual rework.
Next step
Does your requirement look like one of these?
It never looks quite the same. That is why we start with a conversation: understanding your context before proposing an architecture.