2020–2021

eBlox payroll web transition

Bringing a mature C++ payroll application into a web-accessible delivery model with synchronized data, search and production observability.

SD Worx Belgium
RoleSoftware engineer
Period2020–2021
Technology
  • C++
  • .NET
  • Angular
  • Thinfinity
  • RabbitMQ
  • Btrieve
  • Microsoft SQL Server
  • Elasticsearch
  • Dynatrace
  • Splunk
  • Azure DevOps

The challenge

eBlox Payroll combined a mature C++ application with Btrieve data and business behaviour that could not simply be recreated in a new system. At the same time, users needed web access and the platform needed the operational qualities expected from an enterprise application. The project therefore had to modernize the way the product was delivered without discarding the proven payroll core behind it.

Role in the delivery team

David worked as a software engineer in a ten-person Agile Scrum team. His contribution crossed several parts of the solution: application virtualization, the Angular web surface, data synchronization, monitoring and delivery automation. Working across those boundaries was important because the user experience, search data and operational tooling all depended on the same underlying desktop application remaining reliable.

Making the desktop application web-accessible

Thinfinity was used to virtualize the existing C++ application and make it available through a browser. This created a practical bridge between the mature desktop product and a modern web channel. An Angular frontend provided the surrounding web experience, allowing the team to improve access and navigation while retaining the specialised behaviour already present in eBlox.

The approach avoided coupling web availability to a complete rewrite of the payroll engine. Existing capabilities could continue to run while the team added web-oriented functionality around them.

Synchronizing operational and search data

The solution needed information from the Btrieve source to be available in Microsoft SQL Server and Elasticsearch. RabbitMQ coordinated the synchronization flow between these systems. Messaging made the data movement explicit and allowed the search layer and web-facing services to evolve without turning the original database into a direct dependency for every new feature.

Elasticsearch supported faster discovery across the synchronized information, while SQL provided a relational destination for services that needed a more conventional data model.

Observability and automated delivery

Enterprise delivery required more than functional code. Dynatrace was used to understand application performance, while Splunk centralized operational logs and events. Azure DevOps supported server setup and automated deployments, giving the team a repeatable route from a completed change to a running environment. These tools helped connect development work with the behaviour of the system in operation.

Result

The project made the established payroll application accessible through a modern web channel while preserving its mature core. The surrounding architecture added synchronized search data, monitoring, centralized logging and repeatable deployment practices. SD Worx gained a controlled transition path in which user access and operational visibility could improve without forcing the business-critical C++ product into an immediate replacement programme.

Company information

A clear view of the company behind the software.