Scala abruptly became popular a few years ago. Despite this, technology remains rare in the market: if you compare the number of vacancies for Scala developers and, for example, those who write in Java or Python, it becomes clear that the first ones have not so great choice. But it also says that good Scala developers are worth their weight in gold.
There are not many such specialists at EPAM yet, but the need is growing: we have more Scala-projects. We even opened a Scala laboratory in St. Petersburg, where we teach developers almost from scratch. How to get there, who masters Scala to EPAM and what projects we do - under the cut.

How to learn Scala in EPAM
Novice developers')
When the demand for Scala-developers in EPAM began to grow, we right in the St. Petersburg office opened a laboratory where technology is taught. Beginner developers who have completed
our Core Java
evening courses can get there. Someone after them continues to learn Java, someone chooses a laboratory for Scala.
Laboratory classes are held every working day for 4 months. We have already released two groups of Scala-developers, most of them are now working on projects that use this technology.
We focus on Scala in enterprise development. Students learn to work in a team - build communication and maintain a common code style. Teachers talk about well-proven tools, libraries, and arrange a Code Review to make sure the code is easy to maintain.
Since there are more projects using technology, we plan to make courses not one-time, but permanent, starting from December. Every month from the laboratory for Scala-projects we want to send 2-3 people.
Experienced developersThere is no need for Scala courses for them at EPAM: if you wish, you can master the language yourself, and then switch to the Scala-project - experienced developers are often required. Basically, Scala is starting to be mastered by javista, who write web applications and are working or want to work with Big Data. For those familiar with Java8, Lombok, who understand what lambdas are and used to using immutable data structures, Scala will likely seem like a more convenient way to write code.
Some developers are starting to learn Scala because they want to use the functional approach. Someone, having mastered the language, discovers new approaches to Java programming techniques.
Where we use Scala
Scala is used in projects related to
Big Data and
bioinformatics . Here are some examples:
- Development of an application for training artificial intelligence systems . Including systems that analyze news sites. In order for the artificial intelligence system to learn how to build logical conclusions and provide personalized information, you need to train the system on a large amount of test data. Test data is grouped by area of interest, and AI systems require more and more test data sets. This is where association with the help of meta-information helps - this is how it turns out to group and find the necessary sets much faster and with greater accuracy. The system, which is being developed at EPAM, allows you to form blocks of test data by adding meta information to them, thanks to which artificial intelligence systems learn faster. The project team has already developed a solution architecture and has begun implementation.
- Development of Data Lake for efficient data storage in the field of biomedicine . In order to invent drugs, biomedical companies need to analyze large amounts of data that are obtained during research. Often, they face a problem: retrieving the data of the desired format is not easy, they are stored in different formats and in different places. The solution that is being developed at EPAM will be able to solve this problem for a large biomedical company. Data Lake is currently at the prototype stage. The project uses Scala and the latest version of Spark.
- Development of solutions for processing medical research results . The application is developed for a large laboratory, it allows you to draw up the final results of test reports after research. This is a genetic test for the detection of onco-markers. The project has been successfully working in production for half a year now the team is improving tools for managing reports, templates and more.
- Creating a system that assesses the risks of developing or calculating diseases . It integrates with various EMR (electronic medical record) systems. It is about the risks of developing or complicating various diseases. Risks are calculated on the basis of clinical data that are in the EMR system of the largest pharmaceutical company. To support various installation options (from a large data center to a local computer) and to meet the requirements of end users (the application is already deployed in several countries), the application has been made as configurable as possible. From the Scala tools on the project use Akka, Akka HTTP, Akka Streams and Akka FSM. The team plans to improve the solution architecture and add new features.
- Developing a solution that accumulates data from medical research reports . The application for the company, where they conduct oncological tests, study heredity, reproduction, cytology and more. The solution provides statistical and graphical tools with which you can analyze the effectiveness of research and identify promising areas of business development. Scala, Akka, Riak, ElasticSearch, AngularJS, TypeScript, LESS and Highcharts are used in the project.
What to read and watch
We recommend several books and courses to help you learn Scala yourself:
If you want to study and do projects on Scala, follow the information about our
courses and
vacancies .