Back to overview
Blog

Notes from the field

Lessons from shipping AI and data platforms at scale, written for the leaders and engineers doing the work.

Showing all 10

Leadership

How I Lead a Turnaround: What I Change First, and in What Order

An engineering organization that was legacy on every axis: a monolith, aging unsharded databases, no documentation, waterfall delivery, a closed and siloed culture. I modernized how it worked across people, process and ways of working, from heroics and waterfall to shared purpose, iterative flow, transparency and continuous improvement. Over the year the engagement score roughly doubled, from 30 to 45 to 60.

Read article
AI Platform

Building an Enterprise AI Platform: From Foundation to Production

Two quarters to stand up an enterprise AI platform, so every team could ship agents into production instead of rebuilding the same plumbing each time. A model-agnostic agentic framework, one MCP gateway, advanced retrieval, an evaluation system, and a governed data foundation with MLOps underneath.

Read article
AI-DLC

From Intent to Production: Scaling the AI-Driven Development Lifecycle Across an Organization

How a global organization of engineers and analysts moved from AI autocomplete to AI-DLC in four stages, with Amazon Q Developer and Kiro as the mechanism. Prompt telemetry exposed where AI was really being used, and vibe-coded prototypes became the normal way to compare options before committing to a spec.

Read article
MLOps

Industrializing Forecasts: MLOps for a Mixed Model Estate

In a forecasting business, most models are not machine learning: solvers, simulations, spreadsheets, a learned model here and there. How we brought the whole estate under one operating discipline, so a published number stays reproducible years later and an agent can call any of it without inventing the math.

Read article
Data Acquisition

One Runner, Many Patterns: An AI-Driven Scraping Framework

Parallel collection stacks folded onto one configuration-driven runner, on the idea that a scraper is configuration rather than a program. Schema as a versioned contract, a resilience ladder instead of one-shot self-healing, a bought unblocking tier, agentic validation, and an agent that can draft a new source but never switch it on.

Read article
Data Platform

One Version of the Truth: Building the Governed Data Foundation Behind Analytics and AI

The foundation that dashboards, analysts, customers and AI agents all read from. Snowflake on a Bronze, Silver and Gold medallion, dbt with write-audit-publish, master data and an ontology for shared meaning, DataHub for lineage, tiers and sensitivity tags, and a RAG pipeline built on governed data.

Read article
Platform Strategy

Converging on One: The Business Case, the Scar Tissue, and the Strangler Fig

Four courseware platforms, four stacks, and a $750M combined revenue base too risky to touch. How I audited the entire estate myself, made the case for convergence after an earlier vendor-built rewrite collapsed into unscalable spaghetti architecture, secured funding, and executed a strangler-fig migration that shipped generative AI as part of the same effort.

Read article
Identity

Identity at Scale: Consolidating Four Login Systems Onto One Standard

Four separate login systems, accreted over years of acquisitions, consolidated onto OIDC, OAuth 2.0 and AWS Cognito without logging anyone out. A translating facade, one signed token that scaled by validating locally, a graph profile that made personalization possible, and a migration of tens of millions of users that no one noticed.

Read article
Architecture

Strangling the Monolith: Domain-Driven User, Profile and Personalization Services

Carving User, Profile and a graph-driven personalization service out of a monolith while it kept serving live traffic. Domain boundaries drawn on purpose, DynamoDB modeled by access pattern rather than by entity, dual sync, and a strangler-fig cutover that shifted load one flag at a time.

Read article
Reliability

Surviving Peak: Distributed Sessions, Load Shedding and a Priority Waiting Room

A sticky-session Java monolith that seized up under holiday peak, and the year we had to carry it through one more without a rewrite. Sessions moved into Redis, a health check taught to tell the truth, cost-aware rate limiting, and a waiting room that queues by work already invested.

Read article