Build and maintain C#/.NET backend services, APIs, and integrations for document automation, while owning new integration work and contributing to scalable architecture and engineering practices.
Backend Engineer
📜 Description
- Build an OpenAI-compatible gateway connecting hosted, self-hosted, and open-source model providers.
- Implement provider routing, load balancing, failover, and cost- and latency-aware decisions.
- Develop accurate token accounting, usage ledgers, cost attribution, budgets, and spend limits.
- Deliver organization controls including API key management, quotas, rate limiting, and RBAC.
- Optimize proxying, streaming, connection handling, and caching.
- Integrate Jan Agent model and tool traffic with gateway routing, metering, controls, and observability.
🛠️ Requirements
- 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.
Full job description
About Jan
Jan is an open source AI assistant built by Menlo. It began as a private, offline alternative to ChatGPT and has grown into a general purpose agent that runs open models locally on your own hardware, or connects to frontier models like GPT, Claude, and Gemini when you want them. Give Jan a task and it works on its own until the job is done. Built in public around one belief: AI should be open, private, and answer only to you.
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.
Similar jobs
Search more Backend Engineer jobsAs a Backend Developer, you'll tackle ambiguous problems, implement innovative features, and own the technical design while maintaining high code quality standards.
Pessoa Desenvolvedora Java Pleno (Híbrido/BH)
Desenvolve e mantém sistemas Java distribuídos, com foco em microsserviços, alta disponibilidade, escalabilidade e segurança, além de contribuir para melhorias contínuas, documentação e mentoria de outros desenvolvedores.
Build foundational infrastructure, APIs, and orchestration layers that connect Lyft with emerging AI ecosystems and devices, enabling third-party agents and multimodal interfaces to interact with Lyft.
Develop and maintain backend services for the Finance engineering team, improving transactional accounting, invoicing, and reporting through scalable solutions, reliable financial flows, and close collaboration across teams.
