Adam El Kadaoui
Selected work

Personal product · Open source

Run
Omics

Running analytics, built end-to-end.

Public demo runs on deterministic synthetic data

Role
End-to-end product & engineering
Architecture
Domain · Application · Infrastructure
Source
Open source

What it does.

  1. 01 · Ingest

    Garmin activities and FIT files in, normalised and stored.

    Distance, pace, heart rate, elevation.

  2. 02 · Model

    Form, fitness and fatigue from training load.

    Rolling loads, weekly targets, thresholds.

  3. 03 · Interpret

    An LLM reads the model output, with a rules-based fallback.

    Gemini · deterministic fallback path.

  4. 04 · Advise

    One clear call for today's session.

    Green light, steady, or hold back.

The interface

RunOmics public demo dashboard showing deterministic synthetic training data
Today
  • RunOmics analytics screen showing a fitness, fatigue and form training-load chart above VO₂max and easy-pace cards for a synthetic demo season
    Analytics
  • RunOmics running heatmap showing the public demo's synthetic route preview, with a home-base panel reading 264 distinct routes within a 2.4 kilometre median radius
    Heatmap
  • RunOmics shoes screen flagging a pair at 100% of its expected life with a recommendation to rotate in a backup, above a table comparing mileage, pace and cadence across three pairs of synthetic demo data
    Shoes

Real data stays private.
The product doesn't.

My own Garmin data never enters the public repository. It is fetched at build time into a directory the client bundle can't reach, and only server-side code reads it.

A fresh clone renders the same screens from a deterministic fictional season — so the demo is honest and the repository is safe to open.

Private source configured
Real season, read server-side
Fresh clone
Deterministic fictional season
Pipeline
Python · Garmin / FIT
Frontend
Next.js · TypeScript
Delivery
GitHub Actions · Vercel