Vaibhav Rai

Vaibhav Kumar Rai

Senior Frontend Engineer · Delhi, India

I build and restructure large React frontends, mostly for security and compliance products. The messy structural work is the part I actually like.

Now
Open to senior and staff roles
Recently
2 years at Scrut Automation
Stack
React, Next.js, TypeScript, Vue, PostgreSQL, FastAPI
Focus
Design systems, data-heavy UI, migrations
Based
Delhi, India · remote

Live demos

Two claims from my CV, rebuilt for this page. No client code, no client data.

Security findings
0 rows0 in the DOM0 live updates
Building 50,000 rows…

50,000 rows, about a dozen in the DOM. Rows mutate while you scroll, which is the part that usually breaks. Try to make it stutter.

Design tokens
--primary #42655b--radius 12px
12px

Every component to the right reads these. Nothing is restyled by hand.

Vendor review

SOC 2 Type II expires in 32 days.

Request evidenceSnooze
In reviewOwner: Vaibhav

Two variables. The card, buttons and chips move together because they were never given their own values.

Where I’ve worked

Most of it sits behind a login, so where the product has a public page I’ve linked it.

Scrut Automation

2024 — 2026 · Remote

Senior Software Engineer, Frontend

Promoted from SDE II (Jun 2024) to Senior (Apr 2025), same team

  • Owned the React frontend architecture for the core security products, findings and vulnerability management. Made the technical calls, reviewed the code and coordinated releases as the senior engineer on the pod.
  • Rearchitected the app around a UI design system spanning multiple modules, the layer the rest of the frontend pod built against every sprint.
  • Added virtualization and a reusable real-time table for live, data-heavy views, then used code splitting to cut initial bundle size and load time.
  • Built the dashboards that surface security findings and incidents, so customer teams could resolve issues faster.
  • Integrated PostHog and worked with PMs and designers to add business-level signals and analytics.
ReactTypeScriptDesign systemVirtualizationMicro frontendsNxPostHog

Kami Vision India

2022 — 2024 · Bengaluru, India

Senior Software Engineer, Frontend

Kami Cloud · B2C

  • Rewrote the Vue.js app in React and built a reusable design system under it with Storybook and custom theming.
  • Added responsive layouts, internationalization, code splitting, lazy loading and Stripe payments, with integration tests behind them.

Internal Dashboard · B2B

  • Built the org-facing dashboard in Next.js with SSR and SSG, plus TypeScript transformers that normalized inconsistent API responses into one shape.
  • Set up the shared design system and testing approach the internal teams onboarded onto.

Moved Vue.js React

ReactNext.jsVue.jsTypeScriptStorybookStripei18nSSR / SSG

Milky Way AI

2022 · Remote, India

Freelance Frontend Engineer

  • Built a dashboard that automates stock replenishment and gives retail operations a real-time read on inventory.

Quizizz

2021 — 2022 · Remote

Freelance Frontend Engineer

  • Worked the migration off Krafty onto Nuxt and built the complex UI components that came with it.

Moved Krafty Nuxt

Vue.jsNuxt

Klinify

2019 — 2021 · Remote, India

Frontend Engineer

  • Cut dashboard load time by 45% with memoization, API optimizations and code splitting.
  • Built a configurable design system carrying per-clinic branding, themes and layouts, with SSR and SSG for the dynamic content and SEO.
  • Added internationalization, Flask APIs and CouchDB map-reduce transformations.
ReactSSR / SSGDesign systemFlaskCouchDBi18n

Appknox

2019 · Bangalore, India

Frontend Engineer

  • Built the Ember.js interface for running and managing application security scans, so customers could run several scans in parallel instead of one at a time. Throughput went up, turnaround came down.
  • 25 pull requests merged into appknox/irene, their open source frontend.
Ember.jsAppSecOpen source

Squadcast

2018 — 2019 · Bangalore, India

Software Engineer Intern

  • Built a bidirectional sync between Slack and Squadcast chat so incident updates landed in real time on both sides.
  • Wrote Enzyme tests across the frontend, shipped serverless Kubeless microservices, and stood up an Artifactory registry for private npm packages.
ReactNode.jsKubelessEnzymeArtifactory

Side projects

Entirely mine, so I can show all of it. One is running live below.

Project

AgentGate

Permission control for AI agents over MCP. It sits between an agent and a server like GitHub, Stripe or Slack, enforces per-tool permissions, scans responses for security problems, logs every decision, and revokes access instantly. The agent never gets the real API key, only a gateway URL.

Give an agent a GitHub token today and it gets everything that token allows. There's no way to say “read repos, never delete them.” This is my answer to that.

TypeScriptMCPAccess controlAudit log

Project

Bandhu

A companion-first mental health check-in app for India. The idea is that it should feel like texting a friend, not opening a treatment tool. FastAPI with async SQLAlchemy and Postgres/pgvector on the back, React 19, Vite, Tailwind v4 and shadcn/ui on the front, NVIDIA NIM and Langfuse in the pipeline.

It's a prototype and I say so in the README. Anything safety-critical, crisis-language detection and clinical suggestions, sits behind a pipeline that has to be reviewed before it ships. The engineering docs cover the pipeline design, the vector schema and the manual QA cases.

React 19FastAPIpgvectorRAGLangfuseTailwind v4

The real app, running here. Try it.

Open source

Svelte & Qwik core

5 pull requests merged into Svelte and one into Qwik: element bindings, a contenteditable regression, beforeUpdate firing twice, onDestroy ordering, each-block bindings with spread syntax. Small fixes, but they meant reading someone else's compiler until the bug made sense.

SvelteQwikCompilers

2017 — 2018

coala, GSoC and Code-in

Google Summer of Code 2018. Wrote a Python tool that drops you straight into an analyzer's code and steps through it with a debugger interface like pdb, so debugging an analyzer got about as easy as writing one.

Google Code-in mentor, two terms, with coala, the open source static analysis org. Also 2 merged fixes into man-group/pytest-plugins and an ESLint plugin of my own for nested-if detection.

PythonStatic analysisMentoring

Toolkit

Frontend
React.js, Next.js, Vue.js, TypeScript, JavaScript, HTML5, CSS3, Tailwind CSS
State & data
Redux, Zustand, React Query, REST APIs
Testing
Jest, Cypress, Storybook, Enzyme
Architecture
Design systems, micro frontends, Nx monorepo, SSR, SSG, component libraries, i18n, virtualization, performance work
Backend
FastAPI, Python, Node.js, PostgreSQL, NoSQL, Swagger
AI & telemetry
Retrieval-augmented generation, Langfuse, Grafana, telemetry, MCP
Tools
Git, CI/CD, Webpack, Vite, Jira, AWS
UI / UX
Responsive design, accessibility (a11y), cross-browser compatibility
Languages
English (full professional), Hindi (full professional)

Education and what I'm on now

2015 — 2019
B.Tech, Computer Science and Engineering. Shri Mata Vaishno Devi University, Jammu & Kashmir
Certificates
DeepLearning.AI: Neural Networks and Deep Learning · DeepLearning.AI: Machine Learning · Google: Foundations of Project Management · Google: Project Initiation
Right now
Going deep on agentic AI and RAG, which is where AgentGate and Bandhu came from. What I actually want to know is what these systems need from a frontend, because that answer is still being worked out.
Off the clock
Runner, paragliding pilot, licensed skydiver. I keep a CSS-only art gallery on CodePen, because I'd rather battle CSS than DS Algo.