8000
Skip to content
View ManasMadan's full-sized avatar
🏍️
Roads > desks
🏍️
Roads > desks

Highlights

  • Pro

Block or report ManasMadan

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.

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
ManasMadan/README.md

Manas Madan

Software developer at Synaptic. I work on backend systems, infrastructure and developer tooling — mostly problems where the hard part is staying correct under failure: replication streams, offline nodes, exactly-once delivery. NSUT '26.

At Synaptic

I own data collection, the customer-facing app, our MCP server, and an in-house BI platform that replaced Sigma. Recent work: cut a data-collection page load from 4.17s to 0.55s, migrated 149 live dashboard queries onto the new BI platform with zero regressions, and hardened the input schemas across all 24 MCP tools. Earlier, I migrated the Forge admin tool from MySQL to Postgres — database and application code — and folded its codebase into the main admin app, so there is one system to maintain instead of two.

Things I've built

gatecrash — offline-first event infrastructure that runs an entire venue off a single Raspberry Pi with no internet. Exactly-once ticket redemption on a SQLite compare-and-swap, a hash-chained audit log with Merkle inclusion proofs, BLE mesh over the Noise protocol, and a self-hosted CA, DNS, DHCP and captive portal. 32 Go packages, 5 clients (web, iOS, Android), and a deterministic simulator that injects power loss so recovery is proven rather than hoped for. Go, MIT — docs.

walcast — Postgres change data capture for Node, built on a pgoutput binary decoder I wrote by hand instead of wrapping wal2json. Async iterator with explicit LSN acknowledgment, plus sinks for webhooks, SSE, Kafka and gRPC across an 8-package monorepo. On npm as walcastdocs.

Desklock — macOS menu-bar screen lock that holds an IOKit power assertion, so a long-running agent session survives a locked screen. Salted SHA-256 PIN in the Keychain, input swallowed at the event-tap level. 15+ engineers at Synaptic use it in place of Caffeinate and Amphetamine.

pdf-actions — npm package for merging, splitting, rotating and numbering PDFs entirely in the browser, no upload. 42 releases, 300+ weekly downloads, 1,000+ users on the hosted app.

Working with agents

Agent tooling is part of how I ship, so I treat it like the rest of the codebase — versioned, reviewed, and scoped to the repo it lives in. In MemberStore that means a CLAUDE.md that is nothing but @-imports, an AGENTS.md carrying a machine-managed rules block that points agents at the framework docs vendored under node_modules, and five Agent Skills — one of which splits ~80 React performance rules into individual namespaced files so only the relevant ones ever get loaded. 15+ engineers at Synaptic use them. At work the same instinct shows up as owning our MCP server and tightening the input schemas across its 24 tools.

Stack

Go, TypeScript, Python, Swift · Postgres, SQLite, Kafka · Node, Next.js, React · Docker, Linux, Raspberry Pi

Contact

manasmadan08@gmail.com · mmadan.in · resume · LinkedIn

Pinned Loading

  1. pdf-actions pdf-actions Public

    npm package for editing PDFs in the browser — merge, split, rotate, number pages and extract images on top of pdf-lib. No server, no uploads.

    JavaScript 16 8

  2. Desklock Desklock Public

    macOS menu-bar screen lock that keeps your work alive — holds an IOKit power assertion so agents, servers and downloads survive a locked screen.

    Swift

  3. gatecrash gatecrash Public

    Offline-first event ticketing that runs a whole venue from one Raspberry Pi with no internet — exactly-once redemption, BLE mesh, Merkle audit log.

    Go

  4. walcast walcast Public

    Postgres change data capture for Node — hand-written pgoutput decoder, async iterator with LSN acks, plus sinks for webhook, SSE, Kafka and gRPC.

    TypeScript

0