Product Engineer — ZenML & Kitaru
Overview: The Fastest Python Engineer We Can Find
We're hiring a Product Engineer to help us build the tools Python developers will use to ship AI in production for the next decade.
One line version: we want someone who ships high-quality Python code fast. Not sloppy-fast. Actually-fast. The kind of engineer who turns a Slack conversation into a merged PR before lunch, reads every line of what shipped, and writes code other engineers are relieved to inherit.
You'll work across our two open-source products — ZenML, the AI platform thousands of teams use to orchestrate ML pipelines and agent workflows, and Kitaru, our brand-new durable execution layer for Python agents (crash recovery, human-in-the-loop, replay from any checkpoint). Both are Python-first. Both are Apache 2.0. Both are moving fast. Where you spend your week depends on where the highest-leverage problem is that week.
This is not a backend role. It's not a frontend role. It's a product role that happens to require a serious engineer. You'll talk to users, write the Python, touch the TypeScript dashboard when it matters, ship it, measure it, and come back with the next iteration before anyone's had time to form an opinion on the first one.
We expect you to be AI-pilled — coding agents are already part of how you work, and you have strong opinions about where they help and where they don't. But AI-pilled ≠ vibes-pilled. You read every diff. You can defend every line. You'd be a strong engineer even if every AI tool disappeared tomorrow; the AI just makes you faster.
Key Responsibilities (The "Jobs to be Done")
- Ship Features End-to-End, Fast: Take problems from user conversation to shipped code in days, not weeks. Own the full loop — design, implementation, tests, docs, rollout — across ZenML, Kitaru, or both. Examples of what you might ship in your first months: a new framework adapter for Kitaru (e.g., CrewAI, LlamaIndex), a new orchestrator integration for ZenML, a rewrite of the onboarding flow that cuts time-to-first-pipeline in half, a replay debugger that agent developers will talk about on Twitter.
- Build for Python Developers, as a Python Developer: Our users are Python devs building pipelines and agents. You are one of them. Every API choice, every error message, every example reflects what feels right when you're the one writing the import statement at 11pm.
- Extend the Core Primitives: Evolve ZenML's
@pipeline/@step and Kitaru's @flow/@checkpoint models — new execution semantics, retries, fan-out, sandboxes, framework adapters (PydanticAI, OpenAI SDK, Claude Agents SDK).
- Close the Loop on UX: Jump into the TypeScript/React dashboards when a feature needs a surface. Fix the onboarding friction you just noticed. Don't file a ticket — open a PR.
- AI-First, Craft-First: Coding agents are a daily tool, not a novelty. You also read every diff, understand what shipped, and don't merge anything you couldn't explain in a code review. Build internal tooling (often using Kitaru itself) that makes the whole team faster.
- User-Driven Iteration: Live in our Slack and GitHub. Turn user confusion into a PR the same day. Your product instincts matter as much as your engineering ones — often more.
- Raise the Bar: The codebase is better after you touch it. You leave behind better tests, clearer interfaces, sharper docs. You make the engineers around you better, not just your own output.
Tech You'll Work With
- The Core: Python 3.11+, Pydantic, SQLAlchemy/SQLModel, FastAPI, asyncio
- Our Products: ZenML (pipelines, stacks, artifacts, orchestrators) and Kitaru (durable flows, checkpoints, replay, human-in-the-loop)
- The AI/Agent Ecosystem: PydanticAI, OpenAI SDK, Claude Agents SDK — you know where each one hurts and where our tools help
- The Frontend (bonus): TypeScript, React, Tailwind — for when a feature needs a dashboard surface