⟨ SYSTEM ⟩NOTIFICATION

Profile loaded: Nikhil Kapadia.

Senior software engineer. Agent orchestrator.

The rest is in the logs.

▼ CONTINUE
⟨ STATUS ⟩PLAYER INFO
[NaN] Nikhil Kapadia
Exp: agent sessions orchestrated2,610 / ∞
Level29
ClassSenior Software Engineer (base) · Agent Orchestrator (class change, 2026)
GuildTalix
SpecialtyFull-stack product engineering
PassiveSystemize (Lv. MAX): anything repetitive gets pulled into a system.
⟨ COMMIT LOG ⟩GITHUB · 2,639 CONTRIBUTIONS · LAST 12 MONTHS
GitHub contribution graph for NikAtNight
⟨ SKILLS ⟩UNLOCKED
MYTHICAgent orchestrationClaudeCodexHermesskills that review the way I do2 yr
LEGENDARYFull-stack TypeScriptReactNext.jsNodeantdStorybook6 yr
LEGENDARYData and APIsMySQLPostgreSQLTypeORMDjango REST6 yr
EPICParallel environmentsDockergit worktreesone isolated env per agent5 yr
EPICAuth and integrationsKeycloakAuth0StripeS35 yr
EPICPixel-parity QAStorybookscreenshot loopsagents chase staging until the diff is zero2 yr
RAREAI featuresLangChainRAGOpenSearch3 yr
RAREDesktop appsTauriRustsigned and notarized1 yr
TIER = RARITY · YEARS = EXPERIENCE
⟨ ABOUT ⟩01 · THE PLAYER

I'm Nikhil, a senior software engineer in Toronto. I've spent eight years shipping full-stack product: React and TypeScript up front, Python, Node and PHP behind it, from a live trading platform with Stripe billing to the AI features at BombBomb. On the side I run Talix, a small invoicing product, and build the tools you'll find under Side Quests.

The through-line is how I handle repetition. Anything that keeps costing me attention, a question I keep answering, a cleanup I keep running, a judgment call I keep making, gets pulled out of my hands and into a system: a watcher, a cron job, an agent with written rules. Over the years that habit has produced release monitors, self-maintaining machines, a versioned personal rulebook (Argus), and eventually the fleet: when coding agents got good, my own job was simply the biggest repetition left.

What I'm like to work with: I ship features at every size the same way, tests first, then the code that makes them pass. When a verification habit proves it earns its keep, I write it down as an agent skill, so the fleet reviews code, architecture, and even prose the way I would. A meaningful share of my review comments are about two pixels of drift, and I stand by every one of them.

Off duty I read a lot of Korean webcomics, which you may have guessed from the interface you're using. The status window is a joke that is also true: I really do treat life as a game with legible rules. It's working.

