AetherGrid, open-source distributed AI orchestrator

I build systems that keep running when machines fail.

Platform engineer with 8 years in distributed systems. I built AetherGrid, an open-source orchestrator that notices a dead worker and hands its job to a healthy node.

The orange frame marks the server that owns the job.

“Every hour an AI job stalls, you pay for machines that do nothing. I built AetherGrid to stop that.”

“One failed job used to mean a missed deadline and a wasted bill. Now the system handles it.”

Why AetherGrid

AI jobs run for a long time on expensive machines, and machines fail. A job that stalls, runs twice or leaves processes behind wastes GPU hours and delays everything waiting on it. AetherGrid makes the system responsible for those failures, so nobody has to catch them by hand.

Less wasted compute

Jobs are matched to nodes on CPU, memory and VRAM together, and a job that finishes, times out or is cancelled leaves nothing running behind it.

No duplicated or lost work

Each job has one owner, enforced by a lease. If the owner disappears, the job returns to a healthy worker without a person stepping in.

Clear to operate

A dashboard shows nodes, jobs, the event history of each job and a live cluster event feed, so an operator can see what happened and why.

One platform for many customers

Tenant isolation is enforced in the application and in the database, and the tenant is taken from the credential, never from the request.

Upgrades you can trust

Each release is rehearsed against a database from the release before it, so an upgrade is something you have already watched work.

Yours to run and inspect

Open source under the MIT licence and started with Docker Compose. Every route needs an API key, and the reasoning behind each design choice is public in the decision records.

“Machines break every week. With AetherGrid, your customers never find out.”

Built for the day something breaks

Machines fail, processes linger and releases get rolled out. AetherGrid is designed around those moments.

A worker disappears

Its lease runs out, reconciliation finds the abandoned job, and the job goes back to a healthy worker.

Two workers want the same job

Only the worker holding the lease may act on it, and a worker that loses its lease stops acting as the owner.

A job leaves processes behind

When a job ends, times out or is cancelled, its whole process tree is stopped, not only the first process.

The scheduler runs in two places

The cluster tick runs in one process at a time, so two schedulers never place the same work.

Customers share one database

Tenant isolation is enforced in the application and in the database, so a worker, a job or a lease cannot be tied to another tenant’s records.

You upgrade to a new release

Each release is rehearsed on a database from the one before it: migrate, compare every table and the schema, then start the new API and read the data back.

“Not technical? Skip ahead. This is the engineering that stops small failures becoming outages.”

Technical depth

The guarantees above rest on specific engineering decisions. Each one is written down in a decision record with the reason it was made.

Lease fencing

Release, renewal and outcome reports are fenced by lease identity, not only by worker identity, so a stale worker cannot change a job it no longer owns.

Reconciliation

Bounded-retry reconciliation reclaims work from dead workers, expired leases and offline nodes through one shared reclaim operation.

One scheduler at a time

Scheduler leadership is elected with a PostgreSQL advisory lock, so two scheduler processes never place the same work.

Process supervision

Job commands start under a supervisor that stops the whole process group when the owner dies. Timeouts end with SIGTERM, then SIGKILL.

Tenant boundary in the database

On PostgreSQL, composite keys tie workers and leases to their tenant, and the migration stops with a count if any row crosses tenants or has none.

Layers that are enforced

Domain, Application, Infrastructure and Presentation stay separate, with a test that fails if an import crosses a layer boundary.

“Don’t take my word for it. The code, releases and a live demo are all public.”

Every claim has a link

The code, the release history and the reasoning behind each design choice are public. Read them, run them, or try the dashboard.

“Proven, mainstream tools, so your team can hire for them and maintain them.”

Technical stack

Languages

  • Python
  • Go
  • TypeScript
  • JavaScript
  • SQL

Backend

  • FastAPI
  • REST API design
  • Async Python
  • Pydantic
  • PostgreSQL
  • Node.js

Distributed systems

  • Scheduling
  • Leases
  • Reconciliation
  • Concurrency
  • Retries with backoff and jitter
  • Circuit breakers
  • Idempotency
  • Worker heartbeats
  • Kafka

Cloud and DevOps

  • AWS
  • ECS
  • Kubernetes
  • Terraform
  • Docker
  • GitHub Actions
  • CI/CD

Security

  • API key authentication
  • Scoped authorization
  • Tenant isolation
  • Container hardening

Frontend

  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Playwright

Design and testing

  • Clean Architecture
  • DDD
  • ADRs
  • TDD
  • pytest
  • Contract testing
  • Integration testing
  • End-to-end testing

“Eight years keeping critical systems running. I treat your uptime like my reputation.”

Wycliffe Kipleting Rotich

Platform engineer focused on distributed systems. Based in Nairobi, open to remote roles and available to start immediately.

8 yearsbuilding backend and distributed systems in production
29 s to 0.124 sworst-case latency on an unrelated endpoint during a database outage, measured on AetherGrid

Platform engineer with 8 years building backend and distributed systems on cloud platforms, focused on concurrency, race-condition debugging, execution ownership and failure recovery. Creator and maintainer of AetherGrid, an open-source distributed AI workload orchestrator covering scheduling, lease-based execution ownership, reconciliation, scoped API keys, hardened containers and tenant-scoped data access. Previously at Toyota and the Kenya Revenue Authority, working on systems that handle vehicle telemetry and national-scale financial data.

Experience

Founder and Platform Engineer, AetherGrid

Jan 2026 to present, Nairobi

Designed and built AetherGrid end to end with Python, FastAPI, PostgreSQL, React, TypeScript, Docker Compose and GitHub Actions. A best-fit scheduler across CPU, memory and VRAM, time-bound leases, and reconciliation that reclaims work from dead workers, expired leases and offline nodes. Race conditions closed by fencing on lease identity, a subprocess engine with enforced timeouts and cancellation, key authentication on every route, hardened containers, and tenant scoping where the tenant comes from the credential, never the request.

LLM Technical Trainer, Mercor

Aug 2025 to Oct 2026, remote

Evaluated LLM-generated code for correctness, architecture, concurrency and API behavior, and wrote technical feedback that improves model reasoning and code quality.

AI Data Specialist, Atlas Capture

Dec 2024 to May 2025

Annotated and reviewed video datasets for machine-learning workflows, and resolved inconsistent or ambiguous annotations in QA reviews.

Software Engineer, Cloud Platforms, Toyota

Jan 2024 to Nov 2024, Nairobi

Fixed race conditions in Kafka-based ingestion pipelines for vehicle and telematics event data, and deployed containerized workloads on Kubernetes and ECS across AWS, with infrastructure provisioned in Terraform.

Backend Cloud Engineer, Kenya Revenue Authority

Nov 2018 to Oct 2023, Nairobi

Worked on production revenue systems handling real financial data at national scale, and traced race conditions across application logic, shared state and database interactions.

Education

MSc Computer Science

USIU-Africa, part-time

Jan 2022 to Dec 2024

BEng Computer Software Engineering

The Technical University of Kenya

Aug 2014 to Nov 2018

“Downtime or wasted compute costing you? Let’s talk. I read every message.”

Need an engineer who plans for failure?

Tell me about the role or the project. I read every message.