Learnings

Lessons learned the hard way.

No platitudes.

A running log of things that cost me something. Reverse chronological.

2026Engineering

Write the skill the second time, never the first

Premature abstraction is worse than no abstraction. The first time I solve a problem I do it inline; the second time I notice the pattern; only on the third does the skill earn its place. Every skill I wrote on the first pass got deleted within a month.

2026Engineering

The CLAUDE.md is the product

On agent-driven projects, the prompt context is more load-bearing than any single file. A clear CLAUDE.md with sharp conventions outperforms a clever framework. Treat it like a public API and version it accordingly.

2025Engineering

Plan length is not plan quality

The best plans I have shipped fit on one page. Confluence-grade plans signal that nobody actually knows what to build yet. If a plan needs more than ten bullets, the brainstorming step was skipped.

2025Research

The Nobel laureate's pipeline can be wrong

When I built SpatialDINO I assumed the published baseline from a Nobel-laureate-led group was the ceiling. It was not. Authority is a prior, not a posterior. Run your own ablations before deferring.

2025Career

Forward-deployed beats project-priced consulting

Hourly billing punishes you for getting faster. Outcomes-based engagements compound: every tool you build for client N pays you back at client N+1. We went from $150k a year to $150k every fifteen days by switching the unit of sale.

2025ML

Optimizer state is the headline memory cost

Adam doubles your model footprint in optimizer state alone. Lion roughly halves that. When training stalls on memory, audit the optimizer before reaching for sharding tricks. The cheapest gradient step is the one you do not have to recompute.

2025Engineering

Most enterprise AI fails at the integration seam

The model works on the demo. The CRM API does not, the auth tokens expire mid-loop, and the customer's Excel exports have merged cells. That seam is the entire engagement. Spend the first week on the integration and the model picks itself.

2025Career

Compounding tools beat heroic work

A hundred-hour week is a one-time gift. A CLI you wrote in three hours is a perpetuity. Every engagement should leave the toolkit measurably stronger than it found it; otherwise you are renting your own labor back to yourself.

2024Engineering

Mock data hides the real bug

The bug almost never lives in the unit you are testing. It lives at the boundary where two systems agreed on a schema and then drifted. Mocks let you ship; integration tests let you sleep.

2024Distributed Systems

Backpressure tells you what your system actually wants

My Flink thesis started with the goal of suppressing backpressure. It ended with the realization that backpressure is the runtime's honest report of where the bottleneck is. Listen to it, do not silence it. Adaptive checkpointing fell out naturally once I stopped fighting the signal.

2024Career

Physics-grade rigor does not transfer to startup speed

In the lab you triple-check before you publish. In a startup you ship to learn whether the question was even worth asking. Both disciplines are correct in context; the trap is importing one's rituals into the other's domain.

2024Life

The thing I avoid is usually the thing to do first

Whatever item I keep sliding to tomorrow is almost always the highest-leverage one on the list. Procrastination is a signal, not a flaw. The day improves the moment that item moves to the top.