jacob goldstein · fairfax, va

Projects · working code, measured results

Things I built, and what they measure.

Every project here is running code with numbers attached — including the ones that aren't finished and the cases where the numbers aren't flattering. Where something is live you can click it. Where it isn't, I say so rather than implying otherwise.

Live right now

Open source

SAM Doctor — deployment diagnostics

Jul 2026 — ongoing

A local command-line tool that turns AWS SAM, CloudFormation, IAM, and GitHub Actions failure output into a readable diagnosis. It came out of my own SAM deployments at Pricing Empowered, where the error a pipeline prints names the symptom and the cause is scattered across templates, build logs, and CloudFormation events nobody wants to read at 2am.

The rule it holds to: every diagnosis cites the evidence it came from. It reads the text you hand it, detects known failure patterns, redacts account IDs and ARNs locally, and gives verification steps plus the relevant official docs. It does not touch AWS, upload anything, or claim an authoritative root cause.

Covers OIDC failures (missing id-token: write, audience mismatch, trust-policy subject mismatch), IAM AccessDenied, CloudFormation rollback states, SAM config errors, and API Gateway CORS preflight conflicts.

python · aws sam · cloudformation · github actions · ci/cd

Interactive

Itinera Network Explorer

Pitt Visual Media Workshop · summer 2025

An interactive map of who knew whom in the world of the 18th-century Grand Tour. Pick a figure, search by name, click a node to walk outward through the network one degree at a time.

Itinera is a long-running research project in Pitt's History of Art & Architecture department that reconstructs the itineraries of 18th- and 19th-century travelers — the artists, architects, collectors, and statesmen of the Grand Tour — from archival sources into a structured collections database. The relational half of that data (who traveled with whom, who patronized whom, who studied under whom) is rich and nearly impossible to see through a database interface.

During my summer at the Visual Media Workshop I worked on getting it out: exporting entity-relationship graphs into portable JSON and prototyping this force-directed explorer on top of them. The same instinct as the rest of my work — the data was already there, it just wasn't legible to anyone who wasn't already inside it.

Three of the four figures are real network exports from the Itinera database; the fourth is a clearly-marked synthetic demo network included to show behavior at larger scale.

d3.js · javascript · force-directed graphs · data pipeline · digital humanities

Live

This server

Running since May 2026
host aws-lightsail os ubuntu-24.04 web nginx tls letsencrypt·auto-renew brute-force fail2ban monitor uptimerobot ↗

Same box, same rules as the colophon on the home page: an nginx instance I administer on Lightsail, deploys that take a timestamped backup before every replacement, and config changes that never skip nginx -t.

The private area behind Basic Auth is HTTPS-only, carries noindex and no-store headers, and keeps its credential hash outside the web root. fail2ban jails cover SSH and HTTP auth.

Uptime
99.992%last 90 days · independently measured
Monitoring
5 minexternal check interval
Incidents
live count on the status page

The uptime figure isn't self-reported — UptimeRobot hosts that page, not me.

Code you can read

Open source

OpenFall — pre-fall detection

Jan — Mar 2026

Detecting a loss of balance from a single uncalibrated RGB camera before the body reaches the floor, which is the window where an alert is still useful. MediaPipe Pose supplies 2D skeleton kinematics; Depth Anything V2 adds monocular depth. A three-state machine moves between STANDING, PREFALL, and FALLEN.

Evaluated against the complete UR Fall Detection Dataset — all 30 fall sequences and all 40 activities-of-daily-living sequences, with no per-sequence parameter tuning.

Falls detected
28 / 3093.3%
Mean lead time
415 msrange 167–833
False FALLEN in falls
0 / 30
False positives in ADL
17 / 4042.5% · floor-level activity

The design choice I'd defend in review: FALLEN requires two of three primary 2D votes, and the 3D depth signals can only raise PREFALL sensitivity — never trigger FALLEN. That means a bad depth frame cannot manufacture a false alarm on the state that matters.

Both misses raised PREFALL correctly and then ran out of video before the FALLEN threshold held. Seventeen of the forty ADL sequences produced a false FALLEN, and every one of them is floor-level activity — crouching, kneeling, or lying on the ground, which a 2D scorer cannot tell apart from a fallen person. That's audited video-by-video in the repo rather than smoothed over.

python · mediapipe · depth anything v2 · opencv

Open source

Local Kubernetes lab

Apr – May 2026

A Flask app on a local kind cluster, built to learn how the pieces behave rather than to ship anything. One script takes it from nothing to a running, port-forwarded, load-balanced three-replica deployment.

The detail worth keeping: the bootstrap uses kubectl wait before opening the port-forward. Without it the forward races the pods and fails intermittently — which is an annoying thing to debug the first time and an easy thing to get wrong.

kubernetes · kind · docker · flask · bash

Recent & in progress

v0.1 in progress

Congress Poland Registers

Started Jul 2026

An open benchmark corpus for handwritten-text recognition on 19th-century Jewish vital records from Pułtusk and Serock — handwritten Polish and Russian Cyrillic, in semi-tabular civil-register layouts. It started as tracing my own family and became a data problem.

The gap it fills: public HTR models exist for this material, but they report accuracy on their own validation data, so no common yardstick exists to compare anyone's claims. This is meant to be that yardstick.

The metric is name fidelity, not page-level character accuracy. A mangled surname enters a genealogy database and becomes somebody's wrong ancestor. So evaluation reports per-page error distributions rather than a single mean — a model averaging 5% that fails at 30% on the hardest pages looks fine on the headline number and is useless for names — plus separate error accounting for personal and place names.

The repository is public now and states plainly that no corpus data is published yet. What's there is the contract: dataset card with a per-page rights ledger, a versioned transcription and normalization policy, split placeholders, and the evaluation interface.

htr · benchmark design · evidence tooling · cyrillic · python

Private

Whole-genome variant pipeline

Aug 2026

A 30× whole-genome dataset run through DeepVariant end to end on my own hardware: alignment to GRCh38 producing a 19.6 GB CRAM, then the three-stage call — make_examples across 16 shards, call_variants inference, and postprocessing into a VCF.

Most of what I learned here was operational rather than genomic. The postprocessing stage was OOM-killed twice with no traceback, because the kernel SIGKILLs rather than letting Python raise — the log simply stops mid-sentence. The fix was reducing worker parallelism against a fixed memory ceiling, not more compute. A separate bug in the resume script pointed at the wrong output filename, which would have silently re-run a four-hour inference stage that had already succeeded.

Earlier in the same project, a full-stream integrity check caught a corrupt input file that had already cost one twelve-hour alignment run. Verifying inputs before long jobs is a habit that paid for itself immediately.

deepvariant · apptainer · wsl2 · bwa · samtools · linux

Get in touch

IT Helpdesk Specialist at The Potomac School. Happy to walk through any of the above in detail, including the parts that broke.