Gaganpreet Kaur Kalsi

Frontend platform engineer

Gaganpreet Kaur Kalsi

I lead web infrastructure at Toddle, keeping the builds, releases and dependencies of a 30,000-module React app healthy for more than 2,500 schools.

I make big frontends quicker to build, safer to ship and easier to work in.

I’m a frontend platform engineer at Toddle, a teaching and learning platform used by more than 2,500 schools. I lead a small team of three that looks after our build system, release pipeline, dependencies and codebase structure, and every new dependency goes past me before it ships.

My love for art is what drew me to frontend engineering in the first place: it’s where code turns into something people can see and use. These days I spend most of my time under the hood, but that eye for detail comes with me.

I joined as an intern in 2022 and have been promoted four times since. Along the way I looked after the trickiest component in our design system, and the equation editor students use in classrooms around the world.

The work I enjoy most is the slow, careful kind: following thousands of circular imports back to where they began, and making sure they never creep back in.

Gaganpreet Kaur Kalsi, smiling, in a cream sweater and camel coat in front of a painted heritage wall
Currently
Software Engineer 2, Toddle (remote)
Based in
Chandigarh, India
Focus
Build systems, CI/CD, dependency health, frontend architecture
Education
BE Computer Science (AI & ML), Chandigarh University, CGPA 8.61

How I work

  • “An eye for detail.”

    The phrase my team lead uses most when describing me

    I notice the small things: tiny bugs, odd behaviour, anything that looks even slightly off. It’s the same habit that keeps one stray dot from ruining a mandala.

  • I don’t give up easily

    Once a problem is mine, I stay with it until it’s solved. Almost everything I’ve taken on has ended that way, and the rare exceptions came down to things outside my control.

  • Done means done

    I think through the edge cases before I write the code and test thoroughly after, so my work rarely needs a second visit. I’d rather put the effort in up front and ship with real confidence.

  • Trusted with the hard ones

    When something needs extra care, deep research or the best possible solution, it tends to land on my plate. People trust me with the work that can’t go wrong.

  • Work that sets the standard

    My work is often shared with new joiners and teammates as the reference for how something should be done.

Selected work

A few things I’ve worked on at Toddle, in a React codebase of more than 30,000 modules.

Builds in ten minutes instead of thirty

Our production builds had slowly crept past 30 minutes, and every release paid for it. I ran JavaScript and SCSS processing in parallel with thread-loader, swapped Terser for the much faster SWC, moved CI onto bigger machines, and guided a teammate as they built a custom compression plugin.

Webpack, SWC, thread-loader, CI

Ship exactly what you tested

We used to rebuild the app for every production release, so what went live was never the exact build we had tested. I designed a pipeline that promotes the tested pre-production build straight to production instead. Releases got quicker, and nothing ships now without passing pre-production first. I walked our engineering leads and directors through the design.

CI/CD, release engineering, build artifacts

Untangling 6,000 circular dependencies

Circular imports were the real reason we couldn’t move to Vite, Nx or Module Federation. I removed barrel files, worked through the chains in groups, moved code to where it actually belonged and split up files that had grown too big. Earlier cleanups had always slipped back, so I added a CI check that blocks any pull request bringing in a new cycle.

Dependency graph analysis, Webpack, CI guardrails

Zero open vulnerabilities, and Google CASA led end to end

I removed around 50 packages nobody was using, upgraded the vulnerable ones across major versions and finished our move from webpack 4 to 5. I also got rid of global lodash, which closed a quiet security gap. Then I led our Google CASA 2026 (Cloud Application Security Assessment) end to end. In earlier years, my team had only handled the Software Composition Analysis (SCA) findings from our Fluid Attacks scans. This time we took on both SCA and Static Application Security Testing (SAST), and fixed the issues from both for good. CASA is required every year to keep our access to Google’s APIs.

npm, SCA, SAST, Google CASA, webpack 5

0

open dependency vulnerabilities left in the web app

A lighter local dev server

I led an effort, built by an engineer I was mentoring, to make the local dev server compile only the parts of the app you actually open. Startup now skips about 10,000 modules, takes roughly half the time and uses far less memory.

Webpack lazy compilation, developer experience, mentoring

A cleanup that had stalled twice

Two earlier attempts to clear out dead code had run out of steam. I wrote AI-assisted scripts to find what was truly unused, then removed it safely from more than 3,000 files.

SCSS, codebase analysis, AI-assisted tooling

