rahul.dev
02 — SYSTEMS

Things I've built

Four systems, each with its own failure mode. The diagrams show how data actually moves.

01

ShadowDB

Traffic-forking proxy for risk-free schema migration

ShadowDB architecture Live production traffic enters a Netty proxy, which forwards it to the production database and simultaneously forks a copy to a shadow database. Both feed metrics into Prometheus and Grafana for comparison. Live trafficproduction clients Netty proxyasync non-blocking intercept & fork Production DBPostgreSQL Shadow DBnew schema under test Prometheus+ Grafana compare real path forked copy

A Netty-based middleware proxy that duplicates live production traffic to shadow test databases, so schema migrations and chaos testing can be rehearsed against real query patterns without touching production.

  • 3ms average latency overhead at 50K+ requests/sec, using Netty's asynchronous non-blocking I/O for interception and forking.
  • Real-time Prometheus and Grafana dashboards comparing production against shadow query performance, surfacing 12+ regressions before they reached production.
  • Java
  • Netty
  • Kafka
  • PostgreSQL
  • MongoDB
  • Prometheus
  • Grafana
02

FinSight Agent

AML / OFAC compliance agent with audit-ready output

FinSight Agent architecture A transaction stream enters a LangGraph orchestrator that loops between reasoning steps and tool calls against sanctions and pattern checks, then emits a structuring verdict and an audit report. TransactionsFastAPI ingest LangGraphorchestrator reason ⇄ tool-call ToolsOFAC list · BSA patterns Structuringverdict + evidence Audit report94% precision multi-step loop for compliance officers

An AML/OFAC compliance agent that detects Bank Secrecy Act structuring patterns — deposits deliberately kept under reporting thresholds — and produces reports a compliance officer can actually file.

  • 94% precision on suspicious-transaction detection, by orchestrating multi-step LLM reasoning and tool-calling through LangGraph rather than a single prompt.
  • Every verdict carries its evidence chain, so the output is auditable instead of a bare score.
  • Python
  • LangGraph
  • AWS Bedrock
  • FastAPI
03

Text2Workflow

Plain English into validated swimlane blueprints

Text2Workflow architecture A plain-text process description is parsed, checked by a deterministic grammar validator, and emitted as an exportable swimlane blueprint. Ambiguities send the description back to be recompiled rather than patched. Plain text"first the analyst…" Parserintent & actors Validatordeterministic grammar Swimlane blueprintexportable ambiguous? recompile, don't patch

A natural-language workflow engine that turns plain-text process descriptions into validated, exportable swimlane blueprints — aimed at business analysts who know the process but not the tooling.

  • Cut workflow design turnaround from hours to under 5 minutes by removing manual Step Functions configuration entirely.
  • Ambiguous descriptions are recompiled from a clarified source rather than hand-patched, so the blueprint always matches the text that produced it.
  • JavaScript
  • NLP
  • Workflow engines
04

Distributed Graph Analysis

PageRank at scale on Spark and EMR

Distributed graph analysis architecture Graph data in S3 is partitioned across an EMR Spark cluster, iterated through PageRank rounds with tuned shuffle behaviour, and written back as converged ranks. Graph dataAWS S3 EMR · Spark partition 01 partition 02 partition n PageRankiterate to converge tuned shuffle Ranked nodeslinear scalability re-partition each round

PageRank implemented over large synthetic web graphs, built to evaluate distributed graph-processing frameworks for research teams rather than to serve traffic.

  • Achieved linear scalability across node counts by tuning Spark partition strategy and shuffle behaviour on EMR clusters.
  • Shuffle cost, not compute, turned out to be the binding constraint — the partitioning work is where the speedup lives.
  • Apache Spark
  • AWS EMR
  • S3