⟨ CAREER LOG ⟩02
  • Senior Software Engineer · BombBombDec 2024 to present Helped take a video-messaging product from a new React shell to a full second-generation app: the shared component library, multi-team admin and branding, a Classic-to-current migration of invites, roles and SSO, AI-generated video titles and summaries, then self-serve checkout and a compose-and-send email composer. Around 410 merged PRs and 500+ tickets, roughly half new product, the rest production bugs and platform work. The fleet joined mid-2026 on the composer and checkout, pairing on Figma reviews, drafting Jira cards and PRs, and clearing bugs in parallel worktrees. It already co-authors about 1 in 8 recent merges, and that number only goes up.
  • Senior Full-Stack Engineer · Olive▲ PROMOTEDJan 2024 to Oct 2024 Senior Frontend Engineer · Jun 2022 to Jan 2024 Leveled from frontend to full-stack mid-run. The frontend era: the feature-flag management UI both dev and product ran on, Storybook-tested components, and the permissions system. The full-stack era: Django REST APIs with Selenium coverage, Claude wired in through LangChain, and a RAG pipeline on AWS OpenSearch, built before there was a tutorial for it.
  • Frontend Engineer · Optima HoldingsJan 2022 to Oct 2023 A live trading platform, so performance was the whole game: tRPC caching and batching cut API calls by 60%, and Next.js SSR tuning lifted core web vitals by 25%. Also built the Stripe billing and its webhook handling, and a Chrome extension streaming live ML trading signals over WebSockets.
  • Developer / Technical Analyst · JAPR Tech▲ PROMOTEDSep 2021 to Feb 2022 React Developer · Apr 2021 to Sep 2021 Joined to rebuild shared React components with Redux and Jest coverage. Promoted into running the queue: user stories, sprint planning, assigning work, reviewing code. Completed story volume rose 16%. First data point that directing work scales better than soloing it.
  • Junior Full-Stack Software Developer · EmailgisticsSep 2019 to Dec 2019 Go microservices and a Vue.js UI, plus a load-testing app built to find exactly how much traffic the services could take before falling over. Breaking systems on purpose to learn their limits: a habit that starts here.
  • Analytics Engineer Co-op · RBCJan 2019 to Apr 2019 The tutorial level. Python tools for the investment team: algorithms tracking stock trends across quantitative funds, charts for large datasets, and audio-to-text for analysis.
⟨ SIDE QUESTS ⟩03 · OPEN SOURCE
  • patchdeck[ source ]A local-first desktop workbench for reviewing Git branches and coordinating AI agent tasks. The raid interface.
  • pulsedeck[ source ]macOS menu bar monitor for dev machines: CPU, memory, ports, and which coding agents are running right now. The minimap.
  • localflow[ source ]Fully local push-to-talk dictation for Apple Silicon. On-device Whisper, types into whatever has focus. Voice commands, literally.
  • photovault[ source ]Password-locked, encrypted local photo and video library. Tauri + Rust. The inventory nobody else can open.
  • pi-extensions[ source ]Extensions for the pi coding agent: review swarms, browser probe, scope guard. Early skill tree for the fleet.
⟨ THE PREMISE ⟩04

The economics of software engineering changed in the span of about two years. Agents now write competent code, and most of the industry is still arguing about what that means for the profession. I skipped the argument. Agents take the repetitive work, and that's fine by me.

I moved to the layer the new economics actually reward: orchestration, verification, and the systems that make agent output trustworthy. In practice, I run a fleet of coding agents. Work arrives as tasks on a board, each routed to the cheapest model tier that can handle the judgment it requires, and no result is accepted on the agent's word. Every claim of "done" is verified by something that didn't do the work.

The models are commodities. The system around them is the durable advantage, and building that system is what this page documents.

The system has a name. Open ⟨ ARGUS ⟩

⟨ ARGUS ⟩05 · PRIVATE REPO

