Nathan Cartmell

Nathan Cartmell

Backend Developer
Guildford, UK

Not looking for a new role at the moment, but always happy to talk backend or telecoms.

About

Currently Rebuilding device provisioning onto a new Kotlin and Spanner platform, and carrying the legacy VoIP and account domains across to it.

I build the systems behind cloud communications software — provisioning, VoIP account management and billing for a UK platform serving over 200,000 users.

I started in technical support, moved into mobile development building the company's native iOS and Android clients, and now work primarily on backend services. Having dealt with customer problems directly and then built the interfaces those customers use, I have a broad view of the domain — and it shapes design decisions as much as the technical reasoning does.

Outside work I'm usually running — Strava if you're curious.

Experience

System Developer · Nebula

Dec 2023 — Present
  • One of five engineers building a greenfield Kotlin microservices platform to replace a decade-old Java monolith — Spring Boot, gRPC, Protobuf and Cloud Spanner on GCP. Second in seniority on the project, owning the provisioning, VoIP and account domains.
  • Schema and data ownership across both generations of the platform: designing entities and migrations for the new system, consolidating overlapping legacy models, and keeping the two consistent while they run side by side.
  • Feature delivery end to end across the product range — customer portals, partner ordering, billing and provisioning — usually taking a requirement from specification through to release rather than building to someone else's design.
  • Maintain the internal systems the company runs on, including the operations portal used daily by support, sales and provisioning staff.
  • Act as effective third line for production issues — the escalation point when support and the wider development team cannot resolve something, diagnosing live against real customer impact.
  • Platform-wide engineering work: OpenTelemetry tracing across every service and the gateway, static analysis and formatting standards, API documentation, and rebuilt test suites.

Mobile Developer · Nebula

Dec 2022 — Dec 2023
  • Principal developer on the native iOS softphone in Swift, and its Android counterpart in Kotlin from late 2023 — maintained both alongside backend work until they were succeeded by a React Native rewrite in 2025.
  • Built WebRTC video conferencing: in-call UI, waiting rooms, host admin controls, participant management and inbound conference joining.
  • Delivered team chat with user tagging, markdown rendering, pinning, read state and SMS conversations — plus voicemail notifications, BLF presence indicators, call history and contact management.
  • Shipped a single codebase as two separately branded white-label applications.

Technical Support Engineer · Nebula

Jun 2021 — Dec 2022
  • Second-line support for the same communications platform I now build — diagnosing call quality, routing and provisioning issues across partner deployments.

Selected Work

Provisioning platform migration

2026
  • Provisioning is what configures a desk phone the moment it is plugged in — line keys, directories, dial plans, busy-lamp indicators — with nobody touching the handset. I rebuilt it from the legacy monolith into the new Kotlin platform and shipped it through staged releases without interrupting live provisioning.
  • Supports Grandstream, Yealink, Cisco, Polycom, Fanvil and Gigaset hardware, each with its own firmware quirks. One fix meant reformatting responses to one XML tag per line after tracing a failure to handsets using fixed-size line-read buffers that silently truncated anything longer.
  • Built the dual-write framework keeping legacy and new data models consistent throughout the migration — the seam the wider platform transition depends on.
  • I had maintained the Python provisioning server it replaced for two years, so the rebuild carried forward behaviour I already owned rather than reverse-engineering someone else's. Device check-in intervals are randomised so that thousands of handsets do not poll simultaneously after a restart.

Order and event processing

2024 — Present
  • The asynchronous backbone behind the platform: reseller and partner order processors, email subscribers, port verification handling, fraud alerting, and the record processor feeding call reporting.
  • Spans both event-driven consumers on Pub/Sub and recurring scheduled work — including distributed locking so that a job fires once across every running instance rather than once per instance.
  • Also covers number lifecycle — recycling deactivated numbers back into the available pool — and scheduled reconciliation against the payment and accounting systems.

Emergency address consolidation

2025
  • UK operators must hold an accurate installation address for every number so that 999 calls reach the correct control room. Two overlapping address models had grown up in the database — number addresses and emergency addresses — leaving no single source of truth for a legally significant field.
  • Consolidated onto one model and removed the legacy path entirely, reconciling four upstream carriers with differing address formats and validation rules, and adding validation at the point of entry rather than at submission.

How I Work

  • I have reviewed around 630 pull requests across the organisation. A meaningful part of my contribution sits in other people's branches rather than my own — catching problems early is cheaper than catching them in production.
  • I support developers joining the team, having come through the graduate route here myself and remembering what was unclear.
  • Getting work out of the door often means driving the conversation rather than the code. I coordinate across QA, Product, Support, Marketing and Development to get a release agreed, tested and actually shipped.

Technical

Languages
KotlinJavaPythonSwiftTypeScriptSQL
JVM
Spring BootSpring DatagRPCProtobufHibernate/JPACoroutinesOpenAPISpark Java
Python
FlaskSQLAlchemyFlask-LoginJinja
Data
Cloud SpannerPostgreSQLMySQLRedis
Platform
GCPPub/SubDockerUnleash
Observability
OpenTelemetryMicrometerSonarQube
Testing
JUnitMockKAssertJTestcontainers
Mobile
SwiftAndroidWebRTC
Integrations
StripeGoCardlessSalesforceZendeskXero
Domain
VoIP & SIPDevice provisioningNumber porting & lifecycleCarrier integrationEmergency call routingOfcom complianceSubscription billingCDR & call reporting

Certifications

Cradlepoint Certified Network Expert
Ubiquiti Enterprise Wireless Admin

Education

Higher National Certificate, Computer Science · The Bedford College Group 2020 — 2021