Highload Utility Billing

Highload Utility Billing and Payment System


Highload Utility Billing and Payment System for State Unitary Enterprise

Our Client is a large company that provides billing services to the utility companies and services about 1,5 million household accounts in St. Petersburg. This organization facilitates payment transactions between the end users and utility management companies. This company relies on robust multi-functional software that processes large sets of data and enables quick access to this information


In 2018 in accordance with the Import Substitution program, which obliges Russian companies to use local software and components, our client was moving away from using foreign hosting servers for their web-services. The client was looking for a solution that not only would allow for compliance with the nationwide Policy but will bring the support of the system and further development costs to a minimum.

Our solution

We carried out the system audit in order to determine the best way to attain the desired outcome for the client. The system was a .Net web service application written in C#.
In order to minimize the costs, the decision was made to use web hosting that didn't require a license fee. Technically this was attainable either by transferring the code base to the latest version of .NetCore or by translating the code from C# to Java. Either of the solutions would allow hosting the services on the license-free server.
We proposed our client to translate the code base from C# to Java and transfer hosting to Linux server. Linux web hosting was chosen for its reliability and stellar security record, fast development, and support from the open source community. It was adhering to the no-license requirement and allowed for compliance with the import substitution policy.
We also considered the risks related to support and further development of the system as well as team competencies that the client had. Internal Java skills would allow the client to support and develop the system using its own support team if needed.
It was necessary to ensure the high quality of the code and eliminate a number of risks related to security and maintenance of the code architecture. We adopted SAFe DevOps in Quality Assurance and ran end-to-end tests. The non-functional test included performance, security, and scalability tests. The system submodules were covered by automatic integration tests to ensure the stability of work, and load tests were used to ensure uninterrupted work at peak load.
To deploy the code, that is, to bring the system to a working state after testing, blue/green deployment was used. This enabled uninterrupted delivery of the translated and refactored code to the server. It would have also provided for a quick roll back to a stable version of the system should have any incidents occurred during deployment.


The project was successfully delivered to the client. We provide a support team in order to capture and fix any problems should they occur.


Hadoop, Java, Python, PostgreeSQL, Oracle, Linux, SpringBoot, iBATIS, Aspect, NginX, Kibana.

How our services bring about success