WRITING

Notes from the build

Mobile platform quirks, BLE and native modules, push infrastructure across a web-app suite, and the design-system work that ties it together — write-ups from real problems shipped at Punica.

Reverse-Engineering a BLE Lock: Building the v9 Unlock Protocol

A proprietary lock, two native BLE stacks, and an AES-encrypted, HMAC-signed challenge/response — how one-tap door unlock actually works under the hood.

One Notification, Eight Apps, Zero Duplicates

Why the same push showed up two and three times across a suite of PWAs — and how consolidating service workers and Firebase config made it land exactly once.

Making a Notification Tap Land on the Right Screen

A push that opens the app to a generic home screen is a dead end. Putting redirection logic in the service worker so a tap deep-links to the exact record.

Background BLE That Survives iOS and Android

Keeping proximity scanning alive when the app is backgrounded — background modes, foreground-service rules, walking-mode lifecycle, and the battery budget that governs all of it.

Passive Attendance With iBeacons — and Why the Backend Is the Hard Part

The phone ranging a beacon is the easy 20%. Reconciling presence against device schemas, sourcing in/out direction from hardware, and supporting IP-restricted check-in is the rest.

Dark Mode Across Eight Apps, From One Source of Truth

A light/dark system with a per-tenant master color, applied across eight frontends and a shared component library — and the long tail of regressions that only appear in the dark.