Skip to content

Medior/Senior Scala Developer

  • Hybrid
    • Amsterdam, Netherlands

Job description

We’re looking for a strong medior or senior Scala developer with good Python experience.

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 your music.

XITE is dedicated to building the best music video experience in the world. Based in Amsterdam, XITE now reaches 100 million households across North America and Europe through linear (FAST) 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 catalogue, enjoy playlists curated by its team of music experts and create their own playlist based on a genre, decade, style or mood using its unique Mixer feature. XITE has a full music video catalogue through agreements with all major and top independent music labels and distributors, and works to expand this offering every day.

About the role & the team

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 TV (STB) and web-based clients, IAM and various integrations with billing systems, internal AdsTech stack which forms and optimizes ads stream and data infrastructure used for personalization and business intelligence purposes. In our daily work we use DevOps and GitOps approaches – we design, develop, deploy and maintain our services in production ourselves.

Our tech stack

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

  • Python 3 (pandas, pydantic, numpy, grpcio).

  • Reactive microservices architecture (managed by Kubernetes + Istio).

  • Event sourcing (event log on Kafka).

  • gRPC for sync communications among services.

  • MongoDB, PostgreSQL, Redis.

  • Monorepo with Scala and Python artefacts managed by Bazel.

  • Prometheus, Grafana, CircleCI, ArgoCD.

  • ClickHouse, Superset & AirFlow for internal analytics.

Responsibilities

  • Design and develop efficient, scalable and reliable components and services: Core, AdsTech, Billing, internal shared libs, data pipelines and data-heavy services (e.g. 3rd party integrations, data reports, etc).

  • Improve on performance, 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 a healthy level of documentation for major tech design decisions.

Requirements

  • Experience with Scala, Python and DevOps/GitOps.

  • Ability to write SQL and experience with ClickHouse or similar OLAP DBs.

  • Experience in batch data processing pipelines.

  • Fluent in English both verbally and written.

  • Strong communication skills.

  • For this position we have a strong preference for candidates living in the Netherlands (as we would like to see you 3 times per week in the office).

Nice to have

  • Experience in performance optimizations.

  • Understanding distributed systems, reactive paradigm, CQRS, CAP theorem.

  • Test driven development (TDD/BDD), automated testing, load testing, high availability and other software engineering best practices.

Working at XITE

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. 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 parties! Click here to see our benefits.

Our hiring process

1. Apply: Apply for the role, and we will contact you.

2. Interview (online): One of our recruiters will contact you for a first online interview. During this interview you can ask all your questions about the company.

3. Technical interview. In this interview our Director of Engineering and our Senior Backend Developer want to get to know you a bit better and in this interview you will dive deeper into the role and talk about your engineering skills and technical knowledge.

4.Final interview with one of our MT members: in this final interview you will meet one of our MT members responsible for the Data Engineering team.

5. Reference check: We ask you for 2 references that we can give a call and ask a few questions as a part of our hiring process.

6. Offer: Hopefully with our offer, we can welcome you to the team of XITE!


Does this sound like you?

Click ‘Apply’ to apply directly!


or

Details

Hybrid
  • Amsterdam, Noord-Holland, Netherlands