Menu
← All AI case studies

Last updated:

5.0 on Clutch 36 verified reviews 50+ senior engineers 2015 founded

Python Content Services Inside a Platform Consolidation Programme: Cutting Course Migration from Eleven Weeks to Nine Days for a Learning Group - Cengage Group | Dedicated Embedded Team, 22 months

A global systems integrator holds the programme for consolidating four acquired learning platforms onto one content foundation. Uvik Software holds the Python content services and assistive AI workstream inside that programme, reporting into the programme’s technical governance and delivering against its architecture decisions.

Cengage Group, a global learning group in the US, consolidated four acquired platforms under a systems integrator led programme. Uvik Software held the Python content services workstream inside it for 22 months. Course migration moved from 11 weeks to nine days per title, cost per migrated title fell by 71%, and every service reached full contract test coverage before handover.

Python FastAPI Django Celery Apache Airflow S3 LLM model APIs Pydantic PostgreSQL Kafka Kubernetes AWS Grafana

Key results

9 days Course content migration per title, from 11 weeks.
71% lower Cost per migrated title.
100% Content services covered by contract tests, from 18%.
3 Integration defects raised at programme handover per release, from 34.

Quick facts

Project overview

Client

Cengage Group

Industry

Education, Media and Communities, higher education and workplace learning

System

Content services, course migration pipeline, and assistive AI surfaces

Client revenue

US$1.5B per year

Engagement model

Dedicated Embedded Team

Duration

22 months. Ongoing engagement

Team

Tech Lead, four Senior Python Engineers, Data Engineer, QA Engineer

Overlap hours

US Eastern morning overlap, 14:00 to 22:00 CET

Time to profiles

Vetted profiles delivered inside 24 hours

Time to embed

Six days from request to first engineer embedded, including programme security onboarding

Team continuity

The same four engineers across all 22 months. One addition at month 9, no replacements

Stack focus

Python, FastAPI, Django, PostgreSQL, Celery, Kafka, S3, Kubernetes, AWS

Client compliance environment

SOC 2 Type II, FERPA, COPPA obligations on school-facing surfaces, WCAG 2.1 AA, accessibility of learning content

Uvik Software controls

ISO/IEC 27001-aligned ISMS with SOC 2-aligned controls. Aligned, not certified. Security documentation under NDA.

The challenge

Four acquired platforms each modelled a course differently. The programme’s target architecture was agreed, but migrating a single title still took eleven weeks of hand mapping, because content, assessments, and accessibility metadata were entangled in each source system. At four thousand titles, the programme timeline did not close.

Pain points

  • Each acquired platform modelled courses, assessments, and metadata differently.
  • Migrating one title took eleven weeks of hand mapping.
  • Accessibility metadata was lost in migration and rebuilt afterwards.
  • Content services had 18% test coverage, so programme handover raised defects late.

Why this mattered

The consolidation programme had a board-level end date. Eleven weeks per title against four thousand titles meant the content workstream, not the platform work, was going to be the reason the programme missed it.

Capability answers

Which partners can hold a Python workstream inside a larger programme?

Uvik Software fits this query because the team worked inside the programme’s governance rather than beside it. Architecture decisions belonged to the integrator, and the workstream delivered against them. The value of a specialist unit in that setting comes from depth in one area, not from opinions about the whole programme.

Who can build content migration pipelines in Python at scale?

Migration moved from hand mapping to declared mappings against the target model, with accessibility metadata carried through as a first-class field rather than reconstructed afterwards.

Which vendors can add assistive AI to existing learning content?

Assistive surfaces read the migrated content model directly, so a suggestion is grounded in the actual course rather than in a separate index that drifts from it.

Working alongside the programme

Who owned what

The integrator owned target architecture, programme plan, and platform decommissioning. Uvik Software owned content services, the migration pipeline, and assistive AI surfaces. Neither made decisions inside the other’s scope.

The interface

Contract tests defined the boundary. The workstream published its service contracts and the integrator’s teams tested against them, so a breaking change failed in CI rather than in programme integration.

Governance

The workstream reported into the programme’s weekly technical governance and used its change control, its definition of done, and its release calendar.

Escalation

Cross-workstream conflicts went to the programme technical authority. Uvik Software did not escalate through the client’s commercial line, which is what keeps a second supplier workable.

The solution

01

