Windmill
Open-source platform to build, orchestrate, and monitor internal tools from scripts. Turn scripts into auto-generated UIs, APIs and cron jobs. Compose them as workflows or data pipelines.
- Open roles
- 4
Company signals
Score: 69Job facts
- Location
- Remote
- Workplace
- Remote
- Type
- Full-time
- Salary
- €50K – €90K
Product Software Engineer
at Windmill
Product Software Engineer
Build and ship the Windmill product end-to-end. The core challenge of building a developer platform: make it a delightful, intuitive experience while keeping the depth and power that developers expect. And increasingly, make Windmill the best place to author, run, observe, and debug AI-powered workflows and agents.
For example, Windmill parses your code to extract dependencies in Python/TypeScript, generates a lockfile, and extracts parameters from function signatures to auto-generate a UI, letting developers focus on the code that matters while handling all the boilerplate, with escape hatches for manual control. The same philosophy now extends to AI: turning an LLM call, a set of tools, a prompt, and a skill into a production-grade agent step should feel as natural as defining a function. All of that while being the fastest workflow engine on the market.
You'll work across the full stack, owning features from design to production:
- The editors. Build and refine Windmill's script editor, flow editor, app editor, raw app editor, and pipeline editor in Svelte / TypeScript. These are the heart of the product. Obsess over developer experience.
- AI inside the editors. The AI surface in Windmill is not a side panel. It is woven into how scripts get written, flows get built, apps get scaffolded, pipelines get debugged. You'll design and ship that integration: inline code generation, agent steps in flows, skill authoring, tool pickers, structured outputs, streaming responses, error recovery, trace inspection, evals you can actually look at and act on.
- Agentic systems. Work on Windmill's custom agentic loop (planning, tool use, retrieval, self-correction) and the UX wrapped around it. The agent loop and the interface around it are the same product.
- Backend integration. Wire frontend features to the Rust backend. APIs, real-time execution feedback, state management, SSE streaming, multipart, all the plumbing.
- Product sense. Talk to users, read feedback, spot friction. Ship what matters, cut what doesn't.
- Full ownership. Spec, design, implement, ship, iterate. Small team, no handoffs.
Example projects in your first 3 months
Real items from our roadmap. You'd take on the ones that fit your strengths, not all of them.
- Redesign the flow editor's agent step: prompt editing, tool picker, structured output schemas, inline trace inspection, branching from any step in a past trace
- Rebuild the script editor's AI assist so it does multi-file edits, diff previews, test-driven iteration, and recovery from failed runs, all without leaving the editor
- Extend the AI agent to the local dev surface: edit synced scripts and flows from the VS Code extension, run iterations from the CLI, with the same trace, skill, and eval visibility as in the web IDE
- Build the UI for authoring and evaluating skills: write the skill, run it against a task corpus, see pass rates per task, diff between prompt/model versions, promote to production
- Ship a "from prompt to deployed workflow" experience: natural language in, scaffolded flow plus schema plus app plus permissions out, with the user able to steer mid-generation
- Rebuild the app editor and raw app editor's component system so users can compose reusable, parameterized UI blocks, including AI-driven components (forms generated from a prompt, dashboards generated from a query)
- Redesign the script editor's dependency management: auto-detect imports, inline version pinning, lockfile preview
- Build a real-time collaboration layer for the editors so multiple users (and an agent) can edit the same workspace simultaneously
- Improve the pipeline editor and scheduling UI: cron builder, execution history timeline, alerting configuration, all from a single view
Who we're looking for
We want someone genuinely excellent in their area, not "okay" at everything. The most useful person on a small team is the one who is the best in the room at the thing they care about, and curious enough to learn the rest on the job.
Pick your strength:
- Devtool DX, end to end. You think about developer experience holistically, not just the frontend. That means the web IDE (script, flow, app, raw app, pipeline editors), but also the CLI (
wmill), the VS Code extension, the local dev workflow, the sync between local files and the Windmill server, the API surface (what's exposed, how it's shaped, how it composes), the SDKs. You have strong opinions on what makes a developer tool good across all of these surfaces (Linear, Raycast, Cursor, Figma, Replit, Vercel, Supabase, your own tools, take your pick) and the patience to get the details right. TypeScript is a must. Svelte a plus. Comfort reading Rust to understand and shape what the backend exposes is a plus too. - AI product engineering. You've built and shipped real LLM-based systems, not just demos. You understand agent loops, tool use, skills, evals, streaming, retrieval. You have taste for what makes these experiences good versus terrible. You also think about the AI experience across the full Windmill surface: developers don't just live in the web IDE, they sync to local files, work in VS Code, run things from the CLI. The agent has to be useful wherever they are, with a consistent mental model across surfaces. Bonus if you've also owned the UI around them, because at Windmill the model and the interface are the same product.
- Workflow & data infrastructure depth. You've built or deeply used the systems in our space: data pipeline builders (Airflow, Dagster, Prefect), workflow engines (Temporal, n8n, Inngest), execution runtimes and schedulers, observability and monitoring stacks. You have strong opinions on what makes these tools fast, operable, and a joy to debug. You want to build the best version of one of them inside Windmill, whether that's the pipeline editor, the runtime, the worker layer, the monitoring UI, or something we haven't shipped yet.
- Full-stack / systems range. You can read and contribute to a Rust backend, and you care about latency, correctness, and how the frontend and backend fit together. You see infrastructure as part of the product.
You don't need all four. You need to be very good at one and curious about the others. 1+ years of experience. Portfolio matters more than résumé.
Offer details
- Location: Paris hybrid (~3 days/week) or remote within France
- Contract: CDI (permanent)
- Salary: €50K to €90K gross plus 20% bonus on collective milestones. Starting offer based on what you've shipped, top of market for level once you ramp, with quick progression if you prove yourself.
- Also open to: interns / young graduates (5–6 month internship, €2,000–3,000/month, strong CDI potential)