We are seeking an experienced Lead Software Engineer to develop and maintain scalable, high-availability platform notification services. The ideal candidate will have strong expertise in Java, Scala, Akka, AWS, microservices architecture, and CI/CD practices.
You will work on mission-critical notification services that enable customers to receive alerts about important events, helping them efficiently operate engines and machinery.
Required Technical Skills
- 10+ years of software development experience with a Bachelor's degree OR 8+ years with a Master's degree.
- 5+ years of Java 8+ development experience.
- 3+ years of hands-on Scala programming experience.
- 2+ years of experience with Akka technologies (Actors, Streams, HTTP, Persistence).
- Strong experience with AWS cloud services.
- Experience designing and developing microservices.
- Hands-on experience with CI/CD tools such as Jenkins or Azure DevOps.
- Strong understanding of data structures, algorithms, and computer science fundamentals.
Key Responsibilities
- Design, develop, and maintain scalable services using Scala and Akka.
- Work independently on complex application and infrastructure challenges.
- Develop highly available, reliable, and distributed applications.
- Lead application development initiatives and deliver business-critical features.
- Mentor and provide technical guidance to other software engineers.
- Establish and maintain software development best practices.
- Collaborate with stakeholders, end users, and cross-functional teams.
- Perform integration testing and customer acceptance testing.
- Prepare technical documentation and operational guides.
Preferred Qualifications
- Experience with AWS services: API Gateway, ALB, NLB, Fargate, Lambda, S3, CloudWatch, IAM, CloudFormation.
- Experience with PostgreSQL and NoSQL databases such as DynamoDB.
- Strong understanding of event-driven architecture and reactive systems.
- Experience with Spring Boot and RESTful API development.
- Knowledge of functional programming.
- Exposure to ZIO and type-level programming.
- Experience working in Agile/Scrum environments.
- Demonstrated technical leadership on small to medium-scale projects.