Hire the best Scala developers

Check out Scala developers with the skills you need for your next job.

Clients rate Scala developers
Rating is 4.8 out of 5.
4.8/5
based on 1,981 client reviews
Rudolf M.
$60/hr
  • Trophy Icon Scala
  • Android App Development
  • GraphQL
  • React
  • TypeScript
  • PostgreSQL
  • Firebase

I'm a full-stack scala/react/mobile apps developer from Zagreb, Croatia. I have a lot of experience in building minimum viable products for startups, and helping them to build their own teams. Regarding business domains, i had clients from Croatian public sector, energy industry, pharmaceuticals companies, online eduction, gaming etc...

Freddy R.
$25/hr
  • Trophy Icon Scala
  • Kubernetes
  • Database Design
  • Docker
  • Apache Kafka
  • API
  • Database
  • Play Framework
  • Git
  • RESTful API
  • Software Architecture & Design
  • Java
  • Amazon Web Services
  • SQL

I’m a software developer with strong skills in Scala, Java, SQL, Javascript. I’ve worked with frameworks such as Play, Akka, Vert.x, Slick, Spring, Angular. Other tools: version control software (Git, SVN, CVS), Kafka, RabbitMQ, docker, Jenkins, CircleCI, SONAR, Slack, Jira, Trello, Cloud technologies (AWS, Heroku, Kubernetes). Constantly eager of new challenges, searching for knowledge, with analytical skills and a good team work player.

Aidar U.
$85/hr
  • Trophy Icon Scala
  • Java
  • JavaScript
  • SQL
  • AngularJS
  • Haskell
  • AWS CloudFormation
  • Google App Engine
  • Database Design
  • Redis
  • PostgreSQL
  • Functional Programming

I am a passionate programmer with good communication skills who is looking for a project to join as Tech lead/Senior Software Engineer Thought I have good Java background my current tech stack more typelevel: Scala, Sick, scala-cats, cats-effect, playframework, sbt. I am a fan of functional programming and have been working as software engineer for more than 12 years. I value developing and maintaining strong relationships. I've worked as a senior software developer, team leader and CTO for both small startups and large enterprises. I have a computer science background (algorithms, data structure, networking, design patterns), experience...

Gary S.
$60/hr
  • Trophy Icon Scala
  • API
  • React Native
  • API Integration
  • Graphic Design
  • JavaScript
  • PHP
  • Plugin Development
  • RESTful API
  • HTML
  • MySQL
  • Theme Development
  • Swift
  • WordPress
  • CSS

Greetings! My name is Gary, and I am an expert WordPress developer with over 6 years of experience building, optimizing, and maintaining advanced WordPress sites. With a 100% Job Success Score, you can rest assured that your project will be done correctly the first time around, with no corners cut. I develop only the best quality sites, plugins, and themes with code that is clean, efficient, and easy to maintain. I'll get straight to the point; primarily, my skillset includes: • Fully Custom Plugin and Theme Development (PHP, Javascript, HTML/CSS) • API Integration • Theme Installation and Setup • Plugin Installation and Setup...

Tien N.
$50/hr
  • Trophy Icon Scala
  • API Development
  • Amazon Web Services
  • Apache Hadoop
  • Apache Kafka
  • Apache Spark
  • Kubernetes
  • Architectural Design
  • Serverless Computing
  • GraphQL
  • Elasticsearch
  • Docker
  • DevOps

A Backend Software Engineering with more than 6 years of experience. Have worked with large-scale backend/distributed systems and big data systems. A DevOps engineer with 4 years of experience - both on-premises and AWS, experienced with K8s, Terraform, Ansible, CI/CD. Currently working as Principal Engineer/ Solution Architect role.

Mykola M.
$100/hr
  • Trophy Icon Scala
  • Machine Learning
  • Apache Spark
  • Data Engineering
  • Python
  • Software Architecture & Design
  • Tesseract OCR
  • PyTorch
  • Open Neural Network Exchange
  • TensorFlow
  • Computer Vision
  • Natural Language Processing

