Frontend Team Lead · PDP2021 — 2024
Turning an ERP into something you configure instead of code
ProblemAn ERP and LMS used by 130,000+ people across 17 modules and five companies, where every department wanted the same records shown a different way — different columns, different order, different filters. Building each of those screens by hand would have been endless, and no two people would ever agree on one layout anyway.
What I builtA config-driven layer we called the generic view: a page is defined by a backend endpoint plus a view configuration, and saved templates — column sets, ordering, filters — attach to that page and can be shared between people, so each team keeps its own way of seeing the same data. At its centre is a grid I built from scratch: row virtualization for thousands of rows, inline editing with rich field types, drag-and-drop and pinnable columns, new columns created at runtime and synced to the backend, a filter system you can compose freely (ranges, operators, multi-select), inline image, audio and PDF handling, and modals injected per page to run actions against the rows. Around it I built a browser-style tab shell and the permission layer behind 38+ roles, reaching down to individual pages, actions and columns — all with as few third-party dependencies as we could manage.
Where it standsThe layer now powers 100+ pages across five companies, and adding a screen became a configuration job rather than a frontend project. I grew from developer to team lead of five engineers while it took shape.
ReactReduxTypeScriptAnt Design