Manufacturing · 2026
HR, attendance and payroll system
An HR system for a manufacturer with plants and offices in two countries. It manages employee files and contracts, shift rosters, attendance from devices and a mobile app, leave and overtime approvals, and a monthly payroll that follows each country’s rules.
Built by
- Client
- Withheld at the client’s request
- Countries
- Egypt · Saudi Arabia
- Platforms
- Web · iOS · Android
- Typical timeline
- 4–6 months
- Squad
- 7 people · 5 disciplines
Technologies
- Laravel
- Next.js
- Flutter
- PostgreSQL
- Redis
- Attendance devices API
- Firebase (FCM)
- Docker
The product
10 images01
Brief
Payroll took a week and still had errors.
Context
The company runs shifts at its plants and office hours elsewhere. Attendance came from fingerprint devices, paper sheets and WhatsApp messages from supervisors.
Problem
HR merged spreadsheets by hand every month, overtime was disputed, and the payroll rules for two countries lived in one person’s head.
Goals
- Attendance from every source in one place
- Leave and overtime approved in the app
- Payroll rules written down, per country
- Payslips employees can trust
02
Team
The squad behind it.
| Tech leadArchitecture and payroll rules per country | ×1 | Architecture and payroll rules per country | Senior | |
|---|---|---|---|---|
| Product designerEmployee self-service and HR flows | ×1 | Employee self-service and HR flows | Senior | |
| Frontend engineerHR and payroll web app | ×1 | HR and payroll web app | Senior | |
| Mobile engineerEmployee app: check-in, leave and payslips | ×1 | Employee app: check-in, leave and payslips | Senior | |
| Backend engineersAttendance, the payroll engine and integrations | ×2 | Attendance, the payroll engine and integrations | Senior | |
| QA engineerPayroll test cases and release checks | ×1 | Payroll test cases and release checks | Senior |
03
UI/UX design
Self-service first, HR second.
Who worked on it
Most HR questions are “how many leave days do I have?” and “why is my pay different?”. The employee app answers both, so HR spends its time on exceptions instead of repeating answers.
- Leave balance up frontBefore the request, not after.
- Payslip explainedEach deduction and allowance labelled.
- Approvals in one tapManagers approve from the notification.
04
Frontend
The payroll run as a checklist.
Who worked on it
HR runs payroll step by step: lock attendance, review exceptions, approve overtime, preview the run, then publish payslips. Every step shows what changed since last month.
- Month-on-month changesDifferences highlighted per employee.
- Bank filesSalary transfer files exported per bank.
- Locked periodsNo edits after payroll is approved.
05
Mobile
Check in at the gate, not in a queue.
Who worked on it
Office and field staff check in from the app within the site’s location, while plant workers keep their fingerprint devices. Both feed the same attendance record, and employees request leave and view payslips in the same app.
- Location check-inOnly inside the site’s boundary.
- Works offlineCheck-ins sync when the signal returns.
- Arabic and EnglishEach employee picks a language.
06
Backend & architecture
Payroll rules as code, per country.
Who worked on it
Each country’s rules — social insurance, tax, end of service and overtime rates — are written as versioned rule sets with their own tests. Attendance from devices and the app is merged into one timeline per employee before any calculation runs.
Decision 1
Versioned rule sets per country
When the law changes, past payrolls must still recalculate the same.
Trade-off · Each legal change is a small release with tests.
Decision 2
One attendance timeline per employee
Devices, the app and manual fixes must not disagree.
Trade-off · Late device uploads trigger a recalculation.
Decision 3
Approved payroll runs never change
Payslips and bank files must always match.
Trade-off · Corrections go into next month as adjustments.
07
QA
Every payroll rule has a test case.
Who worked on it
HR and finance wrote example employees with known results: new joiners, leavers, overtime, unpaid leave and mid-month raises. Every release recalculates them, and they must match to the last decimal.
- Known-result employeesWritten with HR and finance.
- Parallel runOld and new payroll compared before go-live.
- Device testsCheck-in on real phones and sites.
Tell us what you’re building.
A short message is enough. A senior engineer replies within 1 working day.
