# Olger Chotza > Software Engineer, AI Platforms in Remote. I make the demo survive real users, then make it boring on purpose. I take software that half-works and make it hold — usually a PoC that found real users before it found an architecture, or an app vibe-coded into existence that breaks every time someone touches it. Clean, hexagonal boundaries, mostly: the business logic in the middle, everything else replaceable at the edges. The rest of my time goes to AI platforms — models served in-house, agents wired to tools that do real work. Mostly Python, with Next.js when the thing needs a face. Before that, cars. Test automation for telematics units that ship inside a Mercedes-Benz, vehicles flashed straight from a pipeline, and long arguments with ECUs that were simulated and no less stubborn for it. Automotive teaches you one thing fast: a flaky test isn't noise, it's a wrong answer about a two-tonne object. I pointed that instinct at AI — most recently at a robot arm, where the hardware team owns the kinetics and I own the part that reasons: it reads the screen, plans its way through a test case, executes, and replans when the screen disagrees, inside a safety kernel that keeps the steps that matter deterministic. The suites are natural language somebody wrote, or cases generated by another tool I built. I write a lot of Python, and these days I write it next to agents — Claude Code, Codex and Antigravity do the typing on the parts that deserve typing, while I keep the shape of the thing in my head where it belongs. I've shipped agents that review a merge request before any human sees it, and I spend a good share of my time taking apart codebases that were vibe-coded to a working demo and then stopped working. Everything on this page started as an irritation — something that should exist, doesn't, and looks suspiciously like one weekend of work. A few of them grew up. PromptKit was me refusing, one final time, to paste a prompt into a string literal. I start strange projects, lose interest, make coffee, come back. If you're wired the same way, let's build something before either of us remembers we were busy. ## Work - [PromptKit](https://promptkit-core.ochotzas.com/) (2025, Python, Pydantic, Jinja2, Typer): A prompt is a dependency. This gives it the tooling of one: YAML with typed inputs, a linter that finds the typo before your invoice does, eval suites that fail a build, and a price for the run before you press go. On PyPI as promptkit-core. ## Writing - [Prompt Tests That Cost Nothing](https://ochotzas.com/notes/prompt-tests-that-cost-nothing) (2026-09-17): PromptKit 1.0 is out: prompts as files, a linter that finds the typo before your invoice does, and eval suites that run in CI with no API key and no bill. - [The Value Of A Closed Feature Request](https://ochotzas.com/notes/the-value-of-a-closed-feature-request) (2026-08-18): My library has a page listing what it will never do. It's the most useful page in the docs, and it's the reason people can adopt it. - [Rendering A Prompt You Did Not Write](https://ochotzas.com/notes/rendering-a-prompt-you-did-not-write) (2026-06-30): The moment prompts become files, they arrive from places you don't control. A template engine with defaults on is a code-execution primitive. - [The Prefix Match That Tripled The Bill](https://ochotzas.com/notes/the-prefix-match-that-tripled-the-bill) (2026-05-26): A cost estimator that is confidently wrong is worse than one that says it doesn't know. How a two-line convenience priced Opus 4.5 as Opus 4. - [A Version Number Is Not An Identity](https://ochotzas.com/notes/a-version-number-is-not-an-identity) (2026-04-14): Every prompt file has a version field. Nobody bumps it. Hash the content instead, and your cache stops lying to you. - [Prompts Belong In Version Control](https://ochotzas.com/notes/prompts-belong-in-version-control) (2026-01-27): A prompt is not a string. It's a dependency with a price tag, and it belongs somewhere you can review it, diff it and roll it back. ## Contact - Email: me@ochotzas.com - GitHub: https://github.com/ochotzas - LinkedIn: https://linkedin.com/in/ochotzas - PyPI: https://pypi.org/project/promptkit-core/ ## Optional - [Full text of every page](https://ochotzas.com/llms-full.txt) - [RSS feed](https://ochotzas.com/rss.xml)