I'm a Scala/Python software developer with machine learning experience. I have experience in software development for about 15 years. I have a master's degree in Applied Mathematics. Areas of expertise include Machine learning, Big Data, ETL, Web Development, general IT expertise. Work well independently and within a teams. Have 5 years experience as team / technical lead. I'm leading team of 6-7 senior developers and about 10 projects in R&D area. My main areas of expertise are: - Python, Scala - Spark, Spark Structured Streaming, Spark ML - Xgboost, Scipy, Numpy, Scikit-learn - Django, Flask, Celery

Jignesh C.
$80/hr
  • Trophy Icon Scala
  • Google Maps API
  • GIS
  • Web Application
  • ERP Software
  • Customer Portal
  • Business Applications Consultation
  • Dashboard
  • Flutter
  • iOS
  • PHP
  • React
  • Mapbox
  • Node.js
  • JavaScript
  • API Integration

Confused about a lot of jargon on my profile? Here is a simple introduction: JC has 12+ years of experience in software development. In the last 12 years, he has experience working from fortune 500 clients to very hot startups. He loves building mobile apps with newer technologies (like a flutter and react-native). He can understand new technologies very quickly and can work on any technology fast. Communication is his forte and that makes sure that all the projects run smoothly. What Clients Are Saying About My 5★★★★★ Results: ✅I have been working with UpWork for a long time and have hired a lot of freelancers. I would have to say J.C....

Rutvik P.
$42/hr
  • Trophy Icon Scala
  • Akka
  • TypeScript
  • Machine Learning
  • Linux
  • Rust
  • GraphQL
  • Keras
  • Kubernetes
  • Microservice
  • Apache Kafka
  • JavaScript
  • Play Framework
  • SQL
  • Python

10+ years as a professional in software engineering, from systems programming to large data-intensive applications. Fast learner. Highly motivated. Team player. OSS contributor. Extreme Ownership. Distributed systems. (Scala | Kafka | Akka | Kubernetes) Machine learning. (Python | Keras) System programming. (Linux | C | Rust)

Oleksii D.
$100/hr
  • Trophy Icon Scala
  • Apache Spark
  • Apache Kafka
  • Apache Hadoop
  • Java
  • Spring Framework

I help companies to design and build software. My interests are Big Data and Machine Learning. During recent years is particularly focused on scalable computing and data grids. Skills: Apache Spark, Apache Kafka, Apache Hadoop, GigaSpaces, Machine Learning, Scala, Java and Spring. Can be found blogging at dyagilev.org

Johny K.
$80/hr
  • Trophy Icon Scala
  • Akka-HTTP
  • Reactive Programming
  • JavaScript
  • Akka-Streams
  • Functional Programming
  • Apache Kafka
  • Akka
  • Slick
  • MongoDB
  • RESTful API
  • PostgreSQL
  • Java
  • Play Framework
  • Redis

I am a software developer with an engineering degree in Information technology and MSc in Cognitive science. I have 11+ years of experience in software development. I started working as a Java programmer mainly using JavaEE for web development. Since 2013 I had been working extensively with Scala using play and akka frameworks. I am also familiar with libraries like cats, zio and shapeless, and category theory. I have worked with both SQL and NoSQL databases. I know enough javascript to make tweaks or to create an initial design. I have also used python, r and js to build experiments and analyze data.

Vitalii S.
$40/hr
  • Trophy Icon Scala
  • Amazon DynamoDB
  • Core Java
  • React
  • MySQL
  • AWS Lambda
  • SQL
  • Git
  • Hibernate
  • Apache Maven
  • API
  • JavaScript
  • Java
  • Spring Boot
  • Spring Framework

Java Developer with 5+ years of experience in business application development with Java technology. Took part in successful projects in cartography, telecommunication, infrastructure areas. Technical skills: ✅ Object-Oriented Design ✅ Java ✅ Spring stack (Core, MVC, Batch, Boot, Security), JakartaEE(JSF, JSP, EJB) ✅ JPA, Hibernate ✅ Cloud (AWS, AWS Lambda, API Gateway, DynamoDB, EC2) ✅ JUnit, Mockito ✅ Maven, Gradle ✅ MySql, PostgreSQL, Oracle ✅ JavaScript, HTML, CSS ✅ ReactJS, Sencha ExtJS ✅ GIT, SVN ⭐️Master degree in Software Engineering from Yuriy Fedkovich Chernivtsi National University. ⭐️Certified Oracle Certified Associate - Java

