Apple Health data pipeline · January 2026

HealthAgent

Built a pipeline that normalizes daily Apple Health exports into Postgres and produces personal trend views.

Case snapshot

Problem
Compare nutrition, workouts, heart rate, activity, and recovery signals that were separated across several apps.
My role
Solo engineer across ingestion, normalization, API, dashboard, authentication, and cloud deployment.
What I changed
  • Preserved raw exports before converting them into canonical tables.
  • Scoped ingestion and derived metrics to each authenticated user.
  • Scheduled daily processing while keeping generated insights optional.
Result
A working end-to-end ingestion and trend pipeline; generated insight backends remain optional and are not medical advice.

The useful signals lived in separate applications

Nutrition came from MacroFactor and activity data came from Apple Watch. Apple Health was the common source, but it did not provide the comparative view I wanted.

Raw data and user boundaries had to survive processing

Daily exports are retained before normalization, per-user ingest tokens protect writes, and derived data remains scoped to the authenticated account.

The pipeline supports local and cloud operation

A Fastify and Prisma API writes canonical Postgres tables. Cloud Run, GCS, Secret Manager, and Cloud Scheduler support daily processing, while local storage and sample data keep development practical.

The dashboard proves the core path

The repository includes a real Status view showing trends, projections, and processed ingest files. Optional model-backed insights are deliberately separate from the working ingestion and metrics path.

Health interpretation needs restraint

The project demonstrates data engineering and product thinking. It should not imply clinical validation, diagnosis, or that generated recommendations are complete health advice.

Technical depth

Original project pages, reports, and technical writing remain available as source material.

← All work