Geeks With Blogs
Josh Reuben
As chief architect of an Ad-Tech startup, part of my role involves hiring and mentoring software engineering candidates. Our technology stack includes Scala, SBT, Akka, Spray, Spark + MLlib, AWS, Ecmascript 6, BeEF, Linux environment, Git, Docker, Bash, Kafka, ELK, NGinX, and as of today, Mesosphere. I can tell you, it ain't easy to find Scala Devs. IMHO, a suitable candidate must demonstrate that they are capable of diving in and learning frameworks that make up the Scala ecosystem. 

Now, you can conduct a technical interview and watch said candidate sweat while they try to explain to you the merits of recursive singletons (joke), but that won't tell you whether they can 
  1. learn on their own
  2. grasp concepts 
  3. code elegantly in Scala (without being under the artificial pressure of an interview) 
  4. integrate disparate technologies
Its not enough for a software engineer to grasp the syntax of a programming language. More is expected.
I constructed the following exercise, which I give candidates a week to do in their own time:

Part 1 - Spray

This exercise will demonstrate the candidates' ability to learn and apply the basics of Spray

  • Create a simple Spray Restful Server with a Route that exposes 1 GET endpoint.

  • This endpoint will expect a querystring parameter that will contain a string.

  • The endpoint functionality will be to reverse the string passed in the Request and return it as the Response

  • Write a unit test for the Route

Part 2 - Akka

This exercise will demonstrate the candidtate's ability to learn and apply the basics of Akka

Part 3 - Bash

This exercise will demonstrate the ability to write a basic bash script

  • check for the existence of the text file

  • run the Spray service

  • run the Akka app, passing in the path to the text file

  • read the output file that the Akka program produced – select the top 5 words with the highest counts

  • curl these words to the spray service and display the output

Part 4 - Git

This simple exercise will demonstrate the ability to use basic source control

  • create a github project – commit and push each stage of your work on this exercise.

If you can do these basic tasks - congratulations, you are Scala job-worthy.
Posted on Tuesday, February 23, 2016 10:39 PM Scala | Back to top

Related Posts on Geeks With Blogs Matching Categories

Comments on this post: How to hire a Scala Dev

# re: How to hire a Scala Dev
Requesting Gravatar...
I do appreciate this kind of information. This is such a useful idea. - Bath Planet
Left by Lira Sale on Dec 26, 2016 11:26 AM

Your comment:
 (will show your gravatar)

Copyright © JoshReuben | Powered by: