Ritik Agrawal

Senior Software Engineer (Frontend) · 5 years · Bengaluru

About

I build fast, calm interfaces for real-time and offline-first apps. Mostly React, TypeScript and Electron, with enough Node.js to wire them to the backend.

Skills

Frontend
React, Vue, Redux, Vuex, TypeScript, D3, ECharts, AG Grid, Tailwind, i18n
Desktop and real-time
Electron, WebSockets, gRPC, PouchDB, IPC, Worker threads
Backend
Node.js, REST, Postgres, Redis
Tooling
Vite, Webpack, Module Federation, Vitest, Jest, Playwright, CI/CD

Achievements

  • ADstar Award · Akridata, for impactful technical contributions
  • LeetCode 1687 · Top 15% in weekly contests · CodeChef 4★ · Codeforces 1257
  • Google Kick Start 2021 · Round C, rank 978 of ~7.9K
  • 1,000+ problems solved · LeetCode, Codeforces, CodeChef, HackerRank

Off the clock

Video games, board games, badminton, travel, and folding origami frogs.

Education

B.Tech, Computer Science and Engineering
Jaypee Institute of Information Technology, Noida · 2018 – 2022

Experience

  1. Senior Software Engineer (Frontend) · Impact Analytics

    May 2026 – now · Bengaluru

    Microfrontends with Webpack Module Federation; React performance work on complex components; structured domain knowledge for AI-assisted engineering.

  2. Software Engineer II · Akridata

    Jan 2024 – Apr 2026 · Bengaluru

    Led Vision Assist (Electron) and Vision Command (web) for 20+ global manufacturers: inspection accuracy +30%, defect-monitoring adoption +25%. Architected a desktop UI handling 6,000+ image events a day over gRPC and Triton, kept responsive with IPC, worker threads and batching. Offline-first workflows with auto-recovery; D3 and ECharts image analysis; mentored peers.

  3. Software Engineer I · Akridata

    May 2022 – Dec 2023 · Remote

    Data-heavy features in React, Vue, Redux and Vuex; broke a legacy monolith into modular, domain-driven pieces; cut initial load ~30% (3.2s → 2.2s) with Vite and code splitting.

  4. Frontend Intern · Akridata

    Dec 2021 – May 2022 · Remote

    CRUD workflows and RBAC user management that cut onboarding issues ~40%.

Projects

  • Vision Assist

    Akridata · 2024 – 26

    The Electron app inspectors use on the factory floor, reviewing images as they come off the line. It has to stay quick at thousands of image events a day, and keep working when the network doesn't.

    My part. I led the desktop app: the Electron architecture, the split between the main and render processes, and the path an image event takes from the inference service to the screen. I mentored the peers who built on top of it.

    What I decided

    • Kept the gRPC stream out of the render process and talked to the UI over IPC, so decoding an event never blocks a frame.
    • Batched incoming events and moved the heavy work to worker threads and async pipelines, so a burst arrives as steady updates instead of a freeze.
    • Made the inspection workflows offline-first with auto-recovery, so work continues through a network drop and reconciles when the connection returns.

    What came of it

    • Inspection accuracy up 30%, for 20+ global manufacturers.
    • 6,000+ image events a day, handled without the desktop UI stalling.
    • Offline-first workflows with auto-recovery on the factory floor.

    Electron · React · TypeScript · gRPC · Triton · IPC · Worker threads

  • Vision Command

    Akridata · 2024 – 26

    The web dashboard the same manufacturers use to watch quality across their lines: heatmaps, zoomable image views and live metrics, in the browser.

    My part. I led the web app, and built the visualisation layer myself: the heatmaps, the bounding-box overlays on inspection images, the zoomable views, and the live metrics the quality teams watch.

    What I decided

    • Used D3 where the drawing needed exact control (heatmaps, bounding boxes over the image) and ECharts where a standard chart was already the right answer — less custom code to maintain.
    • Fed the dashboard from live updates over WebSockets, so the quality view matches the line without anyone reaching for refresh.
    • Made the image views zoomable in place, so a defect can be inspected without leaving the dashboard.

    What came of it

    • Defect-monitoring adoption up 25%.
    • Live quality views for 20+ global manufacturers.
    • Heatmaps, bounding boxes and zoomable image views in D3 and ECharts.

    React · TypeScript · D3 · ECharts · WebSockets

  • Microfrontends

    Impact Analytics · 2026 – now

    The product is split into microfrontends so separate teams can deliver independently. I work on the seams: module boundaries, shared dependencies and how the pieces load together.

    My part. I work on Module Federation and the microfrontend patterns around it — where the module boundaries go, which dependencies are shared, and how each slice ships on its own. I also chase down unnecessary re-renders in the heavier React components, and structure the domain knowledge across modules so AI-assisted debugging is actually useful.

    What I decided

    • Share a dependency only when the download savings beat the runtime coupling it creates — the reasoning I wrote up on Medium.
    • Draw module boundaries along the domain, so a team can release its slice without a coordinated deploy.
    • Profile before optimising: find the re-renders that actually cost frames in complex components, rather than memoising everything.

    What came of it

    • Independent delivery for separate product teams.
    • Two write-ups on Module Federation's shared-dependency trade-offs.

    React · TypeScript · Module Federation · Webpack

Writing