Senior Backend Engineer

Full-time (40 hours)

Your Role and Responsibilities

A passionate software developer and architect with interest in distributed and scalable systems. Our product is used in environments with a number of devices ranging from a few hundred to several thousand, and our backend services are deployable on bare metal servers, virtual machines or the cloud. We need a new team member who can help us scale the system to receive, store and analyze data coming from hundreds of thousands or even millions of devices, all while being resilient to spikes in activity and unforeseen failures.


As an Application Developer, you will lead IBM into the future by translating system requirements into the design and development of customized systems in an agile environment.  The success of IBM is in your hands as you transform vital business needs into code and drive innovation. Your work will power IBM and its clients globally, collaborating and integrating code into enterprise systems. You will have access to the latest education, tools and technology, and a limitless career path with the world’s technology leader. Come to IBM and make a global impact!

Required Technical and Professional Expertise

  • Preferably 10+ years of industry experience
  • Scala programming language and tools (e.g. sbt)
  • Fundamentals of functional programming
  • Akka framework: actors, persistence, streams, akka-http, akka-cluster
  • Peculiarities, problems, and patterns of distributed systems (CQRS, Event Sourcing)
  • Architecture styles for distributed systems (service based, microservices, event-driven, stream-processing, …)
  • Familiarity with container orchestration tools like Kubernetes
  • Characteristics and applicability of SQL and NoSQL databases (e.g. CAP)
  • Code testing tools and methodologies (e.g. TDD)

Preferred Technical and Professional Experience

  • Familiarity with a few other programming languages and environments, such as Python, and/or Typescript
  • Experience with Cassandra and Elasticsearch
  • [optional] Familiarity with the Scala ecosystem to some extent (Cats, ZIO, …)
  • [optional] Experience with scaling systems to cloud platforms (latency, throughput, …)
  • [optional] Experience with cybersecurity