Projects
These are not weekend demos left at "it works on my machine". Each one is versioned, tested, documented, and released through CI. If you want to know what I would bring to your codebase, this is the evidence rather than the claim:
- Typed end to end - strict TypeScript, or Go, with schemas as the source of truth
- Tested where it counts - unit tests for logic, end-to-end for flows that break
- Documented decisions - ADRs, runbooks, and READMEs written for the next person
- Automated release - linting, tests, versioning, and publishing on every push
Go·The git hook runner for containerized devforge
A git hook runner that executes your linters and formatters inside DDEV or Docker, where the tools actually live. One Go binary, no Node.js, no wrapper scripts.
- 297
- Go test functions across 22 test files
- 1
- static binary, zero runtime dependencies
- 5
- CI workflows, including an install smoke test
TypeScript·Ask in plain Serbian, get the articleZakonik
Serbian legislation searched in plain language, answered with the exact article it rests on. Thirteen statutes and 5,056 articles indexed, every citation verified against the retrieved text before it reaches the page.
- 5,056
- articles across 13 statutes, in one 8 MB SQLite file
- ~0.1ms
- lexical retrieval, in-process, no database server
- 100%
- of citations checked against the retrieved text, in code
Rust·Move files across an air gap with a cameraPorter
Air-gapped file transfer over dynamic QR codes. A terminal sender animates a file as QR frames; a Flutter app films the screen and rebuilds the bytes. No network, no cloud — the QR codes are the wire.
- 160
- tests across Rust and Dart, including cross-language parity
- 2
- independent implementations of one bit-exact wire format
- 82x
- faster fountain decode after fixing a quadratic endgame
TypeScript·LLM-scored job discovery, built on my own starterjob·finder
A multi-tenant job-discovery product that reads company ATS boards, scores every posting against your CV with an LLM, and prepares tailored application material. Built on GStack in 13 days.
- 13
- days from empty repo to a working multi-tenant product
- 9
- ATS adapters, each a pure function with a fixture test
- 766
- tests - 737 unit, 29 end-to-end
TypeScript·Multi-tenant SaaS starter, batteries includedGStack
A production-ready starting point for multi-tenant SaaS: Nuxt 4, Supabase, row-level-security tenancy, billing, notifications, and observability already wired together and tested.
- 10
- isolated Nuxt layers, each a self-contained feature
- RLS
- tenancy enforced in the database, not app code
- 19
- test files, plus automated a11y and screenshot CI
TypeScript·Multi-tenant HR leave management, in productionmoj·GO
A multi-tenant HR leave-management app for Serbian companies. Real product, real domain rules: accrual, carryover, public holidays, and an approval chain that has to be right.
- 71
- test files - 43 end-to-end specs, 28 unit
- 81
- SQL migrations, schema versioned from day one
- 150
- markdown docs: ADRs, runbooks, references
PHP / Shell·A PHP quality toolchain, packagedBooster
The PHP quality toolchain I bring to a team, packaged as one installable bundle: PHPStan, Psalm, Rector, ECS, git hooks, CI, and IDE config, pre-wired and ready on day one.
- 1
- command to add the full toolchain to a project
- Auto
- formatting and modernization fixed in CI, not review
- 5
- CI workflows, including integration tests
Ansible / YAML·A dev workstation from bare metal, reproduciblyGriffin
Ansible playbooks that take a bare Linux or macOS machine to a fully configured development workstation, verified on every push across Ubuntu, WSL, and macOS runners.
- 3
- platforms tested in CI: Ubuntu, WSL, macOS
- 65
- YAML task files, idempotent by construction
- 0
- manual steps to rebuild a machine
TypeScript·A solver that explains itselfSudoku Pro
A Sudoku game that teaches you to solve Sudoku. A constraint-propagation engine detects which human technique applies to the current board and walks through the reasoning, step by step.
- 6
- unit-tested modules: engine, grader, hints, scoring
- 8+
- solving techniques, from naked single upward
- PWA
- installable, works offline