Mobile Development
Why BLE Disconnects When Your Android Screen Turns Off
A practical investigation into Android background restrictions, BLE connection behaviour and how to make connections survive a locked screen.
Notes, tutorials and experiments from things I've built and learned.
Mobile Development
A practical investigation into Android background restrictions, BLE connection behaviour and how to make connections survive a locked screen.
Edge AI
Running models on devices with no cloud to fall back on changes almost every assumption you carry over from server-side inference. Here is what actually matters.
AI & Machine Learning
Constrained decoding guarantees your model returns valid JSON. It guarantees nothing about whether the values inside it are right - and the two get confused constantly.
Mobile Development
Cold start is rarely one slow thing. It is a dozen small ones, and profiling it properly changes which of them you bother to fix.
Developer Tools
Most CI caches are slower than no cache at all. The difference comes down to what you key on, what you store and how honestly you measure the result.
Data Engineering
Idempotency is the property that turns a fragile nightly job into something you can retry without thinking. Here is how to build it into a pipeline from the start.
Data Engineering
Two datasets with identical rows and identical schemas can differ by an order of magnitude in scan time. The difference is layout - row groups, sort order and file size.
Software Development
Most error handling is written for the developer who wrote it, on the day they wrote it. Here is what makes it useful six months later at 3 a.m.