Founding Software Engineer

Rishikesh S.

I'm a software engineer who owns products end to end — the schema, the interface, and everything that has to work between them. Founding engineer at Mando today. Before that, two years on real-time trading systems, where being slow was the same as being wrong.

Next.js FastAPI PostgreSQL Go Terraform
nowFounding Engineer @ Mando
beforeQuantitative Brokers · IIT Madras
basedChennai, India · IST
Open to a good problem
01 / About

How I got here

I studied Chemical Engineering at IIT Madras, which taught me to think in systems, flows and balances long before I thought in APIs. Somewhere between a process simulation assignment and a hostel-room Android app, software won.

What I like is the part most teams hand off. A booking slot that is wrong by an hour, a webhook that fires twice, a query that is fine until the 95th percentile — those bugs live between layers, and the only reliable way to kill them is to own both sides. Trading systems taught me the other half: a latency budget makes you honest, because either the number moved or it didn't.

Outside work I write small tools I actually want to use: leak, a terminal subscription manager in Go; deadfall, an npm CLI that finds React components nothing renders; a weather CLI that draws animated ASCII scenes. I follow cricket closely enough that building an NRR and playoff-scenario engine for the IPL felt like a reasonable way to spend a weekend.

02 / Experience

Where I’ve worked

Same habit in every one of them: take the thing end to end, and leave a number behind.

Sep 2024 - Present / Remote

Founding Software Engineer

Mando

First engineer. Five product surfaces from first commit in under two years, on a stack I chose and still run.

Next.jsFastAPIPostgreSQLTerraformStripeAzure Communication ServicesChrome ExtensionsLLMs
  • Built the natural language search and conversational AI layer over Workday's knowledge base — retrieval, ranking and cited answer generation — so enterprise users get an answer instead of a list of documents
  • Shipped the entire expert-session path alone: time-zone-correct booking, live video on Azure Communication Services, in-call controls, recording, and a browser-based editor for trimming and annotating the footage afterwards
  • Built the service management platform underneath it — ticket intake, routing, expert assignment, resolution — plus a Chrome extension that records a workflow once and writes the step-by-step documentation from it
  • Made the product buyable: Stripe subscriptions, checkout, invoicing and webhook-driven entitlement, which turned a demo into the company's first paid tier
  • Run the whole stack myself — Next.js and Tailwind on the front, FastAPI and PostgreSQL behind it, Terraform for every environment — with no handoffs between layers to lose things in
Jul 2022 - Sep 2024 / Chennai, India

Software Engineer

Quantitative Brokers

Real-time trading systems for a quantitative execution firm — order monitoring, risk control and order entry, where every millisecond is somebody's money.

AngularNode.js.NETPostgreSQLReal-time Systems
  • Designed an order monitoring system handling 200 messages/sec of 800-1000 bytes from multiple upstream sources
  • Cut application load time from ~40 seconds to under 1 second by moving data loading server-side
  • Reduced latency by 20% and CPU usage by 50% on the critical path of the order entry application
  • Implemented DV01-based risk calculations for CASH instruments, improving cash stream revenue by 5%
  • Built real-time aggregation and dynamic market data ladders for desk analysts
May 2021 - Jul 2021 / Chennai, India

Software Development Intern

Quantitative Brokers

Prototypes for desktop interop and market data visualisation that went on to ship.

AngularOpenFinkdb+Highcharts
  • Built a desktop integration prototype with OpenFin, sharing context across four separate applications
  • Developed an Angular app plotting financial curves from a live kdb+ database using Highcharts
Feb 2021 - May 2021 / Remote

Android App Developer

Prescribe

A healthcare app for patient intake and feedback.

AndroidFirebaseJavaMobile
  • Built an Android app for collecting patient details and surfacing the feedback collected
  • Used Firebase for API endpoints and a custom notification system
  • Instrumented the app to analyse user interaction at each step
May 2020 - Jul 2020 / Remote

Software Development Intern

Workfence Technologies

Workplace safety and attendance tooling during the pandemic.

AndroidMobileGeofencingUI/UX
  • Built a social-distancing mobile app paired with a hardware distance-measuring solution
  • Built a geofencing-based attendance system and a visualisation interface that scales from 1,000 to 100,000 users
03 / Projects

Things I’ve built

