9 projects
Ordered by how much of me is in them rather than by date. Each one gets the architecture, my role, the stack, and the numbers, because a list of repository names tells you nothing about whether someone can build.
A hiring marketplace for salons and beauty artists, live on Google Play.
Salongraphy is a two-sided hiring platform: artists build a portfolio and apply for work, salons post jobs and hire. I built the whole thing: the Express API, the Postgres schema, the Flutter app on the Play Store, the server-rendered marketing and discovery site, and the internal admin console. I run it in production.
The interesting part is not any one screen, it is that four codebases share one API contract without drifting. The admin console is a backend-for-frontend: the browser never sees a token, every call is same-origin through Next route handlers, and a single refresh-and-retry hop handles token rotation so an expired access token never reaches the user as an error.
Google Summer of Code 2026. Two merged PRs bringing gRPC codegen to Fory's IDL compiler for Dart and Swift.
Apache Fory is a multi-language serialization framework. Its IDL compiler could already emit model types for eleven languages, but gRPC service generation was landing language by language. I owned Dart and Swift: a Fory IDL service definition now produces an idiomatic client and server in both, across all four gRPC shapes and all three schema frontends.
Both PRs are merged into apache/main and shipping. Along the way I found and fixed a runtime divergence in Fory's Swift implementation: under reference tracking, Swift wrote a different reference flag for value-type structs than Java, Rust and C++ did, so Java could not read Swift-produced bytes. Swift now follows the same convention as the other runtimes.
National winner, Smart India Hackathon 2025. A DPDK-accelerated NGFW with IDS/IPS, ML threat detection and automated SOAR response.
Vajra is two systems that talk to each other. The detection engine is a C++ and Python pipeline that captures traffic through DPDK kernel bypass, inspects it, scores it with ML models, and responds by pushing firewall rules. The command center is a Flutter desktop app that launches the engine, subscribes to its live event stream over WebSocket, and renders threats and flows in real time.
The engine runs headless; the app is the operator's window into it. Team Sudarshana built it for Smart India Hackathon 2025 and won at the national level against a field of more than 50,000 participants.
A Kubernetes operator that suspends stateful Apache Flink jobs when the grid turns dirty, and resumes them without losing a record.
Carbon-aware scaling is easy for batch and stateless workloads, which is where most tooling points. Stream processors are the awkward case: stop one carelessly and you throw away in-flight windowed state and break exactly-once processing. GreenOps handles that case. It watches grid carbon intensity, and when the grid turns dirty it suspends the Flink job, but only after its state has been safely captured to a savepoint.
The rule the whole system is built around: a job is never suspended unless its state is safely captured first. A failed or timed-out savepoint aborts the suspension and leaves the cluster running. Suspension goes through the FlinkDeployment rather than scaling the Deployment directly, because the Flink operator owns that Deployment and will undo any replica change made behind its back.
A Slack bot that brings OpenMetadata into the channels where data teams already live.
Instead of switching to a separate UI to ask whether a table is healthy, where its data comes from, or who owns it, your team types `/datapulse` and gets a Block Kit answer in seconds. It also works in the background: polling OpenMetadata every fifteen minutes for newly-failing quality tests, and posting a 9am digest with the tables that need attention and an overall platform health score.
An ML-backed clinical prediction service with a Flutter client and an admin review console.
A trained prediction model exposed through a Python inference API, wrapped by a Node backend that handles auth, roles and report storage, and consumed by a Flutter app. Clinicians submit a case, get a prediction and a stored report; an admin surface reviews what the model has been asked and what it answered.
A bidding marketplace connecting customers with builders, backed by a migration-managed Postgres API.
Customers post orders, builders bid on them, and the platform manages the lifecycle between the two. The backend is a properly structured Express service: versioned migrations, request validation middleware, rate limiting, refresh-token auth and email OTP, with a Flutter client on top and CI on every push.
Automated emergency-room triage from vital signs.
ER triage is time-consuming during peak hours, inconsistent under human error, and prone to delay when staff are short, a failure mode the COVID-19 surge made obvious. VitalSense classifies incoming patients as severe or non-severe from real-time physiological data so the critical ones are seen first.
A gRPC service in Dart demonstrating unary and server-streaming RPCs over Protocol Buffers.
Save, fetch, list and delete code snippets over gRPC. Small by design: it was the groundwork for the Dart gRPC codegen that became my Google Summer of Code project at Apache Fory, and it is where the shape of an idiomatic generated Dart client got worked out by hand first.
Several of these live in private repositories. I am happy to walk through the code, the schema, or the decisions behind any of them, including the ones I would make differently now.