CLI/Developer-Experience Engineer
💡 Søknadstips: Når du klikker på «Søk gratis på Braintrust», blir du videresendt til den offisielle siden til Braintrust. Dette er 100 % gratis for deg og bidrar til å støtte plattformen vår gjennom henvisningsbonuser.
⚠️ Oversettelsesmerknad: Denne stillingsinformasjonen er oversatt med AI. Ved uklarheter eller feil, bruk den engelske originalen som fasit.
Role Overview
CLI / Developer-Experience Engineer - Mithril.ai Contract · Full-Time (40 hrs/wk) · Pacific Time (up to ±3 hrs) · Remote-Friendly
About the Role
Mithril.ai is a fast-growing GPU cloud startup based in Palo Alto, CA. We give ML teams on-demand access to high-performance compute for training and inference workloads. The Mithril CLI is the flagship developer interface to our platform-and we're looking for a craftsperson to help make it exceptional.
The Mithril CLI is how customers launch and manage ML training workloads on our GPU hardware. Built on a hybrid Rust + Python architecture-a high-performance Rust core compiled via Maturin with a Python (Cyclopts) interface-it currently wraps SkyPilot for provisioning. The CLI is young and growing fast.
Your mission: transform the CLI from a thin SkyPilot wrapper into a polished, self-sufficient control plane that engineers love to use. You'll own the product surface end-to-end, ship real commands against our API, and set the bar for developer experience on our platform.
At a Glance
- Location: Remote; SF/Palo Alto office access a plus
- Time Zone: Pacific preferred; up to ±3 hrs offset acceptable
- Engagement: Full-time (40 hrs/wk), starting ASAP
Key Deliverables
1 - Credential & Environment UX
Design and build an ml config / ml auth command set so users can authenticate and switch between environments without manually exporting a dozen-plus environment variables. Replace the current manual setup documented in the README with a seamless, guided flow.
2 - Expand the API Surface into First-Class Commands
Grow the Mithril API client beyond volume listing to cover reservations, volumes, clusters, and instance status. Surface these as proper subcommands (e.g., ml status, ml volumes, ml reservations) rather than delegating to SkyPilot.
3 - Documentation, Scriptability & Polish
Add --json / --yaml structured output across all commands, shell completion for bash and zsh, and clear, actionable error messages for API 4xx/5xx responses (auth, permission, rate-limit, service-down).
Why This Role is Exciting
- High-visibility product: the CLI is the primary customer touchpoint for our GPU platform
- Greenfield command design on a genuinely interesting stack (Rust core + Python interface + GPU cloud)
- High autonomy, fast ship cycle, real users to delight from day one
- Early-stage startup impact-your work ships and matters immediately
Required Skills & Experience
- Strong Python 3.12+ (modern typing, async/await)
- Demonstrated experience building and maintaining CLI tools or developer tooling-argument parsing, subcommand design, helpful output, thoughtful UX (we use Cyclopts; Click/Typer/argparse experience transfers directly)
- Designing clean HTTP API clients (httpx / requests)
- A genuine eye for developer experience-clear errors, good help text, sensible defaults, correct exit codes
- All work and documentation in English
Nice-to-Have Skills
- Rust, especially Python↔Rust interop via pyo3 / Maturin
- SkyPilot, Kubernetes, or ML training infrastructure experience
- Shipping and distributing CLI packages (wheels, versioning, auto-update)
- Shell completion and terminal UI (Rich)
- Prior work on cloud-provider CLIs (aws/gcloud-style config & profiles)
Tools & Toolchain
GitHub + Graphite (stacked PRs), Linear, Slack, uv (Python deps), Cyclopts, Maturin (Rust builds), Ruff, Pyright, pytest, Rich, SkyPilot.
Who You Are
You're a developer-tools craftsperson with strong opinions about what makes a CLI delightful-someone who sweats the small stuff (error messages, --help text, exit codes, completion scripts). You're comfortable owning a product surface end-to-end, designing commands from scratch, and iterating based on real customer feedback. Bonus points if you're excited to drop into a Rust core when needed. You communicate clearly in English and thrive in a fast-moving startup environment.
Interview Process
Our process is straightforward and respectful of your time:
- Initial conversation with the engineering team
- Technical discussion / deeper dive
Duration:
This will we a 2-3 month engagement, but will be evaluated every 3 weeks for continuation.
Få personlige jobbvarsler