Skip to content
About

Engineer, systems-thinker, ships things.

Portrait of Rishi Tank

Rishi Tank

Senior Full-Stack & AI Engineer · London, United Kingdom

Open to senior full-stack & AI engineering roles

I'm Rishi, a senior engineer with thirteen years of shipping production software, most recently over six years at Adthena, an AI search-intelligence company, latterly as web tech lead across two squads. There I led web engineering on AIO Signals, part of the AI Overview Dashboard that won at the European and Global Search Awards in 2026; contributed to the foundation of an agent-ready rebuild of the web app, one monorepo for the frontend, backend and services; owned the reliability of an extraction pipeline handling millions of events a day; built enterprise single sign-on end to end and rolled it out with customer success; and led the design-system migration. I also took AI code review from a hackday demo, through a multi-week team trial, to the standard across the whole engineering organisation, and built the Claude Code tooling my team used for incident triage and release work.

In 2026 I started Tankster AI to work on the problem I kept running into: an autonomous agent is only as trustworthy as the structure around it. So I design that structure and build it by directing AI coding agents: a fail-closed egress proxy that redacts and meters everything an agent sends to a model vendor, a policy gateway for MCP tool calls, and an adversarial harness that judges an agent by what actually changed on disk rather than by what it said. All of it has tests, all of it has CI, and all of it says plainly what it does not do.

I care about the unglamorous things that separate a demo from something people rely on: verification that comes from outside the thing being verified, budgets enforced at a gateway rather than in a prompt, and documentation honest enough to survive a sceptical reader.

A note on where the code lives, because it is a fair question. The agent infrastructure in the case studies is owned by Tankster AI Ltd and published from its GitHub organisation; the studio runs it in its own estate, and the tools that make agents safe to run are open under MIT while the products built on them stay private. I design each one and build it by directing AI coding agents, which the commit history shows openly. My own GitHub profile is the front door to all of it.

Structural, not cooperative

A gate an agent can talk its way past is not a gate. If a property matters, it is enforced by the type system, the network boundary or a human — never by asking nicely.

Judge the world, not the agent

The filesystem, the wire and the ledger are the witnesses. A tool's own account of what it did is the last thing I would trust.

Honest about limits

Every project I ship documents what it is not. That is not modesty — it is the part a reviewer needs most, and the part most portfolios leave out.

Open source

Upstream issues, proposals and fixes, each backed by a linked issue or pull request:

  • Redoc

    Built XML and CSV response examples for Adthena's API docs, first proposed in 2023 (#2347) and later backed by other developers. CSV support is merged for the next release (#2869), and my XML fixes to openapi-sampler were merged after review (#223).

  • claude-code-lsps

    Had a Java language-server (jdtls) reliability fix merged (#73); my request led to Scala (Metals) support (#54), and my diagnosis of why it would not load got it fixed (#56).

  • GitHub Copilot CLI

    Proposed repo-specific MCP configs, shipped as the repeatable --additional-mcp-config flag (#288).

  • MCP TypeScript SDK

    My docker run --init workaround for orphaned MCP containers was credited by the maintainer when closing the issue (#547).

  • VibeTunnel

    Requested Auggie CLI support, added in v1.0.0-beta.16 and credited to me in its release notes (#526, #680).

  • coolify-mcp

    Reported that updating an application's domain failed because the server sent fqdn where the Coolify API now expects domains; the owner closed it as fixed by a later pull request (#110, #125).

  • Auggie CLI

    Reported a response-delay regression in v0.6.0 and tested the maintainers' prerelease fix, shipped as 0.6.1 (#28); a maintainer said my request for native shell support should be fixed in the latest release (#14).

  • DBCode

    Requested Redshift Spectrum support, shipped in 1.14.24, then reported a regression in that release, fixed in 1.14.25 (#613, #644).

  • stylelint-stylistic

    Reported styled-components indentation bugs, fixed in v3.1 and v3.1.1 (#39).

  • eslint-plugin-project-structure

    Requested a kebab-case {parentName} reference and jest.mock import checks; the maintainer shipped them in 2.3.0 and 2.7.0 (#14, #18).

  • branch-name-lint

    Asked for JavaScript config files, which the maintainer added in a pull request that fixes my issue (#51, #66).

  • Tagify

    Reported a stray   added with every tag, fixed by a maintainer commit that cites my issue (#595).

  • yajs.vim

    Reported two JavaScript and JSX highlighting bugs, both fixed by commits that cite my issues (#168, #169).

  • ng-embed

    Asked for a way to switch off HTML sanitising, added as an option by a pull request that resolves my issue (#39, #53).

Experience

  1. 2026 to now

    Founder, Tankster AI

    Pre-revenue R&D: prototypes for the containment, verification and cost-control layer for autonomous agents.

  2. 2022 – 2026

    Senior Full-Stack Engineer, Adthena, London

    Tech lead on the web team (two squads). Lead web engineer on AIO Signals in the award-winning AI Overview Dashboard, and contributed to the foundation of an agent-ready rebuild (one monorepo for the frontend, backend and services). Extraction reliability at millions of events a day, enterprise SSO (OIDC/SAML), RBAC and tenant isolation, a company-wide design system, OpenFeature feature flags, and MCP integrations used by internal agents and customers' agents.

  3. 2020 – 2022

    Senior Frontend Engineer, Adthena, London

    Led the Backbone-to-React migration of the flagship analytics app.

  4. 2016 – 2019

    Lead Frontend Developer, Matchbyte, London

    WhiteKnight 2.0 airline e-commerce platform, including Tigerair Taiwan's ten-year contract; built and led the web team.

  5. 2015 – 2016

    Full-Stack Software Developer, Yossarian Lives, London

    Seed-stage creative search engine; real-time pub/sub architecture, full stack.

MSc Cybernetics — University of Reading · BSc (Hons) Computer Science with Games Technology, First Class — City, University of London

Security: OWASP Top 10

At Adthena I hardened user management and RBAC against OWASP Top 10 risks while refactoring the internal Scala user-management platform.

  • A01:2025 Broken Access Control

    Role-based access control with tenant isolation: authorisation checks stop one customer's users acting on another customer's data. Also fixed CSRF token handling.

  • A07:2025 Authentication Failures

    Enumeration-safe forgot- and reset-password flows that give the same message, in the same time, whether or not an email has an account. Reset links carry a time-limited token, a validation endpoint tells an expired token from an invalid one, and a password reset revokes the account's sessions in Redis.

  • A09:2025 Security Logging & Alerting Failures

    An audit log of user-management actions.

Not shipped, and next on my list: rate limiting on the forgot-password request, per IP and per account.