Brice R.
$75/hr
  • Trophy Icon Scala
  • Docker
  • Rust
  • Elm
  • Akka
  • Kubernetes
  • Amazon Web Services
  • Azure DevOps
  • Linux System Administration
  • Android App Development
  • Haskell
  • Terraform

My main objective is to share. Being an Open Source developer, I like to share my experience with and for my clients. I build code, like to refactor and bring efficiency to the table. I also strongly believe in Cloud Computing when all powerful engines can be shared not only to save cost but to save energy and consumption. The lesser code I write, the happier my clients are. Functional Programming fits that bill because code is just concise. My goal is always to find the most efficient tool that can save time but not impact performance. I choose to focus on Functional Programming like Haskell, Scala, Clojure, ELM, Rust and Terraform. I...

Ankur M.
$15/hr
  • Trophy Icon Scala
  • Android
  • Android App Development
  • iOS Development
  • Mobile App
  • Mobile App Design
  • Mobile App Development
  • Swift
  • PHP
  • Xamarin
  • React Native

I am a native iOS & Android Developer, coding is my passion. I create great applications for iPhone, iPad, Android Phones and tablets. I work full-time at Upwork and am online 12 hours in a day to answer any of your questions. My advantages are: — everyday reports about progress — well commented enterprise-ready source code — ultrafast response time; — all tasks are recorded to Issue Tracking system. I create application with Swift/Objective C programming language for iOS and Java for Android, use Git to track source code, know JSON, XML, Geolocation, Push, Core Data, Multithreading and more technologies

Sunil C.
$21/hr
  • Trophy Icon Scala
  • JavaScript
  • HTML
  • CSS
  • Web Design
  • HTML5
  • WordPress
  • Laravel
  • PHP
  • Figma
  • WooCommerce
  • Ecommerce Platform Development
  • React
  • Node.js
  • Core PHP
  • WordPress Plugin

I'm a full-stack web developer with over 8+ years of experience building high-quality websites for clients worldwide. I have a strong focus on delivering business value and creating great user experiences, and I'm known for my ability to deliver clean, scalable, and maintainable code. I am familiar with various technologies of software development. I have good experience with database and business logic architecture and developing. I have a diverse set of skills and experience, and I'm comfortable working with clients of any size - from startups and small teams to enterprise. I have a proven track record in industries such as automotive,...

Hamza D.
$25/hr
  • Trophy Icon Scala
  • Java EE
  • TypeScript
  • Angular
  • GraphQL
  • PostgreSQL
  • NestJS
  • Docker Compose

An enthusiastic junior developer looking for challenging projects to learn and hone my skill, currently working in a startup that specializes in IoT for the logistical companies while using Angular, NestJs, Scala, and Docker to provide a sustainable solution for our clients

Nikunj K.
$25/hr
  • Trophy Icon Scala
  • Git
  • API Development
  • iOS Development
  • React
  • Mobile App Development
  • Ionic Framework
  • JavaScript
  • Kotlin
  • Firebase
  • React Native
  • TypeScript
  • Angular
  • Swift
  • Android App Development

I started my development journey in 2016 as a Native Android developer and I have evolved my skillset in Ionic, Angular, and React as both Mobile and Web Developers. I love to build mobile and web apps using Hybrid technologies like Ionic/Angular and React Native. As I have experience as a Native developer so I can easily modify and create plugins. Coding is a passion and an essential factor in my life. Working with Web and mobile apps, I can be a precious asset for any organization in terms to provide a cost-effective solution, productivity, and efficiency for both Web and Mobile apps both. My objective for all my clients is complete...

YEVHEN S.
$25/hr
  • Trophy Icon Scala
  • HTML
  • MySQL
  • iOS Development
  • C#
  • Angular
  • JavaScript
  • Web Development
  • ASP.NET MVC
  • AngularJS
  • Database Architecture
  • .NET Framework
  • ASP.NET
  • Android App Development
  • Web Design
  • API

Hi, my name is Eugene. In my portfolio, are only a few of the projects that I’ve developed. I think that my strongest points are Creativeness and Punctuality. My #1 goal will always be to meet your needs and deadline. When working on a new project, I like to speak with the client, so that I can have a clear understanding of his/her needs and vision of the project. I’m honest and fair. -Back-end - ASP.NET (MVC and WebAPI), ASP.NET - Core, Elastic Search, Kibana, Docker, Windows Services, Azure, AWS - Front-end - JS,TypeScript, Angular, Jquery, HTML5, CSS3, SCSS - Working with databases - MySQL, Microsoft SQL Server,...

