Stories bring the power to know; success fuels the power to grow. Trust builds joy, and shared joy is twice the joy.
Python and Perl by hand, Clojure by heart, TypeScript with agents, Terraform with respect. I build systems whose output can be verified, not merely demonstrated. I cherish the fleeting moments that remind me I am still growing.
24 years on Linux. Ten years of enterprise test automation (Red Hat). Currently building in public: every project below has its specification, ADRs, and tests in the repo — the way of working is as much the deliverable as the code.
I work spec-first: the specification is the contract between me, the AI agents that do the building, and the reviewer — frozen after approval, renegotiated explicitly, never drifted. Each repo shows the same pattern: spec → ADR → plan → implementation → independent verification.
Infrastructure gets the same discipline: Terraform with respect — plan before apply, pinned artifacts, and an awareness that every change has a blast radius beyond my own console.
janbot — Autonomous AI career assistant
A spec-driven RAG pipeline (DSPy, Python/FastAPI) deployed to GCP Cloud Run with Terraform, a guardrail layer (answer cache, rate limits, hard quota, deterministic over-claiming guard), and contract-based evaluation against a pinned baseline. Live demo: jstavel.github.io/janbot — the spec, ADRs and evaluation records are in the repo.
What it demonstrates: end-to-end ownership — evaluation design, infrastructure as code, and the discipline to ship a baseline over an unverified optimization.
reactive_testing — Spec-first testware
Event-driven testing: validate what a system actually did from its own runtime data, beyond pass/fail. TypeScript + Playwright.
What it demonstrates: testing architecture as a design problem, not a checklist.
krakatoa — Polyglot matching engine
High-performance matching engine in Clojure/Rust on Polylith architecture, ZeroMQ transport, Kafka event sourcing, chaos testing.
What it demonstrates: Clojure as a first-class systems language, next to Rust.
gtd-org — GTD in org-mode
Personal productivity system ("mind like water") implemented in org-mode and Clojure — built and refined over years. Today it is in maintenance rather than daily use; its living part is the Plaud-downloader component (ClojureScript) that pulls my own voice recordings into a searchable knowledge base.
What it demonstrates: the tooling philosophy — build tools, not tickets.
audio_transcriber — AI transcription pipeline
Python + Playwright pipeline that turns audio recordings into a searchable, structured knowledge base — my own second brain, running on real data.
What it demonstrates: AI engineering applied to a real personal workload, not a demo dataset.
plaud-pipeline — voice notes → knowledge base
TypeScript/Node pipeline that turns a growing pile of voice recordings into an append-only Org-mode ledger, which is then triaged, transcribed and ingested into a corpus. Built around one principle — one workflow, many tools (ADR 0012): every step is a capability with its own specification, contracts and tests, independent of the tool that implements it, so a capability can be swapped, scripted, or done by a human in Emacs. Currently v1 of one capability (register in ledger) with CI; the rest are specified, not yet built.
What it demonstrates: decomposing a workflow into swappable capabilities — spec-first in TypeScript — and stating the implemented slice honestly.
- Spec-first: the specification is the interface between me, the AI agents that build, and reviewers — frozen after approval, renegotiated explicitly, never drifted.
- Artifacts in git: decisions (ADRs), plans, and verification records are versioned and addressable; "trust me" is not an artifact.
- Human-owned review: the builder can be an agent; the problem definition, the review, and the evidence that it works are always mine.
- Failure is data: each repo's history includes what was rejected and why.
- Published claims are measured: the demo answers from a pinned corpus, and its evaluation gate is pre-registered against a fixed reference.
"I believe the core requirement for a team to grow is that each brain in the team is learning. I thrive on mindful tasks and constant challenges; once a task becomes routine, I look for the next peak to climb."
Clojure · ClojureScript · Python · Rust (basic) · TypeScript · JavaScript · Terraform · GCP (Cloud Run, Artifact Registry, Secret Manager, Firestore) · Ansible · Podman/containers · CI/CD · Playwright · Robot Framework · DSPy · FastAPI · Linux
Everything else is public too — grouped, one line each, specs in the repos.
Clojure / functional test-clj.testng — Clojure bridge libraries over a Java/TestNG suite (Red Hat era; upstream in the RedHatQE org)
Python cdbazar — Django e-shop, in production 18+ years · psp-validator — validates PSP packages for the National Library's digitisation workflow (docs, METS metadata) · edeposit.amqp.isbn and edeposit.search — long-term-preservation middleware for a national library
Mentored / National Library era Differ — a gate for entering a long-term-preservation archive: reads image metadata through several CLI tools, compares what they report, and decides what may be ingested (later a Google Summer of Code 2013 project I mentored)
Unpublished (OSVČ era) Perl SAX transformation of a reseller's very large XML into product feeds for zbozi.cz and heureka.cz — hundreds of cross-references in the tree made streaming SAX the only viable way through the file. No public repository.
I keep goats and maintain a smallholding — a different kind of mindful task, where the feedback loop is measured in seasons, not sprints.


