Position: Senior Scala Engineer
Company: GlobalLogic
Category: Java
Experience required: 5y
English level: upper

The legacy system is built on:
- Scala
- Akka
- Kafka
- Docker
- AWS

Part of the new system we are building on the following stack:
- Java
- Spring
- Kafka
- Docker
- Kubernetes
- Istio

PostgreSQL is used in both for persistence.

Requirements:
- BS/MS degree in Computer Science or related field, and 5+ years of relevant work experience
- Outstanding technical problem-solving, design and coding skills
- A proven ability to learn and adapt to new, complex development environments with deep dive analytical skills
- 2 + years’ experience building distributed highly scalable hosted (SaaS) solutions
- Programming in functional paradigm language, such as Scala
- Proficiency with relational data stores
- Dedicated to producing quality code through best practices

Desired Skills
- Experience with distributed streaming platforms, such as Kafka
- Reactive programming principles using frameworks like Akka and Play
- Working knowledge of Java open source frameworks
- Deep familiarity with RESTful Web APIs, JSON, web services and Linux environment
- Cryptography, security, and data privacy
- Experience developing for Continuous Deployment on AWS, GCP or similar

Preferences:

Java, Kafka, AWS, Docker

Responsibilities:

As a Senior Software Engineer on a highly skilled Cloud Platform team, you will be expanding and improving common libraries and services used by the rest of the engineering organization to expose application features and functionality in the cloud. You will focus on backend infrastructure, while leveraging proven distributed systems experience. You will strive to make the system faster to build, better tested, easier to deploy and more observable.
- Play an important role in the design and implementation of our highly scalable hosted (SaaS) solutions, with lots of autonomy while receiving guidance and feedback to help you grow
- Assume full range of software engineering responsibilities, including architecture, design, development, testing and production support
- Collaborate with DevOps, Product Management, Release Delivery, Customer Support and other groups towards developing most optimal solutions and troubleshooting issues
- Practice modern agile software development practices that deliver high quality code: continuous integration and deployment, and automated testing