Skip to content
JM
.
Home
Work
Blog
About
Résumé
Writing
Notes on Node, Kafka, Postgres, and the parts that turned out harder than they looked.
2026.09.02
Why your Kafka consumer lags
PLACEHOLDER — Consumer lag is usually not a throughput problem. A guide to reading the metrics and finding the real cause.
kafka
nodejs
performance
1 min read
2026.08.14
The Postgres indexes you're not using
PLACEHOLDER — Partial, covering, and expression indexes solve problems a plain B-tree can't.
postgres
performance
sql
1 min read
2026.07.30
GraphQL N+1, actually solved
PLACEHOLDER — DataLoader is the answer, but only if you scope it correctly. The mistakes that make it silently useless.
graphql
nodejs
performance
1 min read
2026.07.11
Strapi in production: what the docs don't tell you
PLACEHOLDER — Migrations, media storage, and the upgrade path. Lessons from running Strapi for real clients.
strapi
nodejs
devops
1 min read