If you’re choosing your career path in software development, the main question is what programming language to specialise in? 💻 Usually Javascript takes the spotlight, but despite the trends, there isn’t a right or wrong programming language choice.
When setting up your profile at MeetFrank you will encounter a wide variety of programming languages. Just select your expertise and MeetFrank will connect you directly to companies that are looking for a talent like you! One click, no hassle needed.
What’s expected from engineers these days?
Investigating the software development job offers on MeetFrank we stumbled across a job position that had rather unique Scala programming language requirement. This rarity caught our eye and we directly contacted the company Evolution and jumped into the sea of Scala with Juris Krikis, their Scala and JavaScript Department Lead.
It turned out that Evolution is rather seriously investing into the Scala programming language community by organising Scala bootcamps and making learning resources available for everybody. All you need to have is fundamental programming knowledge and a desire to learn.
Did you know that Scala is used by well-known companies such as Twitter, LinkedIn, Netflix and Airbnb? Read further to find out more!
What does the company Evolution do?
Evolution is a world-leading B2B provider of video-streamed Live Dealer gaming with over 400+ engineers located in Riga, Minsk, Tallinn and Amsterdam Engineering Hubs. The company is successfully using Scala as the main programming language for their back-end services.
They are actively recruiting Scala Engineers in Minsk, Riga and Tallinn – offering interesting projects and a modern technology stack, not only on the back-end but also on the front-end (using TypeScript, React, Redux, MobX, Babylon.js and WebGL). Check out their current vacancies:
- Scala Engineer
- JavaScript / TypeScript Engineer (React)
- Product Business Analyst
- System Engineer / SRE
How does Evolution implement Scala programming language in their daily work?
Juris, you went all out there and called Scala an elegant and powerful programming language. What made you fall in love and how did you implement Scala into your everyday work?
We have been successfully using Scala at Evolution since 2013. Initially we started using Scala in unit tests, but over time, we realised that the code we write in Scala has higher quality than our Java code.
It was also easier to maintain due to a more advanced type system. Besides, we added Akka to our technology stack and Akka can be used more naturally from Scala.
Overall, the developers liked Scala, and we have successfully transitioned our codebase into modern and functional Scala code, which also involved the migration of other technology stack components: from Java and Hazelcast, Hibernate, Spring and JSP frameworks to Scala and Akka, including Akka Persistence. We split the monolithic application into microservices that communicate with each other using Kafka. The integration had to be carried out gradually while the system remained production.
How did you stumble upon Scala? What exactly charmed you?
I started learning Scala in late 2012. At the time, I was looking for a “better Java”, and while I was programming in Groovy, it seemed both a step forward and back compared to Java.
At first, the learning curve for Scala seemed steep. I was reading some complicated library code, understanding very little, and thinking that “this really uses operator overloading too much”. But then I finished the Coursera course “Functional Programming in Scala” by “the father of Scala” Martin Odersky and fell in love with the language.
I like the compile-time type checking features that well written Scala code has. The compiler helps you do various refactoring very efficiently, guiding the developer from working code to working code, without breaking anything. The probability that “if your code compiles, it works” is really high in Scala.
What are the main benefits of using Scala?
Scala leads to better code and happier developers. The absolute majority of our developers who have become proficient in Scala are no longer interested in moving back to their previous languages.
Scala is a general-purpose back-end (server-side) language, and you can do everything in it that you could do in Java. It has good interoperability with existing Java code, as well as excellent frameworks for developing distributed, low-latency systems.
Scala supports the functional programming (FP) paradigm, which leads to more maintainable code.
The average proficiency of Scala developers is very high – if a developer decides to move out of the “comfort zone” and migrate to Scala, he or she is probably interested in developing skills and writing good code.
Using Scala.js you can develop for the front-end – thus Scala can also do most things that Javascript or Typescript can. Scala.js is a Scala transpiler to JavaScript, allowing development in Scala for the browser. This allows the applications to be isomorphic – both the back-end and front-end written in Scala, with code that can be reused between them.
We at Evolution have one of the most advanced Scala.js projects in production, which manages the work schedules of our 8000 game presenters world-wide.
But surely, there must be some drawbacks?
True, the main drawbacks of Scala are slow compilation times and a rather steep learning curve.
Is the language still evolving? What are the future prospects for Scala?
Scala is an evolving language with a vibrant ecosystem, including many open source contributors. The new version of Scala language, “Scala 3” adds many desired features and improves existing ones.
However, not only the language is evolving but also new libraries are being introduced, such as ZIO and Cats Effect 3. Besides that, the community is finding new, useful ways to write Scala code, such as with the Tagless Final approach. The prospects are very good indeed.
If a software engineering enthusiast is reading this, then why should they learn Scala?
Learning Scala is certainly the right choice! It will make you into a better developer even if you do not stick with it. I wish more universities taught Scala to students. The closest language commonly taught is Haskell.
Haskell is an important functional programming language and functional Scala borrows a lot from it. But there are fewer Haskell vacancies, and it is used less often in production. The language itself is beautiful, but the ecosystem is lagging.
You say that Scala is pretty rarely taught in universities. Where should one start then?
I believe that the Kernighan & Ritchie quote “The only way to learn a new programming language is by writing programs in it” is very true.
So you must write code. Every day. Start with simple tasks from HackerRank or similar sites. Continue with more and more complicated tasks and systems, especially ones that help you solve problems you yourself care about. Contribute to open source.
I think Scala is quite easy to pick up if used as a “better Java with some syntactic sugar”. If used in an idiomatic Functional Programming-style, it also becomes a matter of learning Functional Programming and how to apply it using Scala.
As Evolution is such a powerful hub for Scala, is there any opportunity to come and learn the language from your team?
Participating in Scala bootcamps can help you learn faster from experienced mentors. All you need for participating is fundamental programming knowledge and a desire to learn – previous Scala or Functional programming experience is not required. Our bootcamp showed that people want to learn Scala. We received almost 500 applications this summer for the Scala Bootcamp in Riga!
Previously there were fewer learning materials and it was easier to just say “start with the ‘red book’ by Chiusano and Bjarnason” but many excellent authors have now published books and tutorials.
Thus we have collected, in our opinion, links to the best Scala learning resources. Find them in the “Learning resources” section. We constantly keep them up to date.
Looking for new adventures? Try out MeetFrank today
MeetFrank was created to make the job market open, stress-free and quite a bit fun really. We do all we can to ensure that companies can find the talent they need without undue pain and that talent can make the best possible decisions with all the necessary information.
To get started on MeetFrank, head on over here to check out our free app and see what the best companies are offering.
And if you’re a recruiter, get in touch with us here to book a demo call so you can see how MeetFrank works. We’ll look out for you.