Blog

Thoughts on distributed systems, AI engineering, and building products at scale.

AGENTS.md: Best Practice or Expensive Myth?

A new ETH Zurich study tested whether context files (AGENTS.md, CLAUDE.md) actually improve coding agent performance — across 4 models, 2 benchmarks, 438 tasks. The results challenge the conventional wisdom.

Read article →

SKILLS.md vs AGENTS.md: What's the Difference?

Two files, two jobs. AGENTS.md tells the agent about your project. SKILLS.md tells it how to work. Here's the simple mental model for when to use which.

Read article →

Canonical Logs vs Structured Logs: Choosing Your Logging Strategy

A practical guide to understanding the trade-offs between canonical (unstructured) and structured logging, and when to use each approach in your backend systems.

Read article →

Designing a Personalised Promotion Engine That Actually Works

How we built a promotion engine that increased bookings 30× in 6 months while cutting coupon abuse by 30% — the architecture, the mistakes, and the ML targeting layer.

Read article →

What I Learned Shipping LLM Features in Production

From itinerary generation to content automation — practical lessons on latency, cost, prompt stability, and knowing when not to use an LLM.

Read article →

Building Event-Driven Systems with Celery and Redis

Lessons from processing 50K+ async jobs per day at Pelago — how we designed reliable task pipelines with sub-200ms latency.

Read article →