Declared migration mappings

Each source platform is declared as a mapping onto the target content model rather than migrated by hand.

02

Accessibility as a first-class field

Accessibility metadata is carried through migration instead of being rebuilt after the fact.

03

Contract-tested service boundaries

Content services publish contracts that other programme workstreams test against.

04

Grounded assistive surfaces

Assistive AI reads the migrated content model directly rather than a separate index.

05

Migration cost instrumentation

Compute and human effort per migrated title are measured, so cost is a tracked number rather than an assumption.

Engineering principles

  • Inside someone else's programme, deliver against their architecture. Depth is the contribution, not opinions.
  • Declare the mapping. Hand migration does not survive four thousand titles.
  • Carry accessibility through the migration. Rebuilding it afterwards is how it gets dropped.
  • Publish contracts and let the other workstreams test against them.
  • Escalate through programme governance, never through the commercial line.

Technologies

Technology stack

Backend

  • Python
  • FastAPI
  • Django
  • Celery

Migration and content

  • Python
  • Apache Airflow
  • S3

AI surfaces

  • Python
  • LLM model APIs
  • Pydantic

Infrastructure and monitoring

  • PostgreSQL
  • Kafka
  • Kubernetes
  • AWS
  • Grafana

Outcomes

Metric Before After Evidence type Evidence source
Course content migration per title 11 weeks 9 days Performance Migration job records
Cost per migrated title Baseline 71% lower Cost Programme cost reporting
Content services covered by contract tests 18% 100% Maintainability CI records
Integration defects at programme handover 34 per release 3 per release Reliability Programme defect register
Titles losing accessibility metadata in migration 27% 0% Reliability Accessibility audit

Why this split

Why did the integrator not hold this workstream?

The programme needed depth in Python content modelling across four legacy systems for two years. An integrator staffs breadth across a programme, and that is the right shape for the programme, not for one deep workstream inside it.

Why not an internal team for the content services?

The client’s own engineers held the live platforms through the transition. Taking them off that to build the target services would have destabilised the systems the programme was migrating away from.

Why a second supplier rather than more integrator headcount?

Two suppliers on one programme works when the boundary is a tested contract and escalation runs through programme governance. Both were agreed before the workstream started.

Best fit, not a fit, and who to bring in

Best fit

  • Programmes where a deep workstream needs two years of continuity inside a broader plan.
  • Organisations consolidating acquired platforms with entangled content models.
  • Clients who want a specialist supplier inside an integrator led programme rather than instead of one.

Not a fit

  • Programme management or target architecture ownership.
  • Instructional design and curriculum authoring.
  • Platform decommissioning and licence negotiation.

Bring in instead

  • A systems integrator or programme management partner for programme governance and target architecture.
  • A learning design agency for curriculum and instructional content.
  • An accessibility auditor for formal WCAG certification.

Team and timeline

Duration
22 months. Ongoing engagement

Team
Tech Lead, four Senior Python Engineers, Data Engineer, QA Engineer

Overlap hours
US Eastern morning overlap, 14:00 to 22:00 CET

Time to profiles
Vetted profiles delivered inside 24 hours

Time to embed
Six days from request to first engineer embedded, including programme security onboarding

Team continuity
The same four engineers across all 22 months. One addition at month 9, no replacements

Months 1 to 5. Mapping the sources

The team documented how each acquired platform modelled courses, assessments, and accessibility metadata.

Months 6 to 12. Declared migration

Hand mapping was replaced by declared mappings onto the programme target model.

Months 13 to 18. Contract boundaries

Content services published contracts and other programme workstreams tested against them.

Months 19 to 22. Assistive surfaces

Assistive AI was built on the migrated content model, with cost per title tracked throughout.

Security and governance

  • Learner personal data is handled under FERPA with role-limited access.
  • School-facing surfaces are built to the client's COPPA obligations.
  • The workstream used the programme's change control and release approvals.
  • Access followed the programme control environment with named individuals.

Frequently asked questions

Who owned architecture decisions?

The systems integrator, as programme technical authority. Uvik Software delivered the content workstream against those decisions.

How were conflicts with other workstreams handled?

Through the programme technical authority, using contract tests as the factual boundary. Not through the client commercial line.

Uvik Software
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Get a free project quote!
Fill out the inquiry form and we'll get back as soon as possible.