owen.bio

Caesars Booking Platform

Caesars' booking platform was a business-critical .NET 4.x estate stuck on IIS. It could only realistically be run by a couple of engineers on ageing Windows machines, which made onboarding painful, changes risky, and the whole thing a single point of failure. A full rewrite had been discussed for years and consistently sized in years. I took a different route: use coding agents to do the migration safely, and spend the real time on productionising it.

What shipped

  • Legacy .NET 4.x services migrated to .NET 10
  • Containerised, portable services runnable by any engineer on any machine
  • Meaningful test coverage introduced as part of the migration, not after it
  • Security and dependency posture brought up to current standards
  • Modern observability with Dynatrace across the estate

Impact

  • Time to modernise: 1-2 weeks for the migration itself, against a multi-year estimate.
  • Contributor access: from ~2 engineers able to run it to every engineer in Caesars able to contribute.
  • Risk reduction: off end-of-life runtimes and off bespoke local Windows setups entirely.
  • Operability: observability in place before cutover, so issues are seen rather than reported.

My role & scope

  • Proposed and led the modernisation approach, including making the case for an agent-led migration.
  • Drove the migration hands-on using the GitHub Copilot Modernization agent, with frontier models in Claude Code for the parts needing deeper reasoning, review and test authoring.
  • Owned containerisation, CI, and the path to production over the following 3-4 months.
  • Trained the team on the new stack and ways of working so ownership didn't stay with me.

Key decisions & trade-offs

  • Agent-led migration vs manual rewrite: agents did the mechanical bulk safely and fast; I kept humans on architecture, security and verification. This is what turned years into weeks.
  • Migrate then productionise: deliberately separated the two. The code move was quick; observability, training and rollout were the honest 3-4 months.
  • Containers over IIS: portability and reproducibility mattered more than staying on familiar hosting.
  • Tests as part of migration: slowed the initial pass slightly, but made the cutover defensible.

Tech stack

.NET 10, C#, Docker, Dynatrace, GitHub Copilot Modernization agent, Claude Code