Remote

Senior Scala Engineer - Distributed Systems Team (m/f/x)

commercetools logo

commercetools

Berlin - Germany 🇩🇪

Please note that for this role, we can currently offer full-remote work for candidates based in the following countries: Austria, Bulgaria, Croatia, Czech Republic, Estonia, France, Greece, Hungary, Italy, Latvia, Lithuania, the Netherlands, Poland, Portugal, Romania, Slovakia, Spain, the United Kingdom.

Would you like to work with enthusiastic and experienced Software Engineers in an agile, international environment with a modern tech-stack (#Functionalprogramming, #CloudNative, #Scala, #EventDriven)? Are you thrilled by getting your hands on one of the most innovative, modern commerce platforms the world has seen? Your heart beats Scala, you breathe functional programming, you dream about solving complex problems? Do you like to put yourself in the shoes of your fellow developers using our APIs? Sounds like commercetools is the perfect match!

About your team:

We are a team that focuses on innovation to build a backend platform using distributed and event-driven systems. We enjoy working in a highly collaborative way. We achieve and grow together as a Team!

About your new role:

  • Build and maintain scalable multi-tenant and event-sourced architecture in scala.
  • Develop and maintain the core of our multi-tenant architecture.
  • Work on authentication and single-sign-on solutions.
  • Design and develop distributed systems architecture and help grow the system and support other teams.
  • Design and implement an event-driven system for the platform to subscribe and react to events.
  • Innovate and develop platform extensibility using serverless technologies eg. AWS Lambda
  • Test software components regarding usability, functionality, and performance and work closely with Product Management
  • Taking part in on-call rotation (with the worldwide distributed team) for production systems

Skills & Requirements:

  • At least 4 years experience as Software Engineer working with Scala.
  • Experience with building and/or running distributed systems with cloud services.
  • Knowledge of current trends in software design, event-driven architecture.
  • Insights in functional programming and practical work experience with Scala and in developing server-side systems using the JVM
  • Solid understanding of parallel and asynchronous programming as well as non-blocking I/O
  • Experience in developing REST APIs and knowledge of scalable distributed architectures (incl. sharding, replication, load balancing, and failover)

Nice to have:

  • Knowledge of OAuth 2.0
  • Serverless technology from cloud providers eg. AWS Lambda.
  • Experience with multiple cloud providers AWS, Azure, Google Cloud.