# IOTA Hub — Skyler Carlson

> Markdown version of https://skycarl.io/iota-hub/ — a case study from
> [skycarl.io](https://skycarl.io/) ([markdown](https://skycarl.io/index.md)).

Projects — Citizen Science

A serverless platform for the International Occultation Timing Association — a
volunteer citizen science organization whose observers time stars blinking out behind
asteroids. It replaced an email-based scientific review workflow, cutting the time
from observation to published data from months to days.

## Why occultations matter

An occultation is one object passing in front of another, blocking its light. When an
asteroid crosses in front of a distant star, it casts a narrow shadow that sweeps
across Earth — and inside that path, the star blinks out for a few seconds, then
returns.

It's a technique built for citizen science. Observatories are fixed to mountaintops,
but volunteers with portable equipment set up right in the predicted path of the
occultation.

That blink is data. Observers along the predicted path each record the exact moments
the star disappears and returns (or doesn't — a "miss" is valuable data, too). Each
dataset helps refine the orbital parameters for the asteroid, and with enough data,
estimates for its size and even overall shape emerge.

Occultations regularly discover moons around asteroids and reveal single stars to be
binaries. The results feed into the Minor Planet Center, NASA, and the European Space
Agency. Yet for decades, the pipeline from recording to published data ran on email
threads and spreadsheets.

## Real observations (two events · July 2026)

- ![Scatter plot of a star's measured brightness over time, dropping abruptly to the noise floor for several seconds before recovering](https://skycarl.io/iota-hub/lightcurve-brasilia.png)
  **Fig. 1 — Light curve.** The raw signal: starlight drops to the noise floor as (293) Brasilia crosses in
  front of a star.
- ![Sky-plane plot of timed chords laid over a 3-D shape model of asteroid (293) Brasilia, 57 km mean diameter](https://skycarl.io/iota-hub/skyplane-brasilia.png)
  **Fig. 2 — Sky plane.** The same event on the sky plane: the timed chord laid over a 3-D shape model of
  (293) Brasilia.
- ![Sky-plane plot of twelve colored chords fitting an ellipse to asteroid (40417) 1999 RD16](https://skycarl.io/iota-hub/skyplane-rd16.png)
  **Fig. 3 — Chord fit.** A day later: twelve chords fit an 11.2 × 8.1 km ellipse to (40417) 1999 RD16 — and
  the uneven drops reveal the target star is a close double.

## The system (sole developer · 2025 — present)

IOTA Hub is a serverless web application: observation submission, structured
scientific review, and delivery of accepted data to downstream archives. I built and
maintain it end-to-end — architecture, application code, infrastructure, and CI/CD —
developing with Claude Code throughout.

| Layer    | Stack                      |
| -------- | -------------------------- |
| Frontend | Astro + Vue                |
| API      | FastAPI on Lambda          |
| Data     | DynamoDB + S3              |
| Delivery | CloudFront                 |
| Infra    | Terraform + GitHub Actions |

## Impact

- **months → days** — observation review turnaround
- **NASA · ESA · MPC** — downstream consumers of accepted data
- **1 engineer** — shipped and sustained end-to-end
