About Jan
Jan is an open-source AI platform, built in public and downloaded over six million times. We put intelligence directly in people's hands: run open models locally or plug in the providers you choose, with your data staying yours. We move fast, open-source what we can, and grow through the people who build and use it. If you want your work to reach millions and stay open, this is the place.
The Role
We are building Jan Router, an enterprise LLM gateway. Think OpenRouter, but for organizations: one gateway in front of many model providers that routes traffic intelligently and gives an org a single place to manage keys, budgets, quotas, usage, and billing. You will bootstrap it from scratch and own the architecture, the first production deploy, and everything from the request proxy to the billing ledger. This is a lean, agent-native setup. Rather than leaning on a large team, you will orchestrate coding and execution agents to ship at team-scale velocity, while keeping the hard backend judgment to build a billing-grade gateway that does not fall over. The router is your primary charge, but not your only one: you will also contribute to the Jan Agent, wiring agent and tool traffic through the same routing, metering, and controls. You are fluent in trade-offs. You know which parts can ship fast and be hardened later, and which parts, like the money path and auth, have to be right the first time. This role suits a Backend or Software Engineer ready to open a new chapter: working closely with a frontier research team and building real AI services from the bottom up, starting at the model level.
What You'll Do
Build the core gateway: a unified, OpenAI-compatible API in front of multiple providers (OpenAI, Anthropic, Google, plus self-hosted and OSS models).
Own provider routing and reliability: load balancing, automatic failover, and cost and latency-aware routing.
Build billing and metering that is correct, not approximate: per-request token accounting, usage ledgers, cost attribution per team, user, and key, budgets, and spend limits.
Ship org controls: API key management, per-team and per-user quotas, rate limiting, and RBAC.
Handle streaming and performance: low-overhead proxying, streaming responses, connection handling, and caching where it helps.
Contribute to the Jan Agent and connect it to the router: route its model and tool calls through the gateway, and make agent traffic first-class in metering, controls, and observability.
Make deliberate speed-versus-correctness calls: move fast where iteration is cheap, refuse to cut corners where a bug means a bad charge or a leaked key, and pay down debt on your own initiative.
What We Look For
Work agent-natively as your default, running multiple agents in parallel, pushing token throughput hard, with your own review and guardrail discipline, using open harnesses like Pi, Hermes Agent, and OpenCode as your daily drivers, on open and frontier models alike.
Acquainted with LLM API systems: providers, OpenAI-compatible endpoints, streaming, tool calling, and token accounting.
Experience with LLM infra: inference proxies, provider SDKs, token counting, or existing gateways and routing services (LiteLLM, cliproxyapi, 9router, Omnirouter, and similar) as reference points.
Acquainted with core AI concepts: context windows, inference, prompting, evals, and how open models differ from hosted providers in practice.
Proven ability to ship from zero to production and own the result, including infra, deploy, alerting, and CI/CD, regardless of which stack you did it in.
Open-minded and pragmatic: you weigh speed against correctness case by case, hold strong opinions loosely, and change course when the evidence says so, all while staying fast-moving and comfortable with full ownership and ambiguity.
Nice to Have
A track record building production backend services that handle real traffic: APIs, auth, data modeling, deploy, and monitoring.
Experience with payments, billing, metering, or usage-based systems, or the rigor to build them correctly (idempotency, reconciliation, no dropped or double charges).
Comfort with high-throughput proxying, gateways, and streaming, and the performance concerns that come with them.
Solid datastore skills: PostgreSQL, Redis, queues where needed, and sound schema design for usage and billing data.
Strong in at least one of TypeScript or Python.
Comfort with Docker, Kubernetes, OAuth and OIDC, API keys, RBAC, tenant isolation, and secure secrets handling.
Familiarity with the Jan.ai ecosystem or other OSS LLM tooling.
MCP and tool-calling knowledge, directly relevant since you will help the router carry the Jan Agent's agent and tool traffic.
Go or Rust for high-performance proxying, not required.
Contributions to open agent tooling or harnesses: a Pi extension, a Hermes skill, an OpenCode plugin, or anything in the open-models ecosystem we can look at.
Why Join Menlo
Jan is open-source, built in public, and already in the hands of millions. You will own a real product end to end, work shoulder to shoulder with a frontier research team, drive agents hard to ship at a pace a traditional team cannot match, and set the bar for how a lean, agent-native backend gets built. If you want to be in the arena shipping something that matters, this is the place.
A Note on AI
You don't need deep AI expertise for every role, but we do expect everyone at Menlo to be intellectually curious, drawn to tinkering and discovery, and excited to use AI as a real collaborator in their work. For some roles, AI fluency is a core requirement. When that's the case, we'll say so explicitly in the qualifications. People who thrive here don't treat AI as a novelty. They use it to think better, and make their work easier for others to build on.
Equal Opportunity and Accommodations
We hire talented people from a wide range of backgrounds. If you're excited about a role but don't meet every bullet, we still encourage you to apply. Menlo Research is an equal opportunity employer and does not discriminate on the basis of any legally protected characteristic. Menlo provides reasonable accommodations during the application process. If you need one, please let your recruiter know.