Smarter HR
KBZ Bank's internal HR platform, built to replace a legacy HRIS used by more than 13,000 employees. I worked on its backend and React frontend, and built the location-based attendance and leave modules.
- My contribution
- Attendance and leave modules
- Built at
- KBZ Bank
- Internal system. Source is private.
- Core stack
- C#ASP.NET CoreEF CoreReactMSSQLAWS
How it fits together
The main pieces, from the screens people use down to the database.
React
- HR web app
ASP.NET Core
One modular monolith in C#, hosted on AWS
- Attendance moduleRadius check against approved sites
- Leave moduleBalance, overlap and approval rules
MSSQL
Accessed through Entity Framework Core
Engineering decisions
Attendance tied to real company sites
Employees work across multiple company sites, and attendance should only be recorded from an approved one.
Each site stores a location and an allowed radius. On check-in, the API measures the distance from the device's location to each approved site and rejects the check-in if it falls outside every radius. I built it end to end, from the database schema through the API to the React screens.
Leave requests that follow the rules
A leave request has to respect the employee's remaining balance, the leave already on record and the approval process.
The leave module rejects requests that exceed the remaining balance or overlap existing leave, and sends valid requests through approval before they count.
Moving off a legacy HRIS
A legacy HRIS used by more than 13,000 employees needed to move to a modern stack.
As part of the migration, I rebuilt existing HRIS features in C#, ASP.NET Core and Entity Framework Core, with the matching React screens.
Modules inside one application
Smarter HR is a modular monolith: attendance, leave and the other HR features ship as one ASP.NET Core application on AWS.
I built the attendance and leave modules inside it, with a focus on maintainability and reliable integration with the rest of the platform.
From requirements to release
In a large enterprise, a feature passes through many teams before it reaches employees.
I owned several features end to end, from requirements through implementation to production release, and covered their backend logic with unit tests before release. I worked closely with cross-functional teams throughout.