Mostly tools I wanted to exist and couldn’t find. Three of them you can install right now, in one command.

JumpKey — Command Palette for URLs

2026 · Chrome extension

Type `pr 1421`. Land on the pull request.

Half the URLs anyone opens in a day are one template with one thing changed. JumpKey makes each template a keyword you type: `pr 1421` opens pull request 1421 on the repo you live in, `jira ENG 482` opens ENG-482, `dash october 2026` opens the dashboard filtered to that month, `yt sourdough starter` runs the search. Launcher or address bar, no bookmark to hunt for. Commands live in your own browser storage, exportable and importable as JSON.

The interesting part

The engine is browser-independent: template parsing, invocation parsing, matching and validation sit in `src/core/` with no `chrome` import anywhere — a rule ESLint enforces — so the same code runs under the omnibox, the popup and the tests.

  • ⌘⇧K launcher, or `jk` in the address bar
  • `jira ENG 482` → /browse/ENG-482 — args fill in order
  • path args keep `/`, query and hash args encoded
  • commands stay in chrome.storage.local — no server
TypeScriptReactChrome ExtensionsVite

mailcleaner — Mailbox Observability

2026 · released

See who fills your inbox. Act in bulk, safely.

A local dashboard that builds a metadata-only SQLite index of a mailbox, shows which senders and lists are actually filling it, and lets you archive, trash or label in bulk. Works with Gmail, Outlook, Proton via Bridge, Fastmail, iCloud and any IMAP server, with as many accounts side by side as you like. Terminal UI and a browser UI over the same index.

The interesting part

The safety model is the product. Trash means the provider's own Trash — never `EXPUNGE`, never `\Deleted` — and where a server lacks IMAP `MOVE`, archive and trash are refused rather than emulated with copy-then-delete, because that is a delete.

  • headers only — no bodies, no attachments
  • no permanent delete anywhere in the code
  • every bulk action previews a sample first
  • one index, one credential, one history per account
$ curl -fsSL https://raw.githubusercontent.com/RishikeshSreekumar/gmail_cleaner/main/install.sh | sh
PythonTextualSQLiteIMAPOAuth

leak — Terminal Subscription Manager

2025 · released

Mark. Sweep. Save.

Subscriptions are the financial equivalent of a memory leak: you sign up, forget, and months later a zombie process is still draining your account. leak is a local-first TUI that tracks recurring spend, audits it, and tells you what to cancel. Single Go binary, no account, no server, no telemetry.

The interesting part

Ships as a real product, not a repo: Homebrew tap, an install script, prebuilt binaries for macOS, Linux and Windows on amd64 and arm64, semver releases and CI on every push.

  • one static Go binary
  • 6 build targets — macOS, Linux, Windows × amd64/arm64
  • Homebrew tap + install script
  • SQLite on your disk, nothing leaves it
$ brew install RishikeshSreekumar/tap/leak
GoBubble TeaSQLiteTUIGitHub ActionsHomebrew

Bansuri — Learn the Flute by Ear and Eye

2025 · live

Your own sound, honestly measured.

A learn-to-play-flute app built on live visual feedback. Eleven units and 57 lessons carry a beginner from first sound to a raga of their own, and eight practice tools sit underneath them — tuner, drone, fingering chart, the rest. Pitch and drift come off your microphone in real time; how your tone feels is the part it leaves to you.

The interesting part

Every lesson is a real prerendered URL, so it can be linked, bookmarked and indexed — and each one hands you into the tool that practises it as a preset link rather than shipping a second copy of it. Prerequisites are a nudge with a link, never a lock: a padlock in front of someone's flute is how you lose them.

  • 57 lessons · 11 units
  • 8 practice tools
  • pitch off the mic, in real time
  • audio never leaves the tab
SvelteKitTypeScriptWeb AudioPitch detectionVexFlow

deadfall — Dead Component Detector

2025 · on npm

Find the dead React components. Prove it before you delete them.

A CLI that parses a Next.js codebase with ts-morph, builds the component usage graph, and reports every component nothing actually renders. Exits non-zero when anything is dead, so the same command doubles as a CI gate. Generates an interactive HTML report to explore the graph. Never touches your code unless you pass --fix.

The interesting part

