KTM · --:--
Available · selective · Q3 2026Nine years in productionKathmandu · --:--

ErinRai.

Senior software engineer shipping production systems — ledgers, bookings, AI agents, editors. Pulled between distributed systems and the texture of a single hover state.

NowSenior SWE · Ottr TechnologyBuildingOmni-Ledger · Kiln · AI-WORKER
Act II00:00 / 12:00

II

Meet the engineer.

Nine years in production. One name on the commits.

§ 01 — About

The engineer

I write software that ships and stays in production — ledgers, bookings, agents, editors. Nine years in, mostly across the seam between AI/ML and product engineering.

I lead architecture end-to-end — from gRPC service meshes and Temporal-orchestrated job graphs to React canvases and Flutter clients. I care equally about distributed systems and the texture of a hover state.

Currently building decentralised social, AI filmmaking platforms, and universal commerce at Ottr Technology.

0+Repos shipped
0Years of practice
0Languages in production
0Case studies written
Act III00:48 / 12:00

III

Cut to: the work.

Six systems — of forty-odd repos.

§ 02 — Selected work

Things I've built

Featured · most recent
01

Ottr Omni-Ledger

NestJS · Go gRPCElectron · Flutter7 Payment Providers2026

One platform for a business that sells through a web store, a shop counter and a restaurant floor at once. Append-only inventory ledger with reserve and release semantics, a Go gRPC payment service for Stripe, eSewa, Khalti, Fonepay, ConnectIPS, PayPal and Razorpay, an offline-first Electron POS with thermal printing, and Docker Compose profiles so a client runs only what they bought. Nine apps, eight services, five languages, 774 commits.

9Apps · one monorepo
7PSPs · behind one interface
2026
02

Rust · tokio · axum6 crates · 41k linesMCP server2026

Takes a project from requirements to merged PRs. A phase state machine with a human gate at every step, parallel workers in their own git worktrees, a reviewer agent before every PR, and a constraint ledger that scores each explicit requirement pass or fail. Models are pluggable per role: Claude CLI, Aider, or local Ollama through a custom tool loop. Four real projects built end to end as test runs.

11Agent roles · routable
41kLines of Rust
2026
03

NestJS · ApolloDrizzle · Postgres49 Templates2026

Pick a template, provision a tenant. One Postgres schema per tenant resolved from the domain and set as search_path on a request-scoped client. A schema builder that drives GraphQL, REST, per-tenant docs and a generated SDK; a page builder with Yjs collaboration; a worker with thirteen job types from backups to audit anomaly detection; envelope encryption and Stripe and eSewa checkout.

49Vertical templates
13Worker job types
2026
04

Temporal.ioNestJS · Next.jsVeo 3 · Sora 2 · Seedance2024 — 26

A production tool for making animated shows with generative models. I built the Temporal.io job runner that orchestrates 22 job types across video generation, Blender rendering, upscaling and assembly with hybrid RunPod and local GPU routing, and have been a top-three contributor on the Next.js client and NestJS API for two years: Seedance prompt tiers, the cast-reference resolver, the new home surface.

22Temporal job types
5Video models · fallback
2024 — 26
05

Koa · Prisma · KyselyAmadeus SOAP · NDCConnectIPS · Khalti2023 — 26

Flights sold online in Nepal, straight against Amadeus web services with no reseller in between. The classic SOAP flow by hand from MasterPricer search to ticket issue, the NDC channel alongside it, a rules engine for commissions and taxes, ConnectIPS with RSA signing, and BullMQ workers that render tickets to PDF and email them. Three years as lead backend, live and issuing real tickets.

SOAPAmadeus GDS · PNR + ticketing
NDCOrders · deduped vs GDS
2023 — 26
06

Go · NostrPostgreSQL · RabbitMQReact · Tauri2026

A social network where posts are signed events on relays, so users own their identity. On a team of eight I worked across the Go API (event publishing, follower sync, mutes), the law-enforcement portal, the Blossom media server (resumable uploads, HLS transcoding, blurhash) and the Prometheus, Loki and Grafana stack for production and test.

6Repos · API to clients
HLSMedia · resumable uploads
2026

↳ Seventeen case studies on the main site06 / 40+

§ 03 — Toolkit

The stack

Languages07

TypeScriptGoPythonDartJavaScriptSQLBash

Frameworks09

Next.jsNestJSFastAPIFlutterReact NativeGin / GORMFastifyKoaStrapi

Frontend09

ReactThree.jsBabylon.jsGSAPFramer MotionZustandRedux ToolkitTanStack QueryStorybook

AI / ML11

