Flattening a model into one wide table makes queries simple and makes one specific mistake almost inevitable. The mistake is not the joins. It is what a join does to a sum.
3 min · data platform · modelling
Bronze, silver, gold is drawn as three tidy boxes. Building one taught me the layers are not about cleanliness. They are about who is allowed to be wrong.
4 min · data platform · fabric · pyspark
Our extractor was reading product codes off the summary page. The obvious fix was to train a model to recognise pages. The fix we shipped was one sentence of domain knowledge.
6 min · document ai · ml · pipelines
A three.js model sat perfectly centred on every machine I tested and in the corner on someone else's. The bug was one boolean.
2 min · three.js · debugging
The planning rule that mattered most wasn't in any textbook. It came from a planner refusing to accept a schedule that pretended capacity was elastic.
2 min · planning · pyspark
Letting customers change a stone's colour in the 3D viewer sounds like a paint bucket. It is only useful if the number underneath it changes too.
2 min · cad · three.js
A status column is a cache of something the event log already knows. Ours drifted, and the fix was to delete the cache rather than fix the writes.