Argus is the repo that runs my fleet, named for the watchman with a hundred eyes. It holds the rules every agent on my machine loads before it touches anything: how work gets scoped, what requires my name on it, and how a claim becomes a fact. The repo stays private because it's the machinery. The shape of it isn't a secret:

  • workflow.mdhow work moves: cards, waves, checkpoints, handoffs
  • guardrails.mdwhat agents may never do without me naming the action
  • gates-and-oracles.mdhow a check earns trust: prove it can fail before believing it passes
  • delegation-briefs.mdhow to brief a worker so "done" means done
  • repos/*.mdper-codebase knowledge, kept out of the core so the rules don't rot
  • sync.shone source of truth, generated into every tool's config on my machine
Rules, verbatim

"A gate that has only ever passed is a guess." Break it on purpose, watch it fail, then trust it.

"A worker reporting done starts verification. It never ends the work."

"Never present a skipped check as green." Every check reports pass, fail, blocked, or not run.

Currently at v3.9. The version only moves when a rule survives contact with a real failure.

⟨ RAID LOG ⟩06 · WAR STORIES
[INCIDENT]

The runaway fleet

One ordinary review prompt spawned 5 agents, which recursively spawned 928 more. A single session, 367 MB of transcripts. The lesson wasn't "be more careful." It was that prose constrains nothing. Delegation caps now live in config, where an agent can't talk its way past them.

What it left behind: a rule I still use. If a safeguard only exists as a sentence, it doesn't exist.

[AUDIT]

Reviewing the last run

I mined every agent transcript on my machine, 2,610 sessions across four tools, to check whether my agents actually follow my rules or I just believe they do. My first attempt rested on broken methodology, so I threw it out and redid it properly.

Findings: zero unauthorized commits or pushes across 460 commits and 281 pushes · 26 sessions caught claiming done without running a test · 36 of 43 installed skills retired once the data showed they'd never been used.

[PRODUCTION]

The charge that could land before the error

Day-job bug: email verification quietly logged users back in, but billing ran on a separate host that didn't share the session. Purchases fell back to the wrong state, and in the worst path provisioning could charge the card before throwing. The rebuild moved signup state into user-scoped Redis with a TTL and a marker that only exists once provisioning has actually succeeded.

What holds it now: 128 tests and a regression test that fails when the bug is reintroduced. A gate that has proven it can fail.

[RACE]

Three branches died before the race did

Trial completion reported success while another web host still held stale access: a race between provisioning, cache propagation, and the user's first request. Three attempts were closed without merging. The fourth centralized provisioning, invalidated caches across hosts, and made replays idempotent.

Held in place by a 244-line integration test covering access, roles, replays, and plan changes. The dead branches were part of the fix.

[BUG]

The one-line fix, three times

A region dropdown had an obvious one-line fix. The failure survived it, resurfaced in a second purchase-flow resolver, then again through browser autofill and native address fields. The pass that finally killed it handled unique, ambiguous, and unknown region codes, and documented the real stakes: a payment method could be stored with no subscription attached to it.

Lesson: the visible symptom is never the whole bug. Fix the class, not the instance.

[INFRASTRUCTURE]

Forking the gateway

The open-source gateway my fleet runs on was missing its enforcement layer, so I forked it and built one: checkpointing with claim fencing (a successor can't take over a task until its predecessor's process actually exits), a fail-closed handshake between dispatcher and workers, and workspace leases granted at dispatch instead of discovered as conflicts at runtime.

Verified: differential test sweep, branch vs base. Identical failure sets, zero caused by my diff.

[SHIPPED]

Patchdeck, idea to signed app

It started as "an app like GitHub, but not GitHub": a desktop tool that renders local branch diffs the way a pull request does. I had a working Tauri + React app the first night, then spent two weeks iterating from screenshots: multi-repo workspaces, IDE-grade syntax highlighting, a commits-ahead view, and a kanban board that dispatches my agent fleet from inside the app. Then I shipped it properly: code-signed, notarized, auto-updating.

Status: on my dock, running my agents. The repo is under Side Quests.

[PLATFORM]

Four production-like instances, one laptop

I built a CLI where one command brings up parallel, isolated instances of a full production-style stack on a single machine: per-instance frontend, backend and MySQL, shared Postgres services, local HTTPS hostnames, OIDC auth, database cloning and seeding, and a git worktree per instance. Then I hardened it until any teammate could run it without my machine's quirks.

Best bug: cloned databases sharing IDs caused cross-instance data bleed. Isolation is a claim. I verified it.

[TECHNIQUE]

Pixel parity as an agent loop

After a major framework upgrade, the app had to match the reference environment exactly. I turned visual QA into an agent loop: annotated screenshots drive the agent, Storybook parity stories pin components, and the diff between branch and staging becomes the work queue. Down to font weights and hover colors.

The reference is evidence. The loop ends when the diff does.

⟨ GUILD ⟩07 · TALIX

Talix is the guild. Its main product is talix.app, invoicing that gets out of your way. I run it with zero marketing spend.

This paragraph is the marketing.