kenbuildsRésumé

[ TRACE · PACEBEATS ]

1st Runner-Up — InfoTech Olympics 2025 (University of Makati), Android App Development: Productivity.

Lead — WearOS app, recommendation engine, architecture|Shipped · team of 4

[ THE PROBLEM ]

Workout music doesn't react to the body. Runners pick a playlist before the run and live with it — the music has no idea whether you're warming up, pushing a sprint, or cooling down.

Pacebeats reads live heart rate and inter-beat intervals from a Galaxy Watch 6 and adapts the playlist to your actual physiological state, in real time.

[ HOW IT WORKS ]

[ SPAN · BIOMETRIC PIPELINE ]

SenseHR + IBI · Watch 6

Mappace → BPM rules

Scorecontent-based ML

Queueplaylist update

PlaySpotify SDK

  • Sensing runs on the watch (Kotlin, Health Services API); the phone syncs via the Data Layer API and owns playback.
  • The whole sensing pipeline is shaped by one constraint: 8+ hours of battery on the watch.

A WearOS app written in Kotlin against the Health Services API streams heart rate and inter-beat intervals; GPS tracks pace. The companion Android app receives the stream over the Data Layer API and drives playback through the Spotify SDK.

Recommendations are hybrid: deterministic pace-to-BPM mapping picks the tempo band, then content-based ML scoring over the user's listening patterns ranks tracks inside it. A React/TypeScript dashboard and Supabase backend close the loop. MVVM throughout.

The Pacebeats team taking 1st Runner-Up at InfoTech Olympics 2025
[ SCREEN · PACEBEATS ] The Pacebeats team taking 1st Runner-Up at InfoTech Olympics 2025

[ TRADE-OFFS I MADE ]

  1. 01

    Hybrid recommender — rules pick the band, ML ranks within it

    Pure ML can recommend a great song at the wrong tempo, and wrong tempo is the one unforgivable failure in a pacing app. Deterministic pace→BPM rules make tempo errors impossible; ML only spends its judgment where mistakes are survivable — track choice within the band.

  2. 02

    Sense on the watch, decide on the phone

    Running the recommender on the watch would cut sync latency but eat the battery that sensing needs. Splitting the pipeline — watch senses, phone decides — was what made the 8+ hour battery target reachable.

  3. 03

    Spotify SDK over a custom player

    Owning playback would allow finer crossfade control, but it means licensing, offline caching, and a music catalog. Integrating Spotify traded polish at the edges for a real catalog on day one.

[ WHAT BROKE ]

INCIDENT NOTE · PENDING

Every system here has broken at least once. This section gets written from the engineer's incident notes, not generated — the honest version is coming.

[ RESULTS ]

InfoTech Olympics 2025 · Android App Development: Productivity
1st Runner-Up
watch battery with live sensing
8+ hrs
playlist adaptation to heart rate
Real-time

[ STACK ]

  • Kotlin
  • WearOS
  • Health Services API
  • Data Layer API
  • Spotify SDK
  • React
  • TypeScript
  • Supabase
  • MVVM