
What Actually Stops People From Getting Promoted
The difference between absorbing chaos and removing it — why smart, hardworking engineers stay stuck while others move up. It's not about doing more, it's about thinking differently.
All of my long-form thoughts on programming, leadership, product design, and more, collected in chronological order.

The difference between absorbing chaos and removing it — why smart, hardworking engineers stay stuck while others move up. It's not about doing more, it's about thinking differently.

I used to think leadership meant stepping away from code. I was wrong. The best technical leaders stay hands-on — not because they have to, but because credibility, technical judgment, and problem-solving require it.

How I transformed Advision from a company where everyone waited for my decisions to one where leaders owned their domains and drove results. The systematic approach to hiring for ownership, building accountability systems, and creating a culture of strategic thinking.

How I built a sophisticated prediction model that captures the complex relationships in NFL play-calling using Graph Neural Networks, multi-task learning, and quantile regression. The architectural decisions that made predicting football actually work.

A technical walkthrough of the Sports AI Assistant — a retrieval-augmented generation (RAG) system designed to handle complex, real-time sports queries using large language models, semantic retrieval, and live data integrations.

Real-world lessons and architectural decisions from building an NFL data pipeline that ingests from SportRadar to BigQuery. Why I chose Apache Beam over Spark, when serverless made sense, and how cloud-native architecture solved problems I didn't expect.

I used to think authority was the key to getting things done — that if people just listened, things would move faster. I was wrong. Authority gets compliance. Influence gets change.

How I built a semantic entity resolution system using vector embeddings to transform natural language queries into structured data lookups, enabling OddsTrader's conversational AI to ground responses in real-time sports data.

I used to think scalability was the ultimate goal—that if a system could scale horizontally, it could handle anything. The Odds Importer taught me how data context can quietly destroy even the most perfectly designed distributed systems.

A deep dive into the architectural decisions, constitutional principles, and technical tradeoffs behind building a Model Context Protocol server for content management and AI integration.

I used to think optimization was the sign of a good engineer. But over-optimizing isn't just wasted effort—it's how you create invisible complexity that haunts you for years.

AI-assisted coding isn't about writing faster—it's about thinking differently. How treating AI like a collaborator instead of a tool changes everything about building software.

Real ownership isn't about effort or compliance—it's about outcomes. Stories from the trenches about what happens when teams stop saying 'I did my part' and start asking 'Did we get the result?'

My thoughts on what makes teams work, why most company culture is bullshit, and the few things that actually matter when you're trying to build something meaningful.

What bad culture actually looks like in practice, why ownership can't be assumed, and the painful lessons I've learned about forcing behavioral change in high-performing teams.

How I transformed a chaotic collection of hard-coded C# scripts into a scalable, observable data ingestion platform processing tens of millions of updates per day.

How I built an end-to-end automated SEO workflow using AI, MCP servers, and custom tooling to generate hundreds of optimized pages without losing data accuracy or design consistency.