Skills
A focused stack shaped by the kinds of systems I like to own.
This is intentionally curated for hiring review. I am not trying to list every tool I have touched. I am trying to show the technologies that show up repeatedly in the work I am strongest at.
Bias
Backend first
I usually start from contracts, jobs, data flow, and operations, then work outward into the product surface.
Proof
Shipped systems
Most highlighted tools here link back to StageFlow or AlchemizeCV, where they show up in real product behavior rather than isolated experiments.
Working style
Operator clarity
I value systems that are easier to debug, easier to explain, and less dependent on hidden process knowledge.
Core languages
The languages I write production code in regularly and have shipped real systems with.
Go
StageFlow orchestrator, platform API, CLI, archive extractor. 21 Go modules in a workspace monorepo.
Python
AlchemizeCV API (FastAPI), Clear11y scanner, DisplayAnalysis. Feature slices, async patterns, Welford's algorithm.
TypeScript
StageFlow scanner runner and web UI (SvelteKit), AlchemizeCV web frontend (React + Vike), this portfolio site.
Frameworks and libraries
The frameworks I reach for when building product surfaces and APIs.
SvelteKit
StageFlow web UI and this portfolio site. SSR, file-based routing, server endpoints.
FastAPI
AlchemizeCV and Clear11y APIs. Pydantic validation, async handlers, job queue patterns.
React + Vike
AlchemizeCV web frontend. Feature slices, WebSocket streaming, drag-and-drop reorder.
Playwright
StageFlow scanner runner and Clear11y. Browser automation, axe-core injection, screenshot capture.
Infrastructure and deployment
How I get systems running and keep them running.
Podman (rootless)
StageFlow runs all scanner containers via rootless Podman. Compose overlays for dev/staging/prod.
Docker
Clear11y and DisplayAnalysis containerization. Multi-stage builds, non-root users.
systemd + Quadlets
Production deployment via Podman quadlet units. This portfolio site runs as a systemd user service.
Caddy
Shared gateway for TLS termination and reverse proxy across all services.
Data and messaging
The storage and communication layers I build on.
PostgreSQL
StageFlow job state (FSM, idempotent writes), AlchemizeCV (SKIP LOCKED workers, feature slices).
SQLite
Clear11y job store, DisplayAnalysis local storage. Zero-config for single-instance deployments.
NATS JetStream
StageFlow inter-service messaging. 3 streams, 8 event subjects, durable consumers with 72-hour retention.
MinIO
StageFlow artifact storage. Presigned URLs for report screenshots, staging namespace for ZIP uploads.
Testing and quality
How I build confidence before shipping.
Contract testing
DisplayAnalysis TestSummaryKeyContract prevents silent key-rename bugs. StageFlow JSON Schema contracts across Go and TypeScript.
Integration testing
StageFlow end-to-end scan tests. Clear11y container integration tests. AlchemizeCV pipeline tests.
FFT signal validation
DisplayAnalysis validates flicker detection against synthetic 10 Hz signals. Frequency within 1 Hz, amplitude within 15%.
Specialized domains
Domain knowledge that shows up in specific projects.
WCAG 2.1 accessibility
Clear11y and StageFlow axe scanner. Focus visibility detection, keyboard navigation testing, ARIA validation.
CIELAB color science
DisplayAnalysis uses perceptually uniform color space for sub-perceptual shift measurement.
LLM integration
AlchemizeCV four-phase generation pipeline. Context pruning, content hashing, partial reruns, strict output parsing.