FinTech Payroll Cloud Solution: Full Technical Breakdown
How the Scalac team helped Bexio people be more competitive, by developing top-class payroll solution, positively influencing the work culture and the overall performance of the Bexio team.
The origin of the Payroll accounting system was the application built around a team of three founding partners. During the process of evolving, Bexio asked Scalac for help in the further development of a convenient (easy-to-use and efficient) payroll solution for small and medium-sized companies. We were happy to pick up the gauntlet, and eventually, our developers joined the Bexio team in June 2018, and so began our mutual endeavor to build a Payroll solution from scratch. After accepting the challenge, we brought an early stage product to a core part of Bexio systems and eventually were able to replace the team of founders
Under the leadership of the Bexio Product Owner and Architects, Scalac engineers, together with the rest of the Bexio team, developed a Payroll accounting solution and integrated it with the rest of the Bexio environment.
During the first year of commitment, the following technologies were engaged:
- Backend: Scala, Play, Akka HTTP, Akka Actors, microservices
- Pipelines / Streaming: Kafka, Strimzi
- Frontend: Angular 9.x
- Database: Postgres, Slick, Quill
- Continuous Integration & Delivery Platform: Circle CI
Daily, we used Kanban as an Agile methodology, which allowed us to have control over the whole development process and to facilitate the increment releases – we even managed to deliver particular releases several times a week.
At the beginning of the second year, after a successful first year of engagement and as a result of a request from Bexio, we strengthened the Payroll team with a Product Owner. He took responsibility for gathering and creating well-defined business requirements as well as rules of communication, which organized flows within the Payroll team. As a natural result, the rest of our team also took more responsibility and managed to seamlessly integrate even deeper within the core of the Bexio teams. As a consequence, we spread our commitment in the new sphere of activity – DevOps engineering – and eventually helped during the migration of production & dev environments into the Google Cloud Platform.
All of the developers acted proactively, and everyone partially took on an additional role as a DevOps engineer. Along with gaining the necessary knowledge about the Google Cloud Platform and the Kubernetes environment, we also migrated from Scala 2.11 up to Scala 2.12, upgrading sbt 1.x, the overhaul of e2e tests to run tests on Cypress.
The sphere of engaged technologies eventually grew to include:
- Cloud Environment: Google Cloud Platform, Kubernetes
- Cloud Supporting Tools: New Relic, Terraform, Helm Charts (Kubernetes), HashiCorp Vault
The key results we have achieved so far, during our contribution to the Payroll project are:
Benefits for Bexio
development, and implementation of the Payroll cloud application, with the following functionality:
Online payroll accounting
Cloud-based payslip processing – easy-to-use and always accessible. Tailored to small businesses, start-ups, and SMEs in Switzerland.
Quick payslip in the cloud
Simple processing of monthly payroll accounts: Process the payslips of all your employees with a single click – completely interactively and intuitively.
Monthly, hourly wages or commissions
The wages are automatically posted at the click of a mouse due to the integration of payroll accounting into financial accounting.
Automatic calculation of all social security funds
Individual wage type master
Integration of payroll accounting in financial accounting
Forwarding of wage payments to e-banking
Electronic forwarding of wage reports
Timeline for overview
The timeline of each employee swiftly provides you with information about past or future adjustments in the employee data.
Backups and software updates
Important achievements by the Scalac team:
The team developed a suitable day-to-day way of working, which became a good role model for other Bexio teams.
Proactive attitude of all team members:
- Every single day, all of the engineers searched for and proposed the best solutions
- The Product Owner, with a business-oriented approach, helped Bexio to reach their goals
- We dared to pick up the gauntlets
- The Scala developers dared to pick up FrontEnd tasks and to become FullStack Developers
- We took on a DevOps role, which emerged as a need from Bexio
- Scalac developed solidly, according to the aimed goals.
- We communicated directly with the Bexio teams, as well as internally
- We had one-week on-site meetings every two months, to strengthen cooperation
- 1 x Product Owner / Business Analyst
- 1 x Senior Scala Engineer / DevOps Engineer
- 2 x Scala Engineers / Full Stack Engineers
- 1 x Frontend / Full Stack Engineer