Telco engineering for subscriber-scale systems.
BSS modernisation, retention platforms and digital channels for operators — where every system runs at subscriber scale.
- Estate map and load model
- Contracts and one live journey
- Build under shadow
- Segment by segment
- Operate and tune
Telco software means very large subscriber bases.
Telco software means very large subscriber bases, billing accuracy to the second, and churn measured in basis points. We build and modernise the customer-facing and revenue-side systems — digital channels, loyalty and retention, campaign engines — that sit on top of the network core.
Two things make the work different from ordinary enterprise engineering. The first is arithmetic: a change that is harmless on a small dataset is an incident across the full base, so cardinality, fan-out and cache behaviour have to be reasoned about before the first line of code rather than discovered in production. The second is that almost everything is billing-adjacent. A retention offer changes a charge. A self-care action changes a plan. A dealer activation changes a commission. Each of those is money, which means each of them needs an idempotency key, a reconciliation path and an audit record — not an optimistic write and a hopeful log line.
Nothing can be replaced. The billing stack, the CRM and the provisioning chain have been in service for years, carry the revenue and will still be there after this programme ends. Useful work in telco is therefore additive: new capability at the edge, governed contracts in the middle, and any change to the core done under parallel run with the numbers compared before anyone commits to a cutover.
Four areas we work in.
We build in this sector as a services team and we offer platforms for retention programmes and channel commissions.
Retention & loyalty
Churn-prediction-driven programmes on Loyalty & Retention — offers targeted before the cancellation call, not after. Risk scores are produced on the base, turned into offers by value and risk band, and measured against holdouts so the commercial team can see what the programme earned rather than what it spent. Rules, budgets and eligibility are configuration, versioned, with every decision traceable to the rule that made it.
Digital channels
Self-care apps and web built to deflect calls by actually working — balance, plans, support, payments. Deflection is an engineering outcome before it is a design one: the balance has to be current, the plan change has to complete, and the payment has to reconcile. We hold a latency budget on the actions people actually take, and we instrument the ones that fail so a broken journey is a graph rather than a review-store complaint.
Campaign & commission systems
Dealer and channel incentives on Sales Performance — governed, auditable, spreadsheet-free. Plan logic lives as configuration with a version history, activations and their clawbacks settle against the same record, and disputes resolve by opening the calculation rather than rebuilding it. Channel partners see the same numbers finance settles on, which is what takes the monthly argument off email.
BSS modernisation
Strangler-pattern re-engineering around billing and CRM estates — new capability without betting the subscriber base. We characterise the existing behaviour with tests, put an anti-corruption layer in front of it, move one capability at a time and reconcile continuously. The old system keeps running until the new one has proved it agrees, and each step is designed to be reversible.
What we build, in detail.
Saves before the cancellation call, measured against a holdout.
Retention programmes fail in two familiar ways: the offer arrives after the customer has decided, or nobody can prove the offer did anything. We build the loop end to end. Usage, billing, care and network-experience signals feed a churn model that scores the base on a schedule; scores are banded by risk and customer value; the loyalty engine turns bands into offers with budgets, eligibility rules and frequency caps; and a randomised holdout stays untreated so uplift is measured rather than claimed. The commercial team changes bands and budgets themselves — the change is configuration with a version history, not a release.
- Signals from usage, billing, care contacts and network experience, refreshed on the cadence the base warrants
- Offers capped by budget, eligibility and contact frequency, with every decision traceable to its rule version
- Holdout groups by design, so uplift is reported against a control instead of against last quarter
Dealer commissions that settle without a spreadsheet.
Channel commission in telco is a maze: activation tiers, tariff mixes, quality gates, clawbacks on early churn, regional overrides and a monthly deadline that never moves. More often than not it runs on a spreadsheet estate that only a few people fully understand. On Sales Performance the plan is configuration — conditions and actions, versioned and simulated before publication — and every activation, adjustment and clawback settles against one record. When a dealer disputes a figure, the answer is the calculation itself: the rule version, the qualifying events and the adjustments, opened in front of them.
- Plan rules as versioned configuration, simulated against last period’s activations before you publish
- Clawbacks on early churn linked to the original activation rather than netted off an unrelated line
- Partner-facing statements from the same record finance reports on, so both sides read one number
Example rules. Yours are configured with you.
An integration layer the estate can survive.
The estate diagram is usually familiar: a dozen systems, point-to-point links between most of them, and nobody willing to touch the oldest one. The way out is not a rewrite — it is a governed layer that turns the estate into contracts. Systems of record publish facts once onto an event backbone; consumers read at their own pace with idempotent handlers, dead-letter topics and replay; and every new capability integrates once against the contract instead of again against each system. Nothing new writes to the billing stack without a reconciliation path.
- Change data capture to make a system you may not modify into an event source
- Contract tests in CI on every boundary, so an upstream change is caught before it reaches a subscriber
- Reconciliation on every money-touching flow, with differences reported rather than absorbed
One platform estate, three sets of expectations.
Change without betting the base.
The architecture seat cares about blast radius. We keep the work here additive and reversible: contracts before code, an anti-corruption layer in front of anything old, parallel run before any cutover, and infrastructure defined as code so an environment can be rebuilt rather than remembered. The estate map and the runbooks are handed over as they are written, not assembled at the end of the engagement.
- Strangler-pattern migration with reconciliation at every step
- Hybrid by default — on-premise cores and cloud edges under one delivery pipeline
- Security and residency as design inputs, evidenced for audit — see cybersecurity
Offers built to move the base, with the maths shown.
The commercial seat wants to change a campaign and know what it earned. Retention and campaign logic is configuration with simulation and version history, so a change does not queue behind a release. Measurement is built in: holdouts, budgets and per-offer attribution reported on a governed data model rather than on an export somebody maintains by hand.
- Segments, offers and caps configured and simulated before they go live
- Uplift measured against holdouts, per offer and per value band
- One definition of churn, ARPU and base across commercial and finance reporting
Deflection that comes from things working.
The operations seat measures calls, handling time and repeat contacts. Self-care deflects a call only when the answer in the app is current and the action completes — so we treat balance freshness, plan-change completion and payment reconciliation as the product, and the interface as the thin part on top. Care agents get the same view the customer has, including what the customer just tried, so the conversation starts from the failure rather than from the beginning.
- Latency budgets on the actions that carry volume, alerted per step
- Failed journeys instrumented and triaged, not left to review-store archaeology
- Agent and self-care views built on the same contracts, so the two stay consistent
The OSS/BSS estate, and how we approach each part.
Billing & rating
Read-mostly contracts with shadow runs and reconciliation before anything touches production balances
CRM & customer master
Customer, subscription and contact history exposed through one governed contract instead of per-channel queries
Provisioning & order management
Long-running orders modelled as state machines with compensation, so a failed step is recoverable rather than manual
Product catalogue
Tariffs, bundles and eligibility read from the catalogue of record — not duplicated into the channel layer
Mediation & usage records
High-volume event streams consumed idempotently with dead-letter handling and replay for late files
Payments & collections
Tokenised card and direct-debit flows, retries, dunning and refunds each linked to the charge that caused them
Identity & access
Subscriber identity consistent across app, web and care
Data warehouse & BI
Ledger and usage events exported to your lakehouse with governed models beneath the reporting
The habits we bring to a telco engagement.
- Subscriber-scale load engineering from the start. Cardinality, fan-out and cache behaviour are designed before the first feature, and load tests run against your own traffic shape rather than a generic profile.
- Billing-adjacent accuracy: reconciliation on every money-touching flow. Idempotency keys, replay-safe consumers and a reported difference wherever two systems could disagree — a discrepancy is a ticket, not a rounding decision.
- Regulatory data handling — KVKK and sector rules as design inputs. Residency, retention and lawful-basis decisions are made at design time and evidenced, so an audit reads a document instead of an explanation.
- Integration across OSS/BSS estates, designed not to destabilise them. Read-mostly contracts, anti-corruption layers and shadow runs before any write path; the core keeps its own failure budget.
- Parallel run before every cutover. New logic shadows old logic on live traffic until outputs agree case by case; migration then happens segment by segment with a rehearsed rollback.
- Observability across the estate. OpenTelemetry traces from the app through the event backbone to the system of record, with SLOs per journey and alerting on the steps that carry revenue.
- Hybrid as a first-class target. On-premise cores and cloud edges under one delivery pipeline, infrastructure as code on both sides, and no environment that exists only in somebody’s memory.
- Handover as we go. Runbooks, dashboards, contract tests and decision records are written during delivery, so your team can operate what we built once we stop.
From estate map to operating at base scale.
Estate map and load model
We walk the OSS/BSS estate with your architects, record what each system owns, how it fails and what it costs per call, and build the first load model from real traffic. The output is an integration map, a latency budget per journey and a list of assumptions to test first.
Contracts and one live journey
The integration layer goes in behind versioned contracts and one journey runs end to end against real systems — a self-care action, a retention offer or an activation. Small in scope, real in every other respect.
Build under shadow
Feature work proceeds while any money-touching path runs in shadow against the existing system. Outputs are compared case by case, differences are investigated rather than tuned away, and load tests run continuously against the base’s real shape.
Segment by segment
Traffic moves in tranches with a rehearsed rollback at every step and reconciliation reports at each tranche. Nothing goes wide until a tranche has run clean through a full billing cycle.
Operate and tune
SLOs, dashboards and incident handling shared with your operations centre, model and rule tuning on the running base, and regular reviews of the load model against what actually happened, at a rhythm agreed with you.
Frequently asked questions
Neighbouring sectors we work in.
Bring us a problem from your industry.
Describe what is going wrong today. An engineer reads it and replies in writing with a concrete path.