OpenAI GPT-4/5Veo 3ClaudeGeminiLangChainComfyUIFLUXCLIPOpenCVONNXpgvector RAG

Data11

PostgreSQLPostGISpgvectorMongoDBAurora MySQLRedisMeiliSearchFirebasePrismaDrizzleTypeORM

Infra09

DockerAWS LambdaTemporal.ioBullMQRabbitMQNATS JetStreamMinIOTurborepoNginx / HAProxy

Observability05

PrometheusGrafanaLoki · PromtailSentryOpenTelemetry

Payments & Auth09

StripeeSewaKhaltiConnect IPSFonepayAuth0OAuth 2JWTRBAC
§ 04 — Career

A long line

2019 — Present

Senior Software Engineer

Ottr Technology
  • Built Ottr Omni-Ledger: commerce, POS and inventory across nine apps and eight services in five languages.
  • Designed Ottr Kiln, a schema-per-tenant headless CMS with GraphQL, REST, a generated SDK and 49 templates.
  • Lead backend for Sincere Travels (Amadeus GDS and NDC); Baccpacc built in 2021 and rebuilt in Go and Flutter in 2026.
  • Built the Yantra and E-Credit Flutter apps; co-led LendHub lending portals for a UK client.
2023 — Nov 2026

Senior Software Engineer

Whitehat Engineering
  • Main author of the ACT3 Temporal.io job runner; top-three contributor on the filmmaking platform for two years.
  • JFK Social on Nostr: Go API event sync, law-enforcement portal, Blossom media server, monitoring stack.
  • Observability as standard — Prometheus, Grafana, Loki, Sentry, OpenTelemetry — on every project.
2019 — 2020

Assistant Lecturer

Islington College
  • Taught OOP and data structures. 100% pass rate; no student below 50%.
  • Built workshop content on emerging web practices and helped evolve the curriculum.
2018 — 2019

Full Stack Engineer

Featherwebs
  • Defined scope and scale of multiple parallel projects across NodeJS, React, RN and Flutter.
  • Supervised a team of interns and ran code reviews on every feature shipped.
2017 — 2018

Intern

Featherwebs
  • Contributed to a cross-platform React Native rental application (Gharbeti Baa) for Android and iOS.
§ 05 — Learning

School & certs

BSc (Hons) Computing
Islington College · London Metropolitan University · 2015 — 2018
Upper-First Class Honours

Final-year project — Agriculture Product Market Price Prediction: a feed-forward neural network built from scratch reaching >80% accuracy, paired with a React Native client and a Flask/Python service that scraped daily prices.

2021AWS Cloud Technical EssentialsCoursera
2020Deep Learning SpecialisationCoursera
2020TensorFlow: Data & DeploymentCoursera
2020TensorFlow in PracticeCoursera
2020Machine LearningStanford
2020Maths for ML: Linear AlgebraImperial
2020Sequence Modelsdeeplearning.ai
Act VII09:21 / 12:00

VII

Off the clock.

A guitar. A futsal court. Two other studios.

§ 06 — Off the clock

Two other studios

A guitar teaches me phrasing — when to lean in, when to leave space. A futsal court teaches me close control — five moving parts, one touch off.

Side A / Music
Side B / Football

ToolProgressive · 9/8
Now spinning · Side A · 33⅓
Lateralus
Tool · Progressive · 9/8
02:14
05:48
01
Metal.
Pantera · Tool · Mastodon · Gojira · Opeth
02
Progressive rock
Pink Floyd · Rush · Porcupine Tree · King Crimson
03
Blues.
B.B. King · SRV · John Lee Hooker · Buddy Guy
04
Jazz.
Miles · Coltrane · Bill Evans · Chet Baker

The court.

Futsal · five-a-side
Erin · all-round outfield · never in goal

1
Casillas
GK
4
Ramos
FIXO
10
Modric
ALA
8
Kroos
ALA
13
Erin
PIVÔ
Tactical philosophy
1-2-1
Diamond · Balanced · classic

Futsal is a small room with five moving parts. Rotation is non-negotiable — I cover the diamond top to bottom, take touches in tight pockets, and chase the ball-side trigger on the press. Never been a goalkeeper, never wanted to be.

Pick a shape
My positionsFixo · Ala · Pivô · anywhere
Build-upQuick rotation · 4-second rule
PressBall-side trigger · trap the line
Transition2 seconds to recover
Act VIII11:42 / 12:00

VIII

Roll credits.

If any of this is useful — let's talk.

§ 07 — Contact

Let's talk.

Location

Kathmandu, Nepal
UTC+05:45