App Router aware static analysis over the whole import graph — no server, no build step, no code changes. Published on npm and runnable with a single npx command.

  • one npx away, no install
  • exits non-zero — drops straight into CI
  • App Router aware, whole import graph
  • read-only unless you pass --fix
$ npx deadfall check ./my-next-app
TypeScriptNode.jsts-morphStatic analysisnpm

FanPark — IPL Playoff Race Tracker

2026 · live

Pick a result. Watch the table move.

A companion app for the IPL 2026 season. Pick your team and get a dashboard of fixtures, form and net run rate; then play a result forward — Match Impact recomputes NRR and the points table, and Playoff Race answers whether the top four is still reachable. Built because arguing about qualification scenarios is better with the arithmetic done.

The interesting part

NRR is the part every fan gets wrong: it is computed over full quota overs, not overs faced, and an all-out side is charged the whole 20. Getting that right is what makes a projected table trustworthy.

  • NRR over full quota overs, not overs faced
  • any result played forward, table recomputed
  • playoff reachability, not just points
  • fixtures and results in Postgres
Next.jsTypeScriptSupabasePostgreSQL
04 / Education

Before the software

Chemical Engineering
Indian Institute of Technology, Madras

Four years of thinking in flows, feedback loops and steady states — the same instincts I now apply to distributed systems

2018 - 2022 · B.Tech · Chennai, India
CGPA 8.58 / 10
All India Rank 2275 · JEE Advanced 2018
Rank 5 in Kerala · KEAM 2018
05 / Open source

Smaller things, all public

Weekend-sized problems that turned out to be more interesting than they looked.

Marvel Nexus Astro

MCU chronology as a story-dependency graph: 95 titles, cycle validation at startup, watched-state in the URL. Astro shell, React island.

RishikeshSreekumar/marvel_nexus 2024 live
svg-reconstruction TypeScript

Recovers editable primitives, strokes and constraints from flattened SVG path soup — 1516 numbers of bezier data back to three circles, a rounded rect and the constraints between them. Zero runtime dependencies; its own parser, fitting and offsetting.

RishikeshSreekumar/svg-reconstruction 2026
The Chilli Scale SVG

Sixteen chillies by Scoville heat, drawn by one function from one anchor: scrolling grows each pod into the next rather than swapping photographs, with the accent riding green to crimson up the scale.

RishikeshSreekumar/chilli 2025 live
Strawberry TypeScript

An interactive calculus-first math learning platform: a Next.js modular monolith with relational structure, JSONB lesson blocks, an in-app admin CMS and versioned publishing.

RishikeshSreekumar/strawberry 2026 live
Tea Atlas JavaScript

45 teas across seven families — where each grows, how it is processed, what is in it and how to brew it. Filters live in the URL, search ranks by where it matched, and up to four teas compare side by side.

RishikeshSreekumar/teaaa 2026
Flow Lab TypeScript

An essay with a working traffic-signal simulation inside it: five junctions around Panagal Park, four control plans over OpenStreetMap geometry, paired A/B playback and a batch mode that runs ten seeds per controller and reports the uncertainty.

RishikeshSreekumar/traffic_simulation 2026
06 / Skills

What I reach for

No proficiency bars — nobody believes them anyway. If it’s here, I’ve shipped something with it and can talk through the parts that went wrong.

AI in production

Retrieval and citation over vibes: an answer a user can check beats a fluent one they cannot.

Languages

TypeScript by default. Go when it has to be one binary somebody can run. Python where the ecosystem already solved it.

Interfaces

Rendered on the server wherever the page has no reason to be an app. React islands only where state actually lives.

Services & APIs

Typed at the boundary, with the money paths — webhooks, retries, idempotency — treated as the hard part, because they are.

Data

Postgres until it genuinely stops working. Migrations in the repo, indexes chosen from the query plan, not from a guess.

Ship & run

Every environment in Terraform, every push through CI. If a deploy needs a person to remember a step, it is not done.

Browser & runtime

The awkward surfaces — extensions, workers, audio, real-time — where the browser is the runtime and there is no server to hide behind.

07 / Contact

Say hello

Hiring, collaborating, or just want to argue about whether a sky-lobby lift system is worth the shaft space — the inbox is open, and I do reply.

locationChennai, India
timezoneIST (UTC+5:30)
status Building at Mando
resume PDF
Compose a message