Governance, risk, and compliance management for enterprise teams
Role
Frontend Developer
Timeline
May 2025 – Present
Team
Frontend developer, collaborating with backend engineers and designers

6
Modules Delivered
Frontend Developer
Role
In Production
Status
A Governance, Risk, and Compliance (GRC) platform that gives enterprise teams one system to manage organizational policies, track risk, run compliance workflows, and generate audit-ready reporting.
Compliance and risk teams needed a way to manage governance policies, track risk items, and run audit and compliance workflows without relying on scattered spreadsheets and documents. The platform needed to present large, filterable datasets clearly while keeping the interface fast enough for daily use.
Governance and risk registers could contain large volumes of records, and the tables needed to stay fast and filterable rather than degrading as data grew.
Governance, Risk Management, Compliance, and Audit Management each needed their own filtered views, but re-implementing filtering and search logic per module would have meant duplicating the same problem six times.
Rather than build separate data-table and filtering logic per module, the platform's Governance, Risk, Compliance, and Audit Management screens all consume the same reusable table component, configured per module rather than reimplemented per module. Reporting reads from the same underlying data each module manages, so summary views stay consistent with the detail views feeding into them.
Each GRC module (Governance, Risk Management, Compliance, Audit Management, Policy Management) follows the same feature-folder pattern, built around a shared, configurable data-table component that handles server-side pagination, filtering, and search once, rather than per module. This is what made it practical to support six distinct modules without six different approaches to the same underlying UI problem.
src/
├─ app/
│ ├─ governance/page.tsx
│ ├─ risk/page.tsx
│ ├─ compliance/page.tsx
│ ├─ audit/page.tsx
│ └─ reporting/page.tsx
├─ features/
│ ├─ governance/
│ ├─ risk-management/
│ ├─ compliance/
│ ├─ audit-management/
│ ├─ policy-management/
│ └─ reporting/
├─ components/
│ ├─ ui/
│ └─ data-table/ # shared, config-driven across modules
├─ lib/api-client.tsEach module manages its own Redux Toolkit slice for its specific dataset (risk items, policies, audit entries), while the shared data-table component receives configuration — columns, filters, sort — as props rather than owning module-specific logic itself. This kept the six modules independently maintainable while sharing one well-tested table implementation.
Each module connects to its own REST endpoints (governance, risk, compliance, audit, policy, reporting), with server-side pagination and filtering so large datasets never needed to be loaded entirely into the client.
Authentication follows the organization's standard JWT-based pattern, with role-based access distinguishing standard users from compliance administrators for sensitive policy and audit views.
Moved large governance and risk datasets from client-side filtering to server-side pagination and query-driven filtering.
Kept table interactions fast regardless of underlying dataset size
Built one reusable data-table component used by all six modules instead of a bespoke table per module.
Improved rendering consistency and cut duplicated table logic across the platform
Gallery coming soon.