5,000
SCSS classes nobody used
134
stylesheets we no longer needed
442
files in an old module we retired

Product and open source

Design system Table

Our most complex design system component. I added nested headers to any depth, sticky columns that carry through them, multi-level sorting and filtering, and a dark version, and became its sole owner. n number of headers wasn't supported by any design library at that time.

MathLive equation editor

From 2022 to 2025 I looked after the equation editor schools use around the world. I added a chemistry tab, drag support and cross-browser alignment fixes, and upgraded MathLive itself which was honestly difficult as there was always something which we didn't want and needed a workaround.

React 17 upgrade

I led our move from React 16.9 to 17: checking every package, updating the code and rolling it out in two phases with testers from five teams. Fewer than 10 issues came up before release. Later on I shadowed the React 17 to 18 shift making sure everything is taken care of from packages to codebase changes.

Localisation and accessibility

I built language support into the design system, researched on how to achieve right-to-left layouts correctly for schools that teach in Arabic, and helped put together our first VPAT accessibility report which needed a full read through and understanding of WCAG guidelines.

GirlScript Summer of Code

Four merged pull requests that added search, loading states and leaderboard pagination to the GirlScript website.

Working with teams

  • TeachingI’ve run sessions on npm, lock files, tree-shaking and bundle analysis for about 200 engineers, and a deep dive on circular dependencies for 20 senior engineers and leads.
  • ReviewingI’ve been a code owner since 2023. Every new dependency gets my review for security, upkeep, bundle size and whether there’s a better option.
  • AdvisingOther teams come to me when they’re picking a bundler or setting up guardrails, including for a brand-new product built from scratch.
  • Hiring and mentoringI interview engineers, have helped onboard people into two teams, and mentor teammates through infrastructure projects.

Experience

  1. Software Engineer 2 · Toddle

    Leading the web infrastructure team. Shipped build promotion, made builds about three times faster and led Google CASA 2026.

  2. Software Engineer · Toddle

    Brought circular dependencies under 500 and kept them there with a CI check. Evaluated new build tools and ran training across engineering.

  3. Associate Software Engineer · Toddle

    Cleared every open vulnerability, finished the webpack 5 migration and kicked off lazy compilation. Became a code owner and an interviewer.

  4. Frontend Developer · Toddle

    Started as an intern and stayed on full time. Built out the design system Table, led the React 17 upgrade and became the first engineer on web infrastructure.

  5. Frontend Developer Intern · Tekie

    Built dashboards in React and GraphQL from Figma designs, and prototyped Razorpay payments.

Skills

Build and infrastructure

  • Webpack
  • Vite
  • SWC
  • thread-loader
  • Nx
  • Module Federation
  • npm
  • CI/CD
  • Bundle optimisation
  • Dependency graphs

Languages and frameworks

  • JavaScript
  • TypeScript
  • React
  • Redux
  • GraphQL
  • Apollo
  • Node.js
  • HTML
  • CSS
  • Sass
  • Three.js

Security and quality

  • Google CASA
  • SCA
  • SAST
  • Vulnerability remediation
  • Code review
  • Performance benchmarking
  • WCAG
  • VPAT

Tools and practice

  • Git
  • Storybook
  • Sentry
  • Jira
  • Design systems
  • Localisation
  • Documentation
  • Mentoring
  • Interviewing

Off the clock

I’ve always liked going fast: the 100m on school sports day back then, production builds now. Taking care of my health is what keeps me going on both sides of my life.

  • TrainingI go to the gym regularly. Strength, consistency and proper rest matter to me as much as any sprint did.
  • Track and courtI ran the 100m and relays at school and played on the handball team. Relays taught me early that the handoff can win or lose the race.
  • EaselMandalas, flowers and ink-and-wash sketches. Slow, quiet hours that balance out the fast ones.

A few fun facts

  • My art helped me get hired

    Believe it or not, my art was one of the reasons Toddle hired me. An eye for detail goes a long way in a design system.

  • From intern to gatekeeper

    I joined Toddle as an intern in 2022. Four promotions later, every new dependency in the product goes past me.

  • Real graphs over puzzle graphs

    I’ve never been able to stick with interview-style puzzles. But hand me 6,000 circular imports in a real codebase and I’ll happily stay with it for months.

  • Die-hard Potterhead

    Harry Potter fan through and through, so this page knows a couple of spells. Type lumos or nox anywhere, or tap the bolt.

Hiring for frontend platform or web infrastructure? Let’s talk.