Skip to main content
Xalicon

HRTech

Retiring a decade-old HR platform one capability at a time

Placeholder case study. A ten-year-old HR platform migrated capability by capability, with infrastructure brought under code before anything moved.

  • TypeScript
  • Node.js
  • Next.js
  • PostgreSQL
  • Debezium
  • Terraform
  • Kubernetes
  • AWS

Sample case study — illustrative, not a delivered client engagement

Beacon People Systems is an invented company used to demonstrate our case-study format and our approach to this kind of work. The technical detail reflects how we would genuinely deliver it; the client name is fictional and the figures under Results are design targets rather than measured outcomes.

Client

Beacon People Systems

Illustrative HR software vendor — PLACEHOLDER CONTENT

Industry
HRTech
Year
2026

The business challenge

PLACEHOLDER — replace with the real engagement narrative. The illustrative situation: a platform serving long-standing enterprise customers ran on an unsupported framework, deployed by hand, with infrastructure that existed only in a cloud console. Contractual uptime commitments meant no maintenance windows were available.

Objectives

  • PLACEHOLDER — Bring infrastructure under code before changing behaviour
  • PLACEHOLDER — Migrate without maintenance windows
  • PLACEHOLDER — Reach a supported runtime and dependency set
  • PLACEHOLDER — Leave the in-house team able to continue the programme

Discovery and strategy

What we did before writing code

  • PLACEHOLDER — Inventoried infrastructure created by hand over a decade
  • PLACEHOLDER — Measured route usage to identify what could simply be retired
  • PLACEHOLDER — Catalogued undocumented consumers of the production database
  • PLACEHOLDER — Sequenced migration slices by risk and customer impact

Solution

What we built

  • PLACEHOLDER — Infrastructure as code

    Replace with real detail. Existing resources imported into Terraform first, so every later change was reviewable and reversible.

  • PLACEHOLDER — Delivery pipeline

    Replace with real detail. Automated build, test and deploy with preview environments and one-action rollback.

  • PLACEHOLDER — Characterisation tests

    Replace with real detail. Behaviour captured against the running system before any capability was replaced.

  • PLACEHOLDER — Strangler migration

    Replace with real detail. Capabilities moved behind a routing layer with gradual traffic shifting and output comparison.

  • PLACEHOLDER — Data decoupling

    Replace with real detail. Change data capture kept old and new stores consistent while each consumer migrated on its own schedule.

Architecture

How it fits together

PLACEHOLDER — Migration architecture

Replace with the real architecture. The illustrative shape: routing as the control point, so each capability moves, verifies and reverts independently.

  1. Routing layerPer-capability traffic control
  2. Legacy platformServing un-migrated capabilities
  3. Migrated servicesSupported runtime, deployed by pipeline
  4. Change data captureKeeps both stores consistent
  5. Infrastructure as codeEvery environment reproducible
  6. ObservabilityTracing, metrics and rollback triggers

Design approach

Decisions in the interface

  • PLACEHOLDER — Held the existing interface steady so customers were not relearning mid-migration
  • PLACEHOLDER — Rebuilt only the screens where usage data showed real friction
  • PLACEHOLDER — Brought migrated screens up to WCAG 2.2 AA as they moved

Development process

How the work ran

  • PLACEHOLDER — Traffic shifted in increments with automated rollback on error thresholds
  • PLACEHOLDER — Client engineers paired on every slice and led the final ones
  • PLACEHOLDER — Legacy components decommissioned only after a period of zero traffic

Technology stack

What it runs on

  • TypeScript
  • Node.js
  • Next.js
  • PostgreSQL
  • Debezium
  • Terraform
  • Kubernetes
  • AWS

Challenges resolved

What went wrong, and what we did

Every project has these. A case study that omits them is a brochure.

  • PLACEHOLDER — Infrastructure existed only in a console

    Replace with real detail. Importing it into code without altering behaviour made every subsequent change reviewable, and revealed resources nobody could account for.

  • PLACEHOLDER — No maintenance windows were available

    Replace with real detail. Per-capability traffic shifting removed the need for a cutover event entirely.

Results

Objectives and design targets

Because this is a sample case study, these are the objectives and design targets agreed in scope — not measured business results.

  • PLACEHOLDER — Maintenance windows

    None required

    Placeholder. Approach agreed during discovery.

  • PLACEHOLDER — Deployment

    Automated pipeline

    Placeholder scope item, not a measured result.

  • PLACEHOLDER — Surface retired

    Target only

    Placeholder. Replace with a measured, verifiable outcome or remove.

Client feedback

In their words

Placeholder quote

This quote is sample content shown to demonstrate the layout. It is not attributable to a real person or organisation and will be replaced only with a genuine, approved testimonial.

  • PLACEHOLDER — replace with a real, approved client quote. This text exists only to demonstrate the layout.
    Placeholder namePlaceholder role (illustrative)

More work

Other case studies

All case studies

Similar situation?

Start a project like this one

Tell us where you are. We will tell you how we would approach it and what we would want to understand first.

Prefer email? contact@xalicon.co