As we specialize in the FinTech industry, our client is one of the biggest and most innovative Tier-1 financial institutions in the world.
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.
Streamlined review and testing process
Enhanced testing environment
Developers productivity boost
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.
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.
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.
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.
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.