Skip to content
ale@portfolio:~/portfolio$ cat README.md

portfolio

Every case study here answers one question: measurable outcome.

events-migration.mdZapier

Events Migration

ShippedTeam: Data + Eng (org-wide)
TL;DR

Ran the org-wide migration to schema-validated Avro events across every microservice leaving the monolith.

Outcome

  • team understanding of the migration's value
  • roadmap reworked to flex around team priorities
Saw It
  • Events had been added organically for years with no schemas or rules.
  • The move to microservices required Avro events for every migrating service, which forced a reckoning with years of undocumented, unowned events all at once.
Figured It Out
  • Broke the program into phases with checklists rather than treating it as one big migration.
  • No lineage tooling existed to trace downstream dependencies, which made prioritization genuinely harder.
  • Looped in stakeholders on sizing and got teams to sign on to a shared roadmap.
Did It
  • Shipped a phased migration roadmap, with ownership and documentation built out through the Lost and Found and Playbook projects as dependencies.
  • Deadlines slipped because this started as isolated initiatives instead of one coordinated program. Fixed by adding a phase 0 and reworking the roadmap around actual team priorities.

My Role

Owned the migration roadmap, the phasing, and the cross-team sizing negotiations. Partnered with every team that owned events being migrated.

Full breakdown

Problem & Risk

Feasibility Risk

No schemas or rules meant risk of breaking changes and duplicated, double-owned events at scale as the org moved to microservices.

Customer Discovery & Validation

Evidence

A full catalog of legacy events, assessed for relevance, surfaced double-ownership as the biggest structural issue: different teams producing or consuming the same event for different purposes.

Context

Migrating from a monolith to microservices required all services to implement Avro events, with no schemas or rules in place from the organic growth period.

Timeline

git log --oneline⏱ program-level
kickoff: monolith-to-microservices move forces Avro schema rulesPhase 0
discovery: legacy events cataloged, owners identified via Lost & FoundPhase 1
ship v1: migration roadmap phased, checklists per phasePhase 2
feedback: deadlines slipped, no downstream lineage toolingPhase 2
next: phase 0 added, roadmap reworked around team prioritiesNext

What We Did

  • Cataloged every legacy event and assessed relevance
  • Identified required tools (taxonomy, tracking library) and event owners (Lost and Found)
  • Built required documentation (the Playbook)
  • Phased the roadmap with checklists, adding phase 0 after early learnings
~ rough sketch, not an actual screenshot ~

monolith → microservices

events cataloged

phased roadmap

deadlines slipped

phase 0 added

Who Benefits

Teams came to understand the value of the migration, and the roadmap flexed to reflect team priorities instead of a rigid top-down plan.

Next Steps

Continued phased rollout with team-prioritized sizing.