Software engineer at Astranis
on the network and payload software team — tools to operate and monitor micro GEO satellites.
Request Trace
Real per-request data — client IP, geo lookup, User-Agent, pod identity.
Cluster
Real cluster telemetry — CPU/mem/disk/pod/node metrics, historical
24h series, Ceph health, network insights, GitOps status, backup Job
status, cloudflared tunnel stats, and the Claude audit log, all ported
from the real src/components/cluster_stats.rs. Most of
this is Prometheus-backed (PROMETHEUS_URL) — GitOps and
backup status go through the k8s API directly; network insights,
spike config, and the Claude audit log are Postgres-backed.
0
CPU %
0
Mem GB
0
Disk GB
0
Pods
0
Nodes Ready
0
RX Mbps
0
TX Mbps
Nodes
%cpu
G mem
Ceph
health
mon quorum/
osd up/
pg clean/
Flux GitOps
Backup Jobs
Network Insights
Mbps
Top Network Pods
tx
rx
Cloudflared Tunnel
HA connections
req/s
error rate
Claude Audit Log
Security Audit
deps advisories
Last scan
Visitors
Real Postgres-backed visitor analytics — every request to this site is logged here.
0
total visits (30d)
0
unique IPs
0
countries
Recent visits
Lighthouse
Here is a programmatically generated lighthouse report
for every deploy
that gets kicked off as part of a k8s job for every new deploy of this site.
Satellites
Real 3D orbital mechanics: the actual CelesTrak "active" TLE group
(~16,000 objects), real sgp4 propagation over a real
288-step/5-minute rolling 24h window — ported from the real
satellite_calculations.rs/satellite_renderer.rs/
satellite_tracker.rs. The WebGL2 shader/matrix/camera
pipeline is a line-for-line port. Propagation itself runs server-side
once per tick (shared by every visitor) instead of in-browser WASM —
see src/satellites.rs for why — and the client
interpolates smoothly between real snapshots.
0 satellites tracked
Time: --:-- UTC
Speed:
Filter:
Conjunction Screening
Real screening: Hoots altitude-band pre-filter, true SGP4 propagation,
a 288-step/5-minute rolling 24h window scan for local distance minima,
ternary-search TCA refinement, rayon-parallelized pair scanning —
ported from the real src/components/conjunction.rs.
Persisted to the real conjunction_screenings/
conjunction_events tables. Foster only owns the button's
idle/started label; the real pass is a background job polled
independently (static/conjunction.js).
Seven algorithms racing from start (green) to end (amber) on the same
random 2048×2048 obstacle grid, each rendered via its own WebGL2
canvas (R8 state texture) — ported line-for-line from the real
src/components/path_search.rs. Foster owns run/pause and
the reset nonce; zoom/pan/follow and all seven algorithm runners are
plain client-side state, same as the real site's own local signals.
0
Blind Search
Explores without knowing the destination location.
BFS
DFS
Corner
Wall
Random Walk
Informed Search
Uses heuristics toward the destination to guide exploration.