Selected work

Personal analytics platform

MoodAtlas

A public, privacy-safe interface for exploring longitudinal mood, activity, wrist, EEG, and facial-signal analytics from curated data products.

Role
Product design, data architecture, frontend, and pipeline orchestration
Period
2026
Status
Live public system
MoodAtlas — daily scopePrivate mode · off
Mood ribbon · 90 days
Regime split
Producers4typed JSON contracts
4producer pipelines
3time resolutions
0raw notes published
01

Challenge

What the work needed to resolve.

Combine sensitive, multimodal personal data into useful longitudinal views without exposing raw notes, private labels, or source media in a public build.

02

Approach

A system designed for scrutiny.

  1. 01

    Defined typed JSON contracts between independent Python producers and the frontend.

  2. 02

    Separated committed public artifacts from a token-gated, loopback-only private mode.

  3. 03

    Built an atomic refresh contract with provenance, staleness checks, and privacy checks at source and bundle boundaries.

ProducersTyped contractsBundlePrivacy gateInterface
03

Inside

What the system actually produces.

The figures below are rebuilt in the portfolio from synthetic series, so they show the shape of each output without carrying any real data out of the project.

A year at daily resolutionSynthetic data
JanFebMarAprMayJunJulAugSepOctNovDecMWFLowHigh

The calendar view keeps every day visible instead of collapsing the year into an average, so streaks, dips, and gaps stay legible.

Regime compositionSynthetic data
364DAYS CLASSIFIED
  • Steady41%
  • Rising24%
  • Volatile21%
  • Dip14%

Days are classified into behavioural regimes and reported as shares, which is a description of the record — not a claim about what caused it.

Outcome

A coherent analytics product visitors can explore directly, with its public/private boundary enforced at source, bundle, and hosting layers.