Milan R.
$12/hr
  • Trophy Icon Scala
  • Flutter
  • WordPress
  • Hybrid App Development
  • AngularJS
  • Android App Development
  • iOS
  • Front-End Development
  • CodeIgniter
  • PHP
  • Android
  • Map Integration
  • Web Design
  • ASP.NET
  • Website
  • Core PHP

Hello, Thanks for visiting my profile. I am Milan. I have 11+ years of experience in the IT Industry with mobile app and web application development. I am running a small agency with 16 employees, and all have 6+ years of experience from different platforms and technologies. We have highly knowledge of Mobile Applications and Website development with the below technologies and services: - iPhone app - iPad - iOS - Android - IONIC - React Native - Augmented Reality - In-app purchase - Machine learning - Game Development - Mobile app development - Hybrid app development - QA / Quality Assurance - Website Development - Responsive website -...

Sohaib S.
$30/hr
  • Trophy Icon Scala
  • PHP
  • MySQL
  • jQuery
  • AJAX
  • HTML
  • CSS
  • API Development
  • XML
  • Facebook Development
  • Twitter API
  • CSS 3
  • Mailchimp
  • PayPal Integration
  • WordPress
  • Web Design

I am a Full Stack Developer, Electrical Engineer and hold Masters Degree in Information Security. Web development is my passion and I have 8+ years of development experience in variety of languages including PHP, MySQL, JavaScript and JAVA. I have vast experience of working with JSON and REST APIs including Facebook, Twitter, Constant Contact, Hoot Suite, Mail Chimp, Paypal, Dropbox, 2CO, Google Maps, Twilio, Shopify, Salesforce, Instagram, Tumblr, Stripe, Google NLP, IBM Watson and Youtube APIs. Frontend Frameworks: Bootstrap, Semantic UI Deployment & Server Management: Digital Ocean, Amazon AWS ( Elastic Cloud + Amazon S3 ), Google...

Kedar K.
$40/hr
  • Trophy Icon Scala
  • Core Java
  • Spring Boot
  • Google Guice
  • Quartz
  • Amazon S3
  • Amazon EC2
  • API Development
  • MongoDB
  • React
  • REST

Experience in Java (J2EE) development and product architecture for 15 years, Have worked on Hibernate, Spring (MVC, AOP, Transaction management), JSP/Servlet, Guice, Jersey, JUnit, Tomcat, Jetty, Ajax, Grizzly, JQuery, Mysql, Oracle, MongoDB and DynamoDB I have substantial background delivering large scale, mission critical, real-time and low latency projects on time. I have worked as a Technical Architect, Java Team Lead and Senior Java developer. I believe that one of my strongest points is ability to balance long-term strategic development with timely delivery of tactical solutions. I like to work from the inception phase of the...

Andrew L.
$55/hr
  • Trophy Icon Scala
  • Java
  • J2EE
  • SQL
  • jQuery
  • Hibernate
  • Spring Framework
  • Spring Security
  • ASP.NET MVC
  • JavaScript

I'm looking for challenging and creative projects which allow me to focus on my true passion : coding! I'm an expert in Java development with over 10 years experience, and I've worked for some of the best software development houses in Australia. I also have several years of Scala development experience. I'm looking for additional challenges outside the usual demands of a typical 9-5 job.

Apascaritei E.
$40/hr
  • Trophy Icon Scala
  • Salesforce CRM
  • API
  • RabbitMQ
  • RESTful API
  • Database
  • Microservice
  • Spring Boot
  • SQL
  • Play Framework
  • Java
  • MongoDB

Software developer with about 7+ years of experience who worked on various projects, most of them written on Scala. Familiar with technologies like: Scala, Java, Salesforce, RabbitMQ, MongoDB, PostgreSQL,AWS. My latest work is around a Microservice platform written in Scala, using Akka for event driven programming and system design. Interservice communication is achieved by using REST/RabbitMQ. On my spare time, I aim to learn new things, like TensorFlow, ML.

