Job Description
Job DescriptionJob Overview: As a Scala Developer in our team, you work with large scale manufacturing data coming from our globally distributed plants. You will focus on building efficient, scalable & data-driven applications that – among other use cases – connect IoT devices, pre-process, standardize or enrich data, feed ML models or generate alerts for shopfloor operators.The data sets produced by these applications – whether data streams or data at rest – need to be highly available, reliable, consistent and quality-assured so that they can serve as input to wide range of other use cases and downstream applications.We run these applications on a Kubernetes based, edge data platform in our plants. The platform is currently in ramp-up phase, so apart from building applications, you will also contribute to scaling the platform including topics such as automation and observability.Finally, you are expected to interact with customers and other technical teams e.g. for requirements clarification & definition of data models.Primary responsibilities: · Develop, deploy and operate data processing applications running on Kubernetes written in Scala (we leverage Kafka for messaging, Spark, KStreams and ZIO for data processing, PostgreSQL and S3 for storage)Contribute to ramp-up of our edge data processing platform incl. topics such as deployment automation, building CI/CD pipelines (we use Github Actions + ArgoCD) and evaluation of platform extensionsDiscuss requirements with stakeholders such as customers or up- and downstream development teamsDerive design proposals incl. meaningful data modelsEngage in design discussions with team members, architects & technical leadershipReview code contributed by other team membersDepending on experience, mentor junior team membersQualificationsBachelor’s degree in computer science, Computer Engineering, relevant technical field, or equivalent3-5 years of experience in data engineering and / or backend developmentExperience developing software in a JVM-based language. Scala preferred, but Java, Kotlin or Clojure also accepted.Experience with data-driven backend software developmentExperience with object-oriented & functional programming principlesDeep level of understanding in distributed systems for data storage and processing (e.g. Kafka ecosystem, Spark, Flink, HDFS, S3)Experience with RDBMS (e.g. Postgres)(optional) prior experience with functional stream processing libraries such as fs2, zio-streams or akka streamsExcellent software engineering skills (i.e., data structures & algorithms, software design)Excellent problem-solving, investigative, and troubleshooting skillsExperience with CI/CD tools such as Jenkins or Github ActionsComfortable with Linux and scripting languages for workflow automationAdditional InformationSoft Skills:Good Communication Skills to interact with Customers and other stakeholders Very Good level of English as the Business Language