Lemon.io

Senior Software Engineer (Inference / Compute Infrastructure)

#63877599044

Back-end Web Developer, Senior

Basic info

Involvement40h/week
Project typeFull-time
Durationlong-term (contract/contract-to-hire)
Start datewithin 1 week
Client time zone(GMT -7:00) Mountain Time (US & Canada)
Overlap3-4 hours preferred, but not a must-have

Skills

Must-have:

Golang
Kubernetes
AI-assisted coding

Nice to have:

Temporal
Cadence
Bare metal provisioning
GPU
Kafka

Nice to have experience with/in:

AI

Required soft skills:

Communication
Collaboration

Note from a customer

Looking for engineers who:

  • love building products and systems
  • enjoy solving hard technical problems
  • naturally think about architecture
  • create solutions instead of waiting for instructions

Project description

Client's goal:

Support existing product / speed up development

We're looking for a Software Engineer to build the systems that treat infrastructure as software. This role owns the software state machines that provision hardware, bring it into service, and manage its full lifecycle — turning racks of GPUs into running inference clusters without a human touching a runbook. The Research and Inference team is your customer: today they file tickets and wait; the target state is that they issue a single API call to stand up, scale, or tear down a cluster, and the system takes care of the rest. The platform is manifest-driven such that teams declare the desired state of a cluster or host — shape, topology, software stack — and the system is responsible for reconciling reality to that manifest, continuously, through every stage of its lifecycle. You will design the engines that manifest the schema, the engines that execute against it, and the workflows that carry a piece of hardware or a cluster from one state to the next—taking it from bare metal to a fully functioning AI cluster for training or inference.

You'll write production code which is typed, tested, versioned, and deployed through CI/CD that models infrastructure state and reconciles it, the same way a Kubernetes controller reconciles a cluster's desired state. Success looks like eliminating manual provisioning work, not documenting it better.

A product mindset - you've built internal platforms or APIs consumed by other engineering teams and care about the developer experience of what you ship.You build it, you own it. You are not only responsible for delivering the software but also for operating and supporting it in production.

Responsibilities

  • Build the provisioning state machine: design and implement the software that models the full lifecycle of a physical host from discovery, inference bring-up to GPU driver/CUDA stack, health validation, and decommission/RMA — as explicit, versioned states and transitions.
  • Build inference-ready Kubernetes clusters, custom control planes, and scheduling/orchestration workflows for inference workloads (training, tuning, engine, serving).
  • Build the self-service API: design declarative APIs and a control plane so the inference team can request, scale, and tear down inference clusters with one API call — no ticket, no human in the loop.
  • Automate self-healing: detect degraded or failed nodes, drain them safely, trigger repair or replacement, and reintroduce healthy capacity into the pool automatically.
  • Own reliability of the pipeline: idempotency, retries, rollback, and drift detection so the provisioning system is as dependable as any other production service.
  • Partner with the inference/ML platform team: understand the cluster shapes they need — topology, interconnect, scheduling constraints — and encode them as first-class abstractions in the platform.
  • Engineer it like software: strong typing, automated tests, code review, versioning, and CI/CD for infrastructure code — this is a product, not a collection of Ansible playbooks.

Requirements

Core requirements (all levels):

  • Strong software engineering background in Go — you write and test real software for a living.
  • Strong Kubernetes experience.
  • A product mindset. You’ve built internal platforms or APIs consumed by other engineering teams and care about the developer experience of what you ship. Demonstrated experience building and deploying production-ready code for substantial initiatives (6+ months per project) rather than interrupt-driven support roles.

Preferred skills:

Hands-on experience in Go building either:

  • Durable workflow orchestration (Temporal): long-lived, manifest-driven workflows that survive failures and resume mid-execution.
  • Software control planes: Kubernetes controllers/operators.

Nice To Have

  • Experience with event-driven systems — designing and building software around message queues, event streams, or pub/sub (e.g., Kafka, NATS, SQS) rather than polling or cron-driven scripts.
  • Exposure to bare-metal provisioning (PXE/iPXE, Redfish/IPMI, BMC) and/or networking fundamentals (VLANs, BGP, fabric design), or GPU/accelerator infrastructure.
  • Experience with GPU cluster software stacks (NCCL, CUDA, InfiniBand/RoCE).
  • Prior work at a hyperscaler, GPU cloud, or datacenter-scale infrastructure organization.
  • Systems programming in Rust or Go.

About the Company: This is a research-driven artificial intelligence company. We believe open and transparent AI systems will drive innovation and create the best outcomes for society, and together we are on a mission to significantly lower the cost of modern AI systems by co-designing software, hardware, algorithms, and models. We have contributed to leading open-source research, models, and datasets to advance the frontier of AI, and our team has been behind technological advancement such as FlashAttention, Hyena, FlexGen, and RedPajama. We invite you to join a passionate group of researchers and engineers in our journey in building the next generation AI infrastructure.

Client selection process

  • Coding interview;
  • System design interview.

Team and communication

  • Team: a growing team of around 8–9 engineers focused on inference-cluster infrastructure. The team works closely with GPU systems and machine-learning workloads, so there’s a lot of deep technical knowledge to gain. It’s a fast-moving, internationally distributed environment where proactive engineers can contribute early, learn from strong senior teammates, and gradually take ownership of larger infrastructure initiatives.
  • Communication: Slack, video calls, direct collaboration with principal engineers and team leads.

Team size

10+

Selection process

  1. Send your application and availability.
  2. Complete your profile and verify your Back-end Web Developer role. Existing verification is reused.
  3. We review whether you’re a fit for this project and decide on the next step.
  4. If you’re selected, we send your profile to the client for review.

Your progress stays with you, even if this project closes.

Looks like a fit?

Hit apply and we’ll guide you through the next steps.

Already have an account?