Pushing the frontier of development tooling and environment for Scala and JVM ecosystems

We provide comprehensive tooling and infrastructure support to analysts and developers involved in the development of our client’s key company systems.

scala-tooling-2-min (1)
Industry
FinTech
Technology
Scala, JVM
We created a first-class development and testing environment which improved developers productivity and decreased the costs by order of magnitude.
The client

As we specialize in the FinTech industry, our client is one of the biggest and most innovative Tier-1 financial institutions in the world.

 

image for article: Pushing the frontier of development tooling and environment for Scala and JVM ecosystems

Our challenge

We were working on one of the biggest Scala projects in the world with a few millions of lines of code and hundreds of subprojects and developers working on them. With such a huge scale of the projects, most of the common tools break or underperform. Custom solutions, which take into account specifics of client infrastructure and domain are often needed.

We used our expertise with Scala and JVM ecosystem to develop end-to-end solutions that would cover every area of the typical Software Development Life Cycle (SDLC), and improved existing state of tooling, environments, and systems manyfold.

What we have done?
1.

Compilation speedup

2.

Streamlined review and testing process

3.

Enhanced testing environment

4.

Developers productivity boost

Compilation speedup

We brought down build times from over 1 hour to 25 minutes on average, and in many cases to as low as 6 minutes. We achieved that thanks to the usage of cross-machine caching systems, improvements to the scalac compiler, and in-house developed custom build system.

Streamlined review and testing process

We greatly enhanced our review tools and testing infrastructure. We can automatically pick relevant reviewers, tests that need to be run, and conditions that need to be met for PR to be mergeable. That lets us save hours of time on builds and tests and dozens of minutes of every PR owner and reviewer’s time.

Enhanced testing environment

We have built a system that supports running tests in a cloud environment, with automatic test distribution, monitoring, and analysis. That system allows us to run only tests affected by the changes we are testing, with granularity not seen in any other system we are aware of. Today we are running up to 70% fewer tests, and since every test run is distributed it finishes up to a few times faster. We are saving a few hours of time on every PR and hundred of hours of machine time per day.

 

image for article: Pushing the frontier of development tooling and environment for Scala and JVM ecosystems

Developers productivity boost

A lot of care went into making the development environment more efficient and focused. For example, it takes less than 15 minutes to fully set up or recreate existing workspace with working IDE and compiled code – over 6x improvement compared to the standard workflow.

Our solutions are directed to all clients on such a large scale, with a big number of projects, data, employees, etc. who want to improve productivity and increase the efficiency of its developers.
Piotr
Head of the Team
The final results

We provide comprehensive tooling and infrastructure support to analysts and developers involved in the development of our client’s key company systems. Increasing the productivity and work efficiency of one developer translates into several saved hours of work. If we multiply it with hundreds of employees who have saved time in this way, it gives us very large time savings, and thus also very large financial savings. 

We will provide you with a tailored solution to meet your specific needs
Boost your project – drop us a line!

"*" indicates required fields

If you click the “Send” button you agree to the privacy policy. Your personal data given in the contact form above will be processed for purposes of answering your inquiry and for any further correspondence regarding this inquiry. The controller of your personal data is VirtusLab Sp. z o.o. For more information, see our Privacy Policy