The challenge
The software engineers at our client's company were working with the build system, Pants, which failed to meet their needs, causing frustration and delays in the development process. The developers faced stability and performance issues with IntelliJ, their main IDE, limiting their productivity and the company's swift innovation due to the excessively long compile times. Additionally, the team required the integration of custom Python development practices. However, the current tools, such as VS Code caused support challenges.
Our client recognized the need for updated tools that met their current needs and were agile enough to incorporate improvements seamlessly. The decision fell immediately on Bazel as a replacement, a build system celebrated for its speed and robustness. Given that the challenges were interconnected, they required a holistic solution to enhance the overall development experience for their engineers. At this crucial juncture, they sought assistance from VirtusLab.
The solution
VirtusLab helped with the strategic migration to Bazel. This migration minimized disturbance to the company's operations. Our team provided enhanced IDE support, transforming IntelliJ into a more dependable developer environment. We configured VS Code to support Python development through tailored extensions and plugins, adhering to the company's specific build protocols.
Our commitment to the company's objectives led us to create IDE Probe, an automated testing framework, and Bazel IDE, a command-line utility, to simplify project setups. These pioneering solutions were integrated with the current technology stack to improve the developers' experience and efficiency.
We continually refined the build system's performance and integrated feedback to polish our solutions. This approach ensured compliance with the company's exacting standards and promoted ongoing enhancement.
The results
Through our partnership, the client transitioned from a development environment that was once a friction to one that now propels innovation. The outcomes were striking:
- Improved IDE performance and developer experience due to faster compile times and better tooling.
- Received customized IDE integration with Bazel.
- Successful integration of Python support for developers and data scientists.
- Creation and integration of IDE Probe for automated testing.
- Migration of some developers to build tools like Bloop faster, drastically reducing wait times for code compilation.
- Continuing improvement in IDE stability and feature set.
Tech-stack
Build Systems: Pants, Bazel
IDEs: IntelliJ IDEA, Visual Studio Code
Languages: Scala, Python
Additional Tools: IDE Probe, Bazel IDE, Bloop