
Project illustration; identifying client material is withheld.
Giving workers timely access to payroll information and support
Worker mobile app
On payday, workers frequently contacted customer service to ask whether they had been paid or why money had not arrived yet. Payment timing could vary during the day, so many of those calls were driven by uncertainty rather than an actual problem.
I built a cross-platform payroll app that gave workers a clearer, more immediate source of information. The initial aim was simple: close the information gap that prompted avoidable calls.
Information at the right moment
Workers could securely access current and historical payslips from their phone. When a new payslip became available, a push notification gave them a proactive signal instead of leaving them to repeatedly check or contact support.
Notifications were therefore not included as a generic engagement feature. They addressed a specific operational problem: people needed reassurance at a moment when the absence of information quickly became a phone call.
From payslips to self-service
The app developed into a broader worker service. Registration and onboarding could begin in the app, and a request hub gave users a structured way to raise common administrative issues and follow their progress.
This moved routine interactions away from an assortment of calls, messages, and forms and into one consistent journey. It also gave the payroll provider a direct channel for useful updates rather than relying on workers to seek information themselves.
Building on existing payroll operations
As the sole developer, I delivered and published the application for iOS and Android through Apple’s App Store and Google Play, using a shared React Native and Expo codebase. One codebase supported both platforms, making the product faster and less expensive to build and maintain than two separate native applications.
Expo EAS Update allowed compatible JavaScript, styling, and asset changes to be delivered over the air between store releases. Small fixes and interface or content changes could reach users quickly without waiting for a new app binary, while changes to native code still followed the normal store-release process.
I integrated it with the organisation’s existing payroll system so that payslip information could appear in the mobile experience without introducing another manual process for the payroll team. Features and fixes could also be developed once and made available across both platforms.
The product combined secure account access, payroll synchronisation, push notifications, onboarding, and support-request workflows. It now handles access to more than 10,000 payslips each month.
A shared React Native and Expo codebase supported both mobile platforms, with compatible updates delivered between store releases.
The outcome
The application reduced routine customer-service enquiries by making payroll information easier to access and by notifying workers at the moment new information became available.
More broadly, the work shows how a relatively focused product intervention can improve an operational process. The useful feature was not simply putting payslips on a phone; it was understanding why people called and giving them the right signal before they needed to ask.
The client identity, original product screens, and named system integrations have been withheld.
Have a project in mind?
Send me the brief, rough notes, or problem you are trying to solve.
More examples

Payroll data reconciliation
A large-scale payroll reconciliation project that uncovered undocumented record revisions, repaired high-confidence mismatches, and tested the reliability of data across several payroll models.
Workforce services

Contact data migration and synchronisation
A migration and ongoing integration that transformed 40,000 to 50,000 employment-based CRM records into deduplicated person-level contacts for a multichannel customer-service platform.
Customer operations
