Skip to content
View jstavel's full-sized avatar
  • Pasovice 71, Czech Republic

Block or report jstavel

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jstavel/README.md

Jan Stavěl — Platform / Automation Engineer, Clojure, spec-first engineering

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.


🚀 Flagship projects

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.


🧭 How I work

  • 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."


🛠️ Core skills

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


🧰 More projects

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.


🐐 Beyond code

I keep goats and maintain a smallholding — a different kind of mindful task, where the feedback loop is measured in seasons, not sprints.


📫 Contact

LinkedIn — linkedin.com/in/janstavel · CV — PDF

Pinned Loading

  1. ldtp/ldtp2 ldtp/ldtp2 Public

    Linux Desktop Testing Project

    Python 119 53

  2. subscription-manager subscription-manager Public archive

    Forked from candlepin/subscription-manager

    A GUI and CLI client for Candlepin

    Python