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
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.
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.
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.
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
- Module Federation shared: Versioning, Trade-offs, and When to Use It · 25 Sept 2026 · 5 min read
- The 7 MB Problem: Sharing Dependencies in Module Federation · 13 Sept 2026 · 5 min read