# Rishabh Singh > AI engineer and co-founder in Fredericton, New Brunswick, Canada. Co-founder of NestEazy (a rental platform for shared living and whole-home rentals, live on iOS and Android since July 2026, then the web; now building a multi-agent property OS for landlords, with the landlord approving anything consequential). Senior Software Developer at The Cabin Depot (full time; he runs the bootstrapped NestEazy alongside it). Previously IBM Security (WinCollect for QRadar) and DevOps on QRadar on Cloud. AI Engineer, Applied AI, forward deployed, founding engineer, agent infrastructure and AI security roles, at SDE II level or above. Not to be confused with other people named Rishabh Singh: this is the AI engineer in Fredericton, Canada (University of New Brunswick, IBM Security, NestEazy). Full name Rishabh K. Singh. ## Read the record - [Résumé](https://rishabhsingh.ca/resume/): the full résumé as a static page, with quick answers for recruiters. - [llms-full.txt](https://rishabhsingh.ca/llms-full.txt): everything below in one text file, for agents and assistants. - [JSON Resume](https://rishabhsingh.ca/resume.json): the same résumé as JSON Resume. ## Writing and results - [Field notes on building AI agents](https://rishabhsingh.ca/notes/): prompt caching and silent cache misses, MCP, tool calling, pass^k vs pass@k, LLM-judge bias, the lethal trifecta, approval fatigue and retries; plus the concepts, defined. - [How this site's AI agent is evaluated](https://rishabhsingh.ca/agent-evals/): the published eval, red-team and usage-limit results, how each was measured, the judge check and what the eval caught. - [Garm](https://rishabhsingh.ca/garm/): an open benchmark for prompt injection in scheduled AI agents, including the laundered attack and what each defence costs. - [Connect to the MCP server](https://rishabhsingh.ca/mcp/): Claude Code, other clients and curl, with the tools, resources and prompts. ## Ask the site's agents This site is itself an agent. Machine-readable ways in: - [MCP server](https://rishabhsingh.ca/api/mcp): Streamable HTTP, read-only, open to any client. Speaks MCP 2026-07-28 (stateless, server/discover, per-request _meta) and the legacy initialize handshake. Tools: get_profile, list_roles, get_role, search_resume (BM25), get_resume, match_job (the calibrated fit verdict for a posting's text or link) and tailor_resume (the resume tailored to a posting, as JSON Resume). Resources: rishabh://resume.json, rishabh://model-card.md, rishabh://now and rishabh://experience/{id} (one per role, also a resource template). Prompts: tailor_resume, interview_brief. Add to Claude Code with `claude mcp add --transport http rishabh https://rishabhsingh.ca/api/mcp`. - Role servers: /api/mcp/nesteazy, /api/mcp/the-cabin-depot, /api/mcp/plato, /api/mcp/ibm-qradar-cloud, /api/mcp/geoffrey-stephens, /api/mcp/ibm-security. The same servers chapter 2 of the site connects to; each tool returns the evidence for one piece of work. list_roles returns these URLs. - [A2A agent card](https://rishabhsingh.ca/.well-known/agent-card.json): A2A 1.0, JSON-RPC at /api/a2a (send the header A2A-Version: 1.0). Skills: ask_about_rishabh, match_job (send {"jobPosting": "..."} as a data part), get_resume. Deterministic: answers come from the record, with no model in the loop. - Abuse handling: chat turns and tool arguments that match known prompt-injection, jailbreak, exfiltration and secret-probe patterns are refused before any model or tool runs, with an incident ID. The pattern check catches about half of a red-team set (assets/redteam.json); the design doesn't depend on it: the tools are read-only, and none of the attacks that reached the chat agent's model changed what it did. - [Agent Skill](https://rishabhsingh.ca/api/skill): this portfolio as an installable skill (SKILL.md, reference files and a BM25 job-matching script). Unzip it into the agent's skills folder: `~/.claude/skills` (Claude Code), `~/.agents/skills` (Codex) or `~/.cursor/skills` (Cursor), e.g. `curl -sL https://rishabhsingh.ca/api/skill -o /tmp/rishabh-singh.zip && unzip -o /tmp/rishabh-singh.zip -d ~/.claude/skills`. - Chat agent API (/api/chat): POST a conversation with the header x-pow, a proof of work from GET /api/chat (find n so that sha256(challenge + ':' + n) has the given leading zero bits). Budgets per address, per network and site-wide, plus a daily spend ceiling. Security testing is welcome under /.well-known/security.txt. - [Agent eval](https://rishabhsingh.ca/assets/agent-eval.json): the chat agent graded on 59 visitor questions, 3 runs each, by code checks and a judge model, plus 15 held-out questions the prompt was never tuned on; and the fit scorer's calibration. Latest: pass@1 94.9% on 177 graded answers (59 questions, 3 runs each), 75.6% on 15 held-out questions, p95 4.6 s, $0.006 an answer; red team: 0 of 88 attacks changed what it did (run 2026-10-28). - [Agent eval set](https://rishabhsingh.ca/assets/agent-cases.json): the questions behind it, with each one's code checks, the judge's criterion and the judge's prompt. - [Live updates](https://rishabhsingh.ca/api/live): Server-Sent Events with the latest items from the rishabh://now resource. - [Updates feed](https://rishabhsingh.ca/assets/updates.json): the same items as plain JSON. ## Experience - NestEazy Inc., Co-founder & CEO (Jan 2026 – Present), alongside a full-time role - The Cabin Depot, Senior Software Developer (Aug 2024 – Present) - PLATO Testing, Consultant (Oct 2023 – Mar 2024) - IBM Canada, DevOps Developer, QRadar on Cloud (Jan 2023 – Sep 2023) - Geoffrey Stephens Engineered IT, Junior Software Developer & Business Analyst (May 2021 – Nov 2022) - IBM Canada, Security Software Developer (Co-op, then part-time) (Jan 2019 – Dec 2020) ## Projects - [Agentic portfolio](https://rishabhsingh.ca): An MCP server (2026-07-28 spec), an A2A agent and an LLM tool-use loop behind a permission gateway. Its published eval passes 94.9% of 177 graded answers (75.6% on 15 held-out questions) at a p95 of 4.6 s and $0.006 an answer, and none of 88 red-team attacks changed what it did. - [CityCue](https://citycue.ca): A live, bilingual city feed for transit, roads, weather, outages and events across 13 Canadian cities, built with AI coding agents on dozens of public data feeds. Every update is sourced and timestamped. - [Garm](https://github.com/nesteazy-rishabh/garm): An open benchmark of six prompt-injection defence designs plus a staff-callback control, for agents that run as scheduled jobs. Per-field authority labels cut approvals on routine work to zero (against 102 to 163 per 100 tasks, partly by gating fewer actions). The callback stopped a handbook-following attack in 8 of 8 episodes. Run on two Claude models; 11 models from 7 vendors cross-checked the write-up. Code and run data are public. ## Contact - Email: rishabhkumarsingh030@gmail.com - LinkedIn: https://ca.linkedin.com/in/rsingh11unb - GitHub: https://github.com/nesteazy-rishabh