Backend · Workflow
Django Refund Management System
Refunds are not a single API call. They have policy gates, approval chains, audit requirements. This service models the workflow as a state machine and writes an immutable event on every transition.
Hi, I'm
Senior Software Engineer · Devsinc
Python backends. Data pipelines. ML & CV systems.
Six years building Python services that take real production load. Django and FastAPI on the request path. AWS Lambda and Postgres on the data side. PyTorch and YOLO when the problem is visual. Currently Senior SWE at Devsinc, leading backend on Kenya's national healthcare initiative.
Where I have worked
Six years building Python services that have to actually run in production. A Django service that talks to a payment provider one day. A Lambda pipeline ingesting product data into BigQuery the next. A YOLO model checking parts on a manufacturing line the day after.
Currently Senior SWE at Devsinc, leading backend architecture on Kenya's national healthcare initiative. Before that: Code District, Techesthete, and WiMetrix.
Clean schemas, real tests, a Dockerfile that another engineer can run on day one. The architecture decisions go in a doc, not a Slack message.
Backend services
Django, DRF, FastAPI
Data pipelines
Lambda, Postgres, BigQuery
ML & Computer Vision
PyTorch, YOLO, OpenCV
Event-driven
Pub/Sub, RabbitMQ, Celery
Solana backends
off-chain indexing
Observability
Logs, metrics, traces
Public reconstructions of professional projects I have built and run. Each repo ships with an ARCHITECTURE.md explaining the load-bearing decisions and the tradeoffs that came with them.
Backend · Workflow
Refunds are not a single API call. They have policy gates, approval chains, audit requirements. This service models the workflow as a state machine and writes an immutable event on every transition.
FastAPI · Solana
A marketplace that hits chain on every page load collapses under volume. The fix is an off-chain backend with Postgres as the read model, kept current by an indexer worker that follows on-chain events.
ETL · AWS Lambda
Silent upstream schema drift is the bug class that poisons warehouses. Pydantic v2 with extra=forbid at every boundary turns it into a hard fail before it reaches BigQuery.
Computer vision · QC
Most CV bugs are not model bugs. They are preprocessing drift between training and inference. The same YAML config drives both, so the model sees identical pixels in dev and prod.
Lahore, Pakistan · On-site
Devsinc
Lahore, Pakistan
Code District
Lahore, Pakistan · On-site
Techesthete
Lahore, Pakistan
WiMetrix · Industrial Data Intelligence
2020 — 2022
Master's degree, Computer Science
University of Engineering and Technology, Lahore
2015 — 2019
Bachelor of Science, Computer Sciences
Lahore Garrison University
Boundaries get explicit types. Pydantic with extra=forbid on inbound payloads. Strict SQLAlchemy or Postgres CHECK constraints on stored data. Silent drift is the most expensive bug class I have ever debugged.
Anything with a lifecycle (refunds, orders, indexer events, training runs) gets a state machine with explicit allowed transitions. The validator lives in the service layer, never implied by which endpoint was hit.
Anything that hits a downstream sink (warehouse, blockchain indexer, payment provider) uses a deterministic key plus an upsert. Re-running a job is safe by construction, not by luck.
Every service ships with structured logs, healthz, readyz, plus metrics that say something useful (rows in, rows rejected, latency p95). If the dashboard cannot tell me whether the service is healthy at 2am, the service is not done.
Every repo of mine has an ARCHITECTURE.md explaining the load-bearing decisions plus the tradeoffs that came with them. Code is the implementation. The doc is the contract with the next engineer.
Leading backend on Kenya's national healthcare initiative (HealthPro ERP / Tiberbu) at Devsinc. Migrating monolithic Django into FastAPI microservices.
Wiring event-driven systems with Google Pub/Sub plus the outbox pattern across education and healthcare projects.
PostgreSQL performance work: query plans, partitioning, connection pooling under increased national-scale load.
On the side: indexing patterns for high-throughput Solana data into Postgres.
Fastest path is email or LinkedIn DM with a couple of sentences on the system and the problem. I reply within a day on weekdays. Open to senior backend, data, or ML engineering roles, remote or Lahore-based.