I build the parts of a system that have to be right, not just fast — workflow engines, async data layers, streaming pipelines, and the compilers and schedulers underneath them.
Highlights
- #615: activity inputs resolved in the workflow. Every step now receives, and history records, the exact values the workflow computed, so a run can be debugged from its history alone.
- #623: unblocked the project's CI. A CVE in
golang.org/x/nethad failed the image scan onmainand on every open PR for two days. The fix brought builds and image publishing back to green. - #591: cancelling a workflow now stops it. A fork waits for its branches to be cancelled instead of returning while they keep running.
10 merged pull requests across 1 repository, and 3 issues reported. Took part in 8 discussions. Reviewed 2 pull requests.
Latest merged:
- zigflow/zigflow#626: refactor!: remove the GetVersion gates for activity inputs and activity names (2026-10-12)
- zigflow/zigflow#622: test: resolve the temp dir symlink in the working-directory test (2026-10-11)
- zigflow/zigflow#623: fix(deps): bump golang.org/x/net to v0.60.0 for CVE-2026-78669 (2026-10-11)
Full record: CONTRIBUTIONS.md
- ⚙️ Workflow orchestration & durable execution — Temporal, compensation, state you can reason about a week later
- 🧩 Compilers & DSLs — graph traversal, lowering, validation, normalisation; the interesting bits are all edge cases
- ⚡ Async Python at the data layer — SQLAlchemy 2.0, connection lifecycle, migration discipline
- 🕐 Scheduling correctness — recurrence rules, occurrence generation, timezone-aware scheduling
- 🔐 Auth & access control — asymmetric JWT, centralised verification, RBAC that holds at the fifth service
- 🎥 Real-time media — RTSP, HLS, WebRTC, and the bandwidth arithmetic behind choosing between them
- 🔍 Observability of distributed work — tracing an execution back to the intent that produced it
Languages & Frameworks
Orchestration & Data
Infrastructure
Media & Protocols
- 🔭 Deep in workflow orchestration — compilers, durable execution, making failures legible
- 🐹 Learning Go properly, mostly by fixing things in a runtime written in it
- 🌍 Contributing upstream instead of carrying patches locally
- ✍️ Getting better at the non-code half — design ownership, root-cause analysis, and writing things down
🐍 Python backend & distributed systems · ⚙️ Workflow orchestration & Temporal · 🧩 Compilers, DSLs and developer tooling · 🌍 Open source



