Jacob Goldstein / systems & notes

Tools, experiments & the useful details

The workbench.

Tools for diagnosing deployment failures, running local infrastructure, and making research data usable. Public source and demos sit alongside internal workflows, with each project’s current state and limits explained.

In use & online

Open source

SAM Doctor — deployment diagnostics

Jul 2026 — ongoing

A local command-line tool that turns AWS SAM, CDK, 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 server notes 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
View history ↗current reporting period on UptimeRobot
Monitoring
5 minexternal check interval
Incidents
→live count on the status page

Availability and incidents are reported on the external status page, with its measurement window shown alongside the results.

Code you can read

Open source

AKT Reader — handwritten registers

Ongoing

A local application for reading handwritten Polish and Cyrillic civil registers. It keeps the source evidence and review state close to the transcription so uncertain names and readings can be checked.

The application, evaluation tools, and benchmark corpus have separate repositories. The corpus is still in preparation; a runnable reader is not a claim of validated transcription accuracy.

python · handwritten text recognition · evidence review

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

Local validation

Zendesk thank-you ticket workflow

September 2026

A Google Sheets workflow for reviewing thank-you tickets before marking them solved. It fetches the ticket, checks the required tag, and asks the operator to review the result before approving an update.

The useful constraint: a ticket that changes after preview must be reviewed again. Duplicate IDs, cross-tenant links, retry limits, and an audit trail are handled in the workflow.

Built and tested locally with mocked responses. Live Zendesk validation remains separate. Operational source and credentials are private.

google apps script · zendesk · oauth · support operations

Pilot preparation

Mac printer configuration and verification

September 2026

A Jamf-compatible Bash script for configuring a Ricoh queue and checking its live CUPS attributes. A check-only mode inspects the queue without changing its settings or jobs.

The useful constraint: local configuration success is kept separate from a successful print. The script preserves unfinished jobs and legacy queues, and reports exactly what still needs a real user test.

Mocked behavior checks pass. Native macOS, authentication, print attribution, and copier release still require pilot validation. Deployment-specific source remains private.

macos · jamf · bash · cups · printer support

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

Talk shop

Have a question about a project or an idea to compare? I’m happy to talk through the details.