Senior – Scala Developer

Work as a Senior Scala Backend Developer and get to work with Scala/Java, Akka, Kafka and Cassandra. You will also contribute on improving the development life-cycle and mentoring the team.

Job Responsibilities:

  • Develops Akka based microservices using Scala/Java and scale them out by using the clustering and sharding capabilities.
  • Apply Event Sourcing, Backpressure and CQRS patterns when applicable.
  • Containerize microservices using Dockers to improve testability, portability and deployability.
  • Produce property based and unit tests to help ensuring the quality of the code.
  • Design REST and/or Message based APIs and outline the interactions amongst them.
  • Provide feedback to the architects on the designs so we get to improve our architecture through experience.
  • Contribute on improving the development lifecycle and mentor other members of the team.
  • Oversee works and possible trainings for the Junior and Mid Developers.

Job Requirements:

  • With a degree in Computer Science or any related courses.
  • With a minimum of five (5) years’ experience as a Senior Developer/Engineer from the same field.
  • Profound knowledge of the Actor Model and experience with the Akka Framework.
  • Solid hands-on experience in Functional/Object-Oriented Programming and developing Scala/Java applications.
  • Mastery skills in Slack – Giphy plugins, GIT, SBT/Maven.
  • Familiar with REST APIs and Message Brokers.
  • Must be a team player with highly developed English communication skills both towards co-Programmers and Project Managers.
  • Innovative and strategic, with good time management yet delivering quality results.

Desirable Technical Skills:

  • Bitbucket, JIRA and Confluence.
  • Agile Development Process (Scrum).
  • Microservice oriented architecture and patterns such as event sourcing and CQRS.
  • NoSQL databases such as Cassandra, DynamoDB, Riak.
  • Akka Extensions: Clustering, Sharding, Streams, Distributed Pub/Sub.
  • Testing libraries: ScalaTest, Specs2, ScalaCheck, Mockito.
  • Containerization with Docker.
  • Bench-marking and optimization.
  • Leadership and people management skills.
Fields marked with an * are required