Connecting...

Banner Default Image

Functional Scala Engineer

Job title Functional Scala Engineer
Location Amsterdam
Industry:
Reference: 2361
Contact name: Jacob Evident
Contact email: jacob.evident@signify-tech.com
Published: November 16, 2021 10:22

Job Description

Scala Engineer

Fully Remote (EU Based)

 

Signify Technologies’ client is a leading streaming service looking for strong Scala engineers to join their growing team as soon as possible.

 

Main responsibilities

- Design and develop efficient, scalable and reliable components and services (Core, AdsTech, Billing, internal shared libs, etc)

- Improve on reliability and observability of our production systems

- Writing unit and integrational tests for new and existing features

- Pull requests code review, CI/CD improvements

- Maintain healthy level of documentation for major design decisions

 

Our tech stack

- Reactive microservices architecture (managed by Kubernetes + Istio)

- Event sourcing (event log on Kafka)

- gRPC for sync communications among services

- Scala (cats, cats-effect, fs2, circe, http4s, monocle, doobie, scalatest)

- MongoDB, PostgreSQL, Redis, RocksDB

- Monorepo with bazel for builds & deployments

- Prometheus, Grafana, CircleCI

- ClickHouse + Superset for internal analytics, ELK for logs

Requirements

- At least 2 years of Scala experience

- Minimum 4 years of total software development experience

- Good knowledge of JVM

- Fluency in functional programming paradigm (experience with Typelevel stack)

- Knowledge of standard algorithms and data structures

- Basic Linux / POSIX skills

- Experience developing RESTful API services, using relational and non-relational databases

- Understanding of concurrency and parallelism paradigms

- Proactiveness and good communication skills

 

Nice to have

- Experience with Kubernetes

- Experience with Bazel

- Experience in streaming processing

- Experience in performance optimizations

- Ability to write efficient SQL queries (preferably in ClickHouse)

- Basic data engineering skills

- Background in TDD, BDD, load testing, high availability and other software engineering best practices