Projects

Authentication & Identity Platform

Consolidating fragmented identity systems into a single platform without disrupting the products built on top of them.

Role
Engineering Lead
Year
2023
Status
active
Domain
Platform
  • TypeScript
  • Go
  • PostgreSQL
  • Redis
  • OAuth 2.0 / OIDC
  • Kubernetes

Impact

  • Replaced 4 separate auth implementations with one shared platform
  • Cut new-product integration time from weeks to days
  • Centralized audit logging for every authentication and authorization decision

Context

Identity had grown organically. Each product had built its own login, its own session handling, and its own idea of what a “user” was. The result was predictable: inconsistent security properties, duplicated effort, and no single place to answer the question “who can do what, and who decided that?”

The mandate was to unify this without a risky big-bang rewrite, and without asking every product team to stop their roadmap.

Approach

I treated the existing systems as a contract problem first and an implementation problem second. Before writing services, we defined a single, stable interface for authentication and authorization that any product could adopt — and made sure it could express everything the legacy systems already did.

The platform itself was built around a few deliberate decisions:

  • Short-lived access tokens with rotating refresh tokens, so a leaked token has a small blast radius.
  • Authorization as data. Policies are stored and evaluated as structured rules rather than buried in each service’s code, which makes access decisions reviewable and auditable.
  • Incremental migration. A compatibility layer let products move one at a time, behind feature flags, with the ability to roll back.

Outcome

Products now integrate against one well-documented contract instead of reinventing identity each time. Every authentication and authorization decision flows through a single auditable path, which turned a compliance liability into a strength. Most importantly, the migration happened without a disruptive cutover — teams adopted the platform on their own schedule.

Key architecture decisions

  • Token-based sessions with short-lived access tokens and rotating refresh tokens
  • A policy layer that expresses authorization as data, not scattered conditionals
  • Backwards-compatible migration so existing products moved over incrementally

Links