Marcin Krykowski
19th June 2021
First of all, you might want to ask a question “Should I even prepare for the interview?”. And my answer is pretty simple - hell yeah.
In this post I won't cover the obvious things like getting proper rest, not being late for the interview and making sure your surroundings are tidy. Those things are obviously important but I want to focus on the things that are important specifically for (future) Scala devs.
This sounds easy and obvious but apparently, it’s not. At the beginning of your Scala interview, you might be asked some theoretical questions. Be prepared for low-level Scala stuff and get familiar with JVM architecture. Be sure that you can easily answer questions about access level in Scala, how Future works, what is pattern matching with guards. tail recursion and maybe even about interoperability with Java. To be a future Scala developer you should have Scala theory at your fingertips.
Maybe your team or company does not currently use a Functional Programming approach but that may be different at the company you're interviewing. Make sure you revise some Functional Programming concepts, starting with the definition of a monad and what it actually is, through algebraic data types finishing with more advanced patterns like tagless final.
Alright, you put http4s in your CV but when was the last time you actually used that? A side project from a year ago? Oh, you use the Play framework on a daily basis? I'd recommend focusing on the most popular libraries mentioned on the job spec and the ones in your CV. For sure it will make the process much smoother and you will be less nervous when asked about a tiny detail during the interview.
I firmly believe that it’s really valuable to get familiar with the most common questions asked during the Scala interview. Even though you will not be asked them you will be more confident while talking to the recruiter. What’s more, it will also help you formulate your thought so your answer will be short and straight to the point. If you never had a Scala interview before you will know what you can expect.
Practice makes perfect. We all know that. Why not follow this proverb in this case? You might check hacker rank or leet code for more coding practice. You will find there many algorithmic puzzles and riddles that might be solved in Scala. It will boost your coding skills and definitely will be helpful while doing live coding at your Scala interview.
A recruiter is often the best person to ask what preparation you should do. Eventually, you both want to get you onboarded, don't you? It's fine to ask about what kind of question you might be asked during the technical part of your interview. This should give you some idea of what you should revise before the interview.
If you have someone who works for the company that you want to join, you can always ask them about the technologies and libraries they use. They will not tell you everything but most probably it will still be enough to have some understanding of how they work. It will give you the possibility to remind yourself of some core concepts for the aforementioned libraries and tools.
Before the main interview try reaching out to more experienced devs or to your colleagues and ask them if they could help you in preparation by doing a mock interview. At first glance, it will not be comfortable for you, but that's what it is all about. You have to feel stress, you have to feel uncomfortable because, in the end, you will talk to other dev during the interview. It is also a good idea to practice coding task during a mock interview. Either by pair programming or just you leading the solution.
Mentioned steps are only some part of your interview preparation. It goes further than this but you can start here and build your knowledge on top of that.
Unfortunately, I cannot guarantee you that doing all the steps above will get you a job. For sure there are more factors like design interview or behavioural interview or basically your previous experience and general fit to the company.
Anyway don’t be afraid and practice as much as you can. To check new possibilities visit https://scalajobs.com/. It is totally normal not to pass the first interview but it is a skill like any other and you can learn that! It will take some time before you will get your first Scala offer.