Skip to content
← Work

Moving TCM.com onto a shared platform

I was tech lead for the backend, CDN, and search work that moved TCM.com from its own legacy stack onto the company's multi-brand publishing platform.

Role
Tech lead for backend, CDN, and search
Company
Warner Bros. Discovery
Year
2024–2026
Stack
CDN edge logic (VCL), AWS Lambda, Elasticsearch, GraphQL, Node.js
legacy URLs covered by the redirect strategy (estimate)
~220k
video redirects served from an edge dictionary
~26k

Context

TCM.com ran for years on its own Drupal site and Node.js API. I had been a core developer on both since 2020, so when the company decided to move the site onto its shared publishing platform, I was named co-tech lead for the work.

The problem

A migration like this is mostly about what must not break. TCM has a deep archive: articles, a film database, monthly programming pages, and years of video clips, all with URLs that other sites and search engines link to. The site also depended on its own search setup and its own caching.

What I did

Redirects. I wrote the redirect strategy, which covered an estimated 220,000 URLs across several content types. Then I implemented it: pattern-based redirects for articles, database pages, and monthly pages, and a CDN edge dictionary of about 26,000 entries for legacy video clips, with a script to load it through the CDN’s API.

CDN cutover. I built the switchover from the legacy origin to the new platform as per-environment CDN configuration with a backend toggle, so we could cut over staging first and flip back quickly if needed.

Search. I wrote the approved decision record for moving TCM site search between hosted search providers and co-wrote its security questionnaire. On the implementation side I:

  • Added TCM search support to the content API.
  • Rebuilt search ingestion as a streaming pipeline with per-brand transformers and hash-based change detection, so unchanged documents are skipped.
  • Built a tool that copies a production search index to non-production. It works past the provider’s 10,000-document export limit and refuses to write to production.

Caching. I took over the Lambda that purges TCM’s caches on publish, fixed its landing-page purging, and rewrote its operations docs.

Outcome

The cutover went out environment by environment, staging first, behind a toggle. The redirect layer was built to keep the archive’s inbound links working, and TCM search is served through the same content API as the other brand sites.

Having worked on the legacy site made the difference here. I knew which odd URL patterns and feeds existed because I had maintained them.

Next project

The content API behind every brand site