Staff Software Engineer (Member Leadership Staff) · Zoho Corporation · Chennai, India
LinkedIn · thangaram611@gmail.com
Nine years, one company, spent almost entirely one layer beneath somebody else's product: a serverless platform from first commit to launch, the SDKs and CLI its users hold, the deployment platform that came after — and then a runtime that does the same job for agents instead of people.
Most platform work sits behind a company's walls. This is the part anyone can audit.
| Artifact | Checked August 2026 |
|---|---|
zcatalyst-sdk-node |
22,383 downloads/month · 56 releases since Mar 2019 |
zcatalyst-cli |
9,163 downloads/month · 126 releases, v1.27.0 |
| Catalyst Tools for VS Code | ~2,700 installs · publisher Zoho Corporation |
I authored the Node SDK and the CLI. They ship from a shared team publisher account, and counts move — the links are live.
- Before Catalyst, 2018. Sole engineer on Zoho CRM's per-organization FIFO event pipeline on Kafka, aggregating activity from Desk, Books and other products into CRM — peak 100,000 events/sec.
- Jan 2019 to market launch in Mar 2020. A serverless platform in the Firebase category, built on Zoho's own global infrastructure. I wrote its Datastore, Filestore and Queue primitives.
- Then its entire developer surface, personally:
zcatalyst-cli,zcatalyst-sdk-node, a Java SDK, a Swift SDK, the VS Code extension, the Maven plugin. One contract expressed six ways — and the actual discipline is keeping the six from drifting apart. A public API contract is the one part of a platform you cannot quietly revise; that constraint still shapes how I design. - Three services after launch (2020–25) — Mail, a Lambda-equivalent Functions runtime, static web hosting — each exposed through the CLI, the SDKs and the public API on that same contract.
- Slate (2023–24). I read the shift to Vercel-style hosting early, then designed and built Catalyst's first-party answer to it: git-driven builds, atomic deploys with rollback, CDN-backed delivery. Launched 2024, and I stood up the 6-engineer sub-team that owns and runs it today.
- Today I direct the 13-engineer group that owns Catalyst and its developer tooling, grown from 3 over six years; I hired 7 of them personally.
Architect and primary author, 2025–26, of a multi-agent orchestration runtime at Zoho, behind an AI application builder. Same job as before — primitives and contracts for whoever is calling — except the caller is now a model. Most of the wins were measurement, not cleverness.
An agent that spawns sub-agents is a distributed system with a nasty failure model: the process holding the tree in memory can die mid-tool-call, and the model has no memory of what it already asked for. Retry naively and you get duplicate work billed twice; don't retry and the tree stalls.
I designed it around one spawnAgent primitive over an arbitrary-depth, crash-recoverable task
tree. Joins and cancellation are subtree-aware. Dispatch is idempotent by tool-call id: a spawned
agent is recorded in the durable ledger before its work starts, so a crash is followed by a re-drive
of the same task under the same id and the same agent row — not a duplicate.
The internal LLM gateway's prompt-caching contract was undocumented. I probed it with a 25-cell wire-probe suite — vary one field per cell, read what comes back on the wire — and traced the misses to a per-step volatile date block. After the fix, 77.7% of input tokens were served from cache.
The follow-on was a real trade, not a free win. Serving a curated fact glossary as a cache read instead of re-sending history cut fresh input tokens 99.6% on recall turns, at a measured +32% latency. A/B across the benchmark: win or tie in every scenario but one. I shipped it and named the exception.
The measurement gate is a headless end-to-end benchmark driving real conversations against a live stack, judged on a completion band plus a signed honesty dimension across three draws. The part that mattered was pointing it at itself: an A/A re-baseline put the noise floor at 15–19%, and below that, deltas are reported as unresolved rather than as wins. A benchmark that cannot tell you when it doesn't know is worse than no benchmark.
I also introduced the repository's first automated test suite — 221 files, ~2,333 cases on Vitest — and the CI that runs install, build, typecheck, lint and tests on every branch in about three minutes.
Two more decisions from the same runtime
Parallelism is a scheduling property, not a prompt. Controlled runs settled an argument: prompting alone never reliably gets a model to batch heavy tool calls. So I stopped asking — a fair scheduler with per-conversation stream caps, plus hard per-turn budgets on steps, output tokens and spawn depth, sized to run on 2-vCPU hosts. The budgets are the load-bearing half: bounding the worst turn is what makes a fair share mean anything.
An MCP tool gateway keeps the provider-facing tool surface byte-stable. Prompt caching dies on the first byte that moves.
vigil · Rust · macOS · MIT — keeps a Mac awake while AI coding agents work, and only while they are actually working, releasing on idle, thermal pressure, or a battery floor while unplugged. It is structured around a privilege boundary: a root helper owns the single operation that genuinely needs escalation, so nothing else runs elevated. About 26K lines of Rust across a three-binary workspace, delivered as a seven-slice strangler-fig rewrite off Bash — each slice held to parity by golden-fixture oracles before the shell tree was deleted.
agent-companion · MIT — a runtime-neutral
delegation bridge. Any supported coding-agent harness dispatches background work to Copilot,
OpenCode or Codex through five MCP tools: agent_send, agent_wait, agent_status, agent_reply,
agent_cancel. Sends resolve by strength (reviewer, web_researcher) rather than by vendor, so
a harness never hard-codes a runtime. The plumbing was easy; the failure modes were not — an ACP
daemon does pagination-aware loop detection with tiered silence thresholds, and the HTTP+SSE adapter
supports in-flight reply and resume after a restart.
A self-hosted financial platform · private — an append-only double-entry ledger in exact integer paise, because floats have no business near money. Passkey/WebAuthn auth, a Postgres-backed job queue, verified nightly restic backups, and a deploy CLI that builds SHA-tagged images, gates on health and rolls itself back. One invariant holds the design together: the on-device LLM can never emit a monetary amount — enforced structurally by a server-side allow-list projection plus a deterministic crosscheck, never by asking the model nicely.
M.Tech, Networks and Security — BITS Pilani WILP, part-time while employed (2021–23) · B.Tech, Information Technology — College of Engineering Guindy, Anna University (2013–17)


