Chapter 3.1:
Side Story: The Payroll Pioneer
Gaji Cermat (Jakarta) - February 2021 - June 2021
In the midst of my tenure at Kelola Group, I embarked on another freelance adventure with Gaji Cermat, a startup in the outsourcing industry based in Jakarta. They needed someone to expand their payroll services, and I was up for the challenge. This opportunity promised to test my skills in a new domain - financial technology.
This wasn't starting from scratch – Gaji Cermat had an existing service that needed expansion. My task was to build all the new features for their payroll system. Armed with React and working with their provided API, I dove into the project headfirst. The complexity of payroll systems, with their myriad of calculations and regulations, presented a steep learning curve.
One of the first challenges I faced was understanding the intricacies of payroll processing. I had to quickly familiarize myself with concepts like tax withholdings, overtime calculations, and various deductions. This required close collaboration with Gaji Cermat's finance team and a lot of late-night reading on Indonesian labor laws.
The user interface design was crucial for this project. We needed to present complex financial information in a clear, easily digestible format. I worked on creating intuitive dashboards that could display an employee's earnings, deductions, and net pay at a glance, while also providing drill-down capabilities for more detailed information.
One of the most challenging aspects was ensuring the accuracy of all calculations. When dealing with people's salaries, there's zero room for error. I implemented extensive unit testing for all calculation functions and worked closely with the QA team to create comprehensive test scenarios.
Security was another critical concern. We were handling sensitive personal and financial data, so I had to be extra cautious in how this information was transmitted and displayed. I implemented strict input validation, used secure API calls, and ensured that sensitive data was never stored in the frontend state.
The project also required integration with various third-party services for things like time tracking and benefits management. This pushed me to become proficient in working with different API structures and handling data inconsistencies between systems.
Performance optimization was crucial, especially when generating reports for large companies with hundreds of employees. I implemented lazy loading techniques and optimized our React components to handle large datasets efficiently.
It was a whirlwind four months. I was juggling my responsibilities at Kelola Group while burning the midnight oil to deliver for Gaji Cermat. The pressure was on, but I thrived in it. By the time I wrapped up my contract, I had delivered 90% of the required features.
This experience was a masterclass in time management and prioritization. Balancing this project with my full-time job pushed me to my limits, but it also taught me valuable lessons about efficiency and focus. I learned to ruthlessly prioritize tasks and communicate clearly about timelines and expectations.
Working on this payroll system deepened my understanding of financial systems and the intricacies of payroll processing. The skills I honed here – working with sensitive data, ensuring accuracy in complex calculations, and creating user-friendly interfaces for complex processes – would prove invaluable in my future roles.
The Gaji Cermat project was more than just a side gig; it was a pivotal experience that broadened my expertise beyond traditional web development. It gave me a taste of fintech and opened my eyes to the critical role that well-designed, accurate software plays in people's financial lives. This experience would continue to influence my approach to development, especially when dealing with data-sensitive applications in the future.