mobile/native
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.
05 case studies
Description-only for now — these products are private B2B. The write-ups focus on engineering decisions, not internal product logic.
Proximity door unlock built on a proprietary BLE protocol: a Nearby Doors widget on mobile and a one-tap unlock from the web console, both driving the same lock hardware over an encrypted challenge/response.
One notification system spanning a native mobile app and a suite of eight web PWAs — backend fan-out over FCM/APNs, service-worker delivery, deduplication, and deep-link redirection to the exact record.
Passive attendance from the phone already in someone’s pocket — iBeacon proximity synced to the backend, with schedule rules, IP restrictions, and in/out direction read straight from the door hardware.
A light/dark theming system with a configurable master accent color, rolled across eight web apps and a shared component library — phased in, then hardened through dedicated bug passes.
The admin surface for wiring offices to physical access hardware — modeling “access methods,” grouping MQTT broadcasting devices, and summarizing each device’s direction and actions.
mobile/native
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.
architecture/frontend
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.
architecture/frontend
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.
Before software, it was basketball — years of competitive play that taught me what good teams run on: clear roles, honest feedback, and thousands of unglamorous reps. Engineering turned out to work the same way. I play whatever position the product needs — React interfaces, native mobile, backend logic — and practice the fundamentals until they're automatic.