Skip to content
View Emos21's full-sized avatar

Block or report Emos21

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Emos21/README.md

Portrait of Amos Mwangi drawn in code symbols, printed line by line

Amos Mwangi

Full-stack and AI engineer. I build web products and the AI systems behind them, and I care most about the part that has to be right: the API, the data model, the escalation path, and the deploy that puts them in front of users. Next.js and TypeScript on the front, Python (FastAPI, Django) and Go on PostgreSQL behind. Remote, from Nairobi.

What I am doing now

  • Building AI features that know their limits: retrieval-augmented answers on the Anthropic API, with a human-in-the-loop escalation path, so the model handles the routine and a person handles the rest.
  • Backend work on data-heavy platforms: ingestion pipelines, query paths that stay fast as tables grow past eight figures, and the migrations that get there without downtime.
  • Running my own small production systems end to end, including point-of-sale and marketplace software in daily use by Kenyan businesses.

Selected work

System What it does The hard part Stack
Companion A support assistant that answers routine questions and hands risky, clinical or uncertain ones to a human Safety-first routing: crisis and clinical messages reach a person without a model call; low-confidence answers escalate, and the staff reply returns to the member Next.js, TypeScript, FastAPI, Anthropic API, RAG
Arizona Sunshine Portal Public portal over Arizona campaign finance filings 12.6M records kept queryable and correct through repeated bulk ingests Django, PostgreSQL, React
ClearDD Financial due diligence, automated: builds the statements on the client's reported basis, computes EBITDA, working capital and trailing twelve months, flags anomalies and produces the workbook, deck and PDF that advisers deliver Tying the reported basis line for line, and carrying add-backs through to the deck without a number drifting Django, DRF, Celery, PostgreSQL, React
ProcureCrawl, at IntegralMASS Opportunity intelligence for Arizona investors: procurement contracts, commercial property, businesses for sale and economic data, aggregated, scored and delivered as reports Scheduled crawlers over sources that disagree with each other, and scoring an investment group will act on Python, Celery, Next.js
Extreme POS Point of sale running a Nairobi print shop: sell, invoices, purchases, stock reports, suppliers, debts, accounting, shift handover Twelve modules rebuilt from observation, then changed week to week against the live database the shop trades on PHP 8, SQLite, vanilla JS
Classy Carry POS Point of sale and stock control for a leather goods retailer M-Pesa STK push, offline-tolerant SQLite, staff role gating PHP 8, SQLite, M-Pesa Daraja

Lead developer on ProcureCrawl. Earlier product work: GoVerde Errands Marketplace (FastAPI, WebSocket chat, escrow payments, role-based access) and Tensor Marketplace (Django REST, Stripe webhooks, signed expiring file delivery).

Tools I wrote to think about systems rather than to ship features: chronos, boolean algebra over cron schedules, in Dart. subnetics, a CIDR buddy allocator with a live fragmentation treemap. MpesaGuard, exactly-once payment integrity for M-Pesa.

Stack

Stack, scrolling right to left: Python, Go, Django, FastAPI, PostgreSQL, Docker, PHP, TypeScript, React

Layer What I reach for
Languages Python, Go, TypeScript, PHP, SQL, Dart
Backend Django, Django REST Framework, FastAPI, Celery, REST and GraphQL
AI Anthropic API (Claude), RAG, human-in-the-loop escalation, output evaluation
Data PostgreSQL, Redis, MongoDB, SQLite
Infrastructure Docker, Linux, Nginx, GitHub Actions, VPS and cPanel deploys
Frontend React, Next.js, Vue, TypeScript, Tailwind

By the numbers

  • 12.6M records in one Django and PostgreSQL deployment, still serving reads in milliseconds.
  • 60% of request latency removed by moving the hottest endpoints to Go.
  • 3,820 contributions so far in 2026, 3,142 of them in private repositories.
  • 21 public repositories across Python, Go, Dart, PHP and TypeScript.

How I work

  • Tests before "done". A feature without a failing-then-passing test is a rumour.
  • Migrations are reversible, deploys are boring, and logs say what happened.
  • I would rather delete a service than add one.

Contact

Open to remote full-stack, AI, and platform engineering roles. Nairobi, UTC+3: the whole European working day, and US mornings.

The portrait is not a photograph. It is 60 columns of characters, generated from one by scripts/ascii.py, kept as text in assets/portrait.txt, and set in type by scripts/portrait_svg.py, which prints it a line at a time and holds a cursor at the end. It stops moving if your system asks for reduced motion.

Pinned Loading

  1. Cooperation-org/Az-Sunshine Cooperation-org/Az-Sunshine Public

    Python

  2. Gofundme_scrapper Gofundme_scrapper Public

    Python 1

  3. Mowasalat_Bus_Wash Mowasalat_Bus_Wash Public

    Python 1