11 posts
Data engineering
Pipelines, lakehouses, and what the warehouse bill is really telling you.
What we have learned building data platforms, software and applied AI — written by the engineer who did the work, and specific enough to argue with.
11 posts
Pipelines, lakehouses, and what the warehouse bill is really telling you.
9 posts
Web, mobile, APIs, and the decisions taken before any code is written.
9 posts
Retrieval, agents, evaluation — and when the answer isn't a model at all.
5 posts
Vulnerabilities read properly, and the patch that didn't finish the job.
5 posts
What engineering costs, who is hiring, and which numbers survive a check.
1 post
How we work, what we got wrong, and what we changed because of it.
Coming
Work we do in Kathmandu that nobody invoices for.
The GRANT is the only control a tool-calling agent can’t argue with: what it stops, the 11.7-minute scan it doesn’t, and the failure it never reaches.
CVE-2024-4577 turns on one record in a Microsoft mapping table, and the versions everyone calls patched carry a fix PHP deleted eight days after shipping it.
An AI-built prototype arrives with one index per table, a secret in the bundle and no schema history. Where the break-even sits, and what to repair.
What Airflow or Dagster is worth at 5, 50 and 500 pipelines, costed in operator minutes, and the threshold below which we won’t sell a build.
A working demo tells you nothing about your next change. How to build an evaluation set from real questions, score retrieval separately from the answer, calibrate the judge, and gate every prompt change in CI.
A calculator for warehouse credits run on numbers you can state: credits per query-run, the idle tail, and the 600-second default that sets the break-even.
Why the Claude Code install line fails in Command Prompt, the four errors that name your shell, and the 599-build gap before WSL 2 exists.
Five things payment code needs from the first commit: an idempotency key scoped to an intent, integer minor units, an append-only ledger, a replay-safe webhook handler and a nightly reconciliation against the provider.
EPSS scores how likely exploitation is in 30 days; CVSS scores how bad it would be. The arithmetic for a 400-item backlog, and the threshold we defend.
What enable.idempotence guarantees in Kafka, what a transaction boundary adds, and how to derive transaction.timeout.ms rather than guess at it.
Why full reloads get slow, how log-based change data capture fixes it, what has to be in place in the source database before it is safe, and when reloading the lot is still the right answer.
Idempotency key retention derived from the counterparty’s published replay horizons: 24 hours outbound, 35 days inbound, and the storage arithmetic for both.
Browse by tag
Twenty minutes, no deck. We’ll tell you straight whether this is work we should be doing, and if it isn’t, we usually know who should.
We come back within one business day.
Analytics
We’d like to use Google Analytics to see which pages people find useful. It sets cookies, and only if you say yes. Your choice can be changed at any time under Cookie settings. Privacy