Engineering
Engineering
Notes on problems we actually hit building this layer. Five articles, each grounded in a decision that is live in production — not a content programme.
- Symbols are not identitiesWhy crypto tickers cannot be used as keys, with the collision count from a live registry of 7,458 assets.
- Normalizing crypto market data across providersSix incompatibilities between provider payloads, and why the tempting fix for the sixth is the one that ruins the data.
- Building historical crypto timeseriesAppend-only storage, snapshot alignment, and the survivorship trap hiding in a rolling top-N universe.
- Measuring data freshnessPolling interval is not update frequency. How to measure what you actually deliver, and why publishing it is the easy part.
- Designing APIs for AI agentsTerse responses are good for bandwidth and bad for agents. What changes when the caller cannot tell that a number looks wrong.
Why there are five and not fifty
moonlytics.io is a data and documentation platform, not a crypto content site. The value here is meant to come from the data, the infrastructure documentation, the schema and the tools. An article gets written when we solve something worth writing down — which is a slower rate than a publishing calendar, and deliberately so.