Shivam S.
$13/hr
  • Trophy Icon Scala
  • Live Streaming Setup
  • jQuery UI
  • Apple Xcode
  • Graphic Design
  • Mobile App Design
  • Adobe Photoshop
  • Agora Video SDK
  • Web Development
  • Web Design
  • Android App Development
  • iOS Development
  • Flutter
  • Mobile App Development
  • Core Bluetooth
  • React Native

Software Development Master in Mobile & Web application development. ✅ 8+ years of Industry experience in developing websites and Mobile Apps(Flutter, IOS/Android) ✅ 100% Job Success ✅ Fluent English Verified ✅ At least 90 apps published to Google Play or App Store. ✅ At least 130 websites live ✅ 7+ official plugins with over 2000+ active installations at WordPress.org 🏆 Expert Native Script Mobile App Developer (Android/IOS) 🏆 Expert Laravel web Developer 🏆 Expert WordPress Developer 🏆 Expert Angular 7 Developer 🏆 Expert ReactJS Developer Proficiency in mobile app development: - MVC/MVP/MVVMCLEAN CODE Architecture...

NarendraKumar J.
$18/hr
  • Trophy Icon Scala
  • Node.js
  • React
  • ASP.NET
  • HTML
  • TypeScript
  • Python
  • AngularJS
  • GraphQL
  • jQuery
  • Redux
  • CSS
  • OpenCV
  • MongoDB
  • webpack
  • Amazon Web Services

Greetings, I am a Sr. Full Stack Developer with over 10 years of experience. I have worked in this industry for so long that I was able to master every detail of my project. I would like to keep my ideas updated with the latest trends and technology to keep me motivated and give efficient results to my clients. Technical Skills includes: • Extensive knowledge of Python, React, Angular, and Node Js • Proficient with ASP.Net & .Net Core • Hands on experience with MERN & MEAN stack • Experience working with HTML, CSS, jQuery, JSON, ASP.Net, and JavaScript • Worked with frameworks like Django, Flask, etc • Efficient...

Shubham S.
$20/hr
  • Trophy Icon Scala
  • Swift
  • Node.js
  • Objective-C
  • Android App Development
  • Smartphone
  • Native App Development
  • Mobile App Development
  • React Native
  • Android
  • Vue.js
  • iOS
  • Firebase
  • Java
  • In-App Purchases
  • iOS Development

Mobile app developer, specialized in iOS/Android mobile app development, having extensive experience in Native iOS development for iPhone & iPad, Android app, hybrid & cross-platform mobile app development, and building innovative, highly customized, robust, scalable, feature-packed and modular mobile app development solutions. I have in-depth knowledge in Objective-C, JavaScript, C++, C#, HTML5, Swift & Apple Xcode and Cocoa Touch, jQueryMobile, React Native, UIKit mobile app development frameworks. Responsible for designing and implementing new innovative features and functionalities, establishing iOS & Android mobile app development...

Victor O.
$30/hr
  • Trophy Icon Scala
  • PHP
  • Firebase
  • Next.js
  • JavaScript
  • Python
  • TypeScript
  • Bootstrap
  • CSS
  • Responsive Design
  • MongoDB
  • Node.js
  • Django
  • React
  • HTML
  • Webflow

I'm a software developer with over 5 years of experience. I've gained experience and knowledge in developing powerful, aesthetic & highly usable mobile and web apps that bring ideas to life. As a developer, I'm dedicated to delivering results to my clients and do my utmost to make sure they are looked after and supported in the best way possible along with keeping an open dialogue to maintain a professional relationship and be productive, efficient, and above all trust between both parties. My skills include: ✅ HTML5/CSS3, SASS/SCSS, Tailwind ✅ JavaScript, Typescript, Next.js ✅ React, React-native, Vue.js, Redux, Redux-Saga, Redux-Thunk,...

Prateek A.
$35/hr
  • Trophy Icon Scala
  • HealthKit
  • UIKit
  • Swift
  • Android App Development
  • Dart
  • Android Studio
  • RESTful API
  • Mobile App Development
  • iOS
  • Android
  • Figma
  • Kotlin
  • Java
  • iOS Development
  • Flutter

