Scala Developer

Job description

About XITE

It’s our mission to share our passion for music videos with the world and invite people to experience music beyond listening: to see music.

XITE is dedicated to building the best music video experience in the world. Based in Amsterdam, XITE now reaches 100 million households across multiple territories through linear networks, interactive TV apps and on-demand streaming services. The company revolutionized the way audiences experience music videos by allowing viewers to search, like and skip through its entire catalog, enjoy channels curated by its team of music experts and create their own channel based on a genre, decade and style using our unique Mixer feature. XITE has a full music video catalog through agreements with all major and top independent music labels and distributors, and works to expand this offering every day.


About the role
We’re looking for a strong middle or senior Scala developer. At XITE we’re building geo-distributed backend services for personalised interactive TV which provides our users with curated music videos channels and content recommendations. Our services are distributed across the world to ensure low latency for API calls. As a small backend team we support and develop several business domains in the company: core services to control STB and web-based clients, IAM and various integrations with billing systems, internal AdsTech stack which forms and optimizes ads stream and others. In our daily work we highly use DevOps approach with CI/CD – we design, develop, deploy and maintain our services in production by ourselves.


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 integration 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
  • Fluency in functional programming paradigm
  • Good 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
  • Experience with streaming processing
  • Experience with Kanban


Nice to have

  • Experience in performance optimizations
  • Understanding the reactive paradigm
  • Ability to write SQL and experience with ClickHouse or similar DBs
  • Experience with Rust
  • Background in test driven development, automated testing, load testing, high availability services and other software engineering best practices
  • BDD


What working at XITE means
Here at XITE we make sure you’re taken care of by providing you the opportunity to develop your career in a young, fast growing and international company. We provide a challenging work environment where you have a lot of autonomy and flexible working hours. We don’t hire assholes! All XITE’ers are different and authentic in their own way, but we all have kindness in common, as well as professionalism and an optimistic attitude. Let’s not forget - we have a passion for good music and good food. That’s why we have chef prepared lunches, Friday afternoon drinks and rooftop parties! Click here to see our benefits.

The process

  1. Apply: Apply for a role and we will contact you
  2. HR Interview: One of our recruiters will contact you, because we’d really like to find out more about you and to see if there is a culture fit between you and XITE. During this interview you can ask all your questions about the company.
  3. Technical Assignment: This is your moment to shine and let us know what skills you offer! You get one week to make this assignment. Need more time? Not a problem, just let us know!
  4. 1st Technical interview: To know more about your technical background.
  5. 2nd Technical interview with the Team: We will dive into your Technical assignment with two XITE colleagues. You will also have the opportunity to ask all your own questions.
  6. Offer: Hopefully with our offer we can welcome you to the team of XITE.


Up for the challenge? Then hit that ‘Apply for this Job’ button!