"My first project on Upwork. Prateek is extraordinary and has great set of skills in Mobile Development. Did task for me in 2 hours for which i was suffered from 1 week. Really appreciate your work buddy." - John Vincent. "I really love to work with Prateek. He always delivers good code and works hard, i will definitively use is skills again." - Alexandre Foisy, Founder at Democratik I specialize in Flutter App Development from scratch, including UI UX design and development. I’ve worked on a long range of apps, from simple one-screen ones to big enterprise apps. Some of the main features I deliver are: *Hybrid Flutter App Development...

$NaN/hr

How it works

1. Post a job (it’s free)

Tell us what you need. Provide as many details as possible, but don’t worry about getting it perfect.

2. Talent comes to you

Get qualified proposals within 24 hours, and meet the candidates you’re excited about. Hire as soon as you’re ready.

3. Collaborate easily

Use Upwork to chat or video call, share files, and track project progress right from the app.

4. Payment simplified

Receive invoices and make payments through Upwork. Only pay for work you authorize.

Trusted by 5M+ businesses

Scala: A Hybrid Language for Big Data

What is Scala?

Scala is a highly scalable general purpose programming language that combines aspects of both object-oriented and functional programming. It’s become increasingly important in the world of data science, rivaling more established languages like Java and Python. One of the main drivers of Scala’s rise to prominence has been the explosive growth of Apache Spark (which is written in Scala), giving Scala a well-earned reputation as a powerful language for data processing, machine learning, and streaming analytics.

Powerful and General Purpose

Scala is designed to be much more concise and expressive. This does give it a steeper learning curve than Java, but for many developers, the trade off is well worth it. Still, the Java legacy is clear in many of Scala’s attributes, from its strong OOP support, to its curly brace syntax, to its high level of interoperability with Java libraries. What’s more, Scala’s source code is written to be compiled to Java bytecode and then run on the Java Virtual Machine, making it highly portable and safe. This gives Scala a wide-range of potential applications. Its Java compatibility makes it well suited to developing for Android, and its ability to compile to Javascript means Scala can even be used to write web apps. If you’re an object-oriented programmer who has no interest in learning functional programming, you can still pick up Scala and take advantage of Java’s many advantages (its rich libraries and the Java Virtual Machine) all while writing less boilerplate. 

Combining Functional And Object-Oriented Programming

One of Scala’s major advantages is its support for both object-oriented and functional programming. Both approaches aim to create readable, bug-free code, but they go about it in very different ways. Where object-oriented programming combines data structures with the actions you want to perform on them, functional programming keeps both separate.

Each approach has its advantages. For many people, the object-oriented paradigm makes intuitive sense, and combining behaviors with the data structures they’ll interact with can make it easy to figure out what’s going on in an unfamiliar codebase. At the same time, functional programming’s preference for cleanly separated and immutable data structures and discrete behaviors often allows you to do more with less code.

What to Look for in a Scala Developer

As with any developer role, the exact skills and experience you want will depend on your project and business goals. When looking for a Scala developer, it’s important to not only gauge their skills with the language, but also whether they’re able to learn quickly and build resilient systems. Experience with testing and program design are invaluable. Beyond those skills, here are some specific technologies and paradigms to look for in a Scala developer:

  • Object-oriented programming
  • The Java Virtual Machine
  • Tools of statistical analysis
  • Distributed file storage systems (like HDFS)
  • SQL and relational database management systems

Scala Interview Questions

Scala is a high-level language that combines the best of both worlds: object-oriented programming (OOP) and functional programming (FP). By treating functions as first-class citizens and embracing static types, Scala encourages developers to write safer code. Support for Java Virtual Machine (JVM) and JavaScript runtimes give a developer access to a wide variety of libraries for enhanced programmer productivity.

1. What are the advantages of using Scala?

Scala was created to enable programmers to use OOP and FP together: It brings OOP concepts such as first-class modules, dot syntax, and first-class type classes/instances together with FP concepts such as higher order functions and pattern matching.

Other advantages include type safety, a concise syntax, flexibility, and scalability. Built on top of the JVM, it is both compatible and interoperable with Java. Scala can perform many of the same tasks as Java with fewer lines of code without sacrificing readability.

2. What is functional programming?

FP is about composing code with pure functions (functions that always return the same result from the same input). This eliminates side effects associated with changing data or state. FP is generally characterized by:

  • Declarative programming model. You express the logic of a program’s structure and elements (what you want data to do) without having to describe its control flow (how it’s done).
  • Support for higher order functions. These are functions that take in one or more other functions and return a function as a result.
  • Immutable data and state.
  • Absence of side effects. Full absence of side effects is impossible (because software has to interact with the world), but functional languages either isolate side effects in a functional way (e.g., using monads in Haskell), or make usage of side effects explicit via language syntax (as in Clojure).

3. What is the difference between var, val, and def in Scala?

The var keyword lets you declare a variable, which is a changeable reference to a value. The val keyword lets you declare a constant, which is an immutable reference to a value. The def keyword lets you declare a function or a method.

4. Explain the difference between concurrency and parallelism.

It’s important to understand the difference between concurrency and parallelism when composing multithreaded programs. Concurrency is the ability to handle lots of things at once, such as a web server handling multiple requests. When one task starts, the program does not have to wait for it to finish before starting another task. In Scala, concurrency is handled with constructs called actors

Parallelism is a distinct concept that is more concerned with the actual simultaneous execution of said tasks, often in the context of breaking up a task into smaller subtasks that can be processed simultaneously across multiple threads and/or cores. Parallel collections, futures, and the Async library are all examples of parallelism in Scala.

5. What is a Scala future?

In Scala, a future is a placeholder for a value that may not yet exist. It makes it easier to write asynchronous, nonblocking, parallel code.

6. Explain higher order functions.

Higher order functions are simply functions that take other functions as parameters or return functions as results. The map, reduce, and filter functions are common examples—they form the bread and butter of modern-day data analytics.

7. Describe your experience working with Spark.

Written in Scala, Spark is a popular unified data analytics engine for large-scale data processing. This question is meant to be open-ended to give candidates a chance to show you how familiar they are with Spark. It’s generally a good sign if they mention RDDs (resilient distributed datasets) or lazy evaluation or if they have experience applying Spark to common big data projects such as:

8. Describe your experience working with Akka.

Akka is a library for creating fault-tolerant, concurrent, and distributed applications on the JVM inspired by the Reactive Manifesto. It uses actor-based concurrency to insulate developers from the details of dealing with low-level threads and locks. This open-ended question should give you insights into whether candidates have experience applying Akka to common big data projects such as those listed above.

9. Explain how pattern matching works in Scala.

Many languages, such as Java, use conditionals such as if/else or switch statements to check a series of possible conditions and take a different action for each condition based on the outcome—in other words, matching patterns. Pattern matching is a mechanism for checking a value against a pattern.

Example of matching on case classes in Scala:

abstract class Devicecase class Phone(model: String) extends Device { def screenOff = "Turning screen off"}case class Computer(model: String) extends Device { def screenSaverOn = "Turning screen saver on..."}
def goIdle(device: Device) = device match { case p: Phone => p.screenOff case c: Computer => c.screenSaverOn}

You can even use pattern matching with containers and container operations:

val list = List("a", "b", "c")val optional = list.headOption
optional match { case Some(s) => s.toUpperCase case None => "EMPTY"}
list match { case first :: _ => s"first element is $first" case _ => "list is empty"}

Scala makes it syntactically simple to compose blocks of cases that let you pattern match tuples, arrays, lists, classes, expressions, and more. Better still, pattern matching makes it easy to decompose object hierarchies, letting you access parameters of an object and process them on a case-by-case basis.

10. What is a monad?

A monad is an FP design pattern that manages complexity through composition. If you come from an object-oriented background, it’s helpful to think of a monad as a type amplifier (such as Nullable in C#) that follows a strict set of laws and supports certain operations (“unit” and bind”) that allow it to compose together functions which can operate on amplified types.

In Scala, this most often takes the form of data structures that use the higher order methods map and flatMap. To qualify as a monad, a type must satisfy these three laws:

1. Associativity

(m flatMap f) flatMap g == m flatMap (x => f(x) flatMap g)

2. Left Unit

unit (x) flatMap f == f(x)

3. Right Unit

m flatMap unit == m

Monads are an advanced topic which is best understood through category theory. It is enough if the interviewee is able to explain common examples of monads in Scala such as list, set, option, and generator.

View less
Schedule a Call