The Lead Software Engineer is responsible for design, implementation, testing and maintenance of innovative software products. The successful candidate must be able to quickly learn existing systems and components, and have experience in shipping user-facing products, working in large code bases, and managing a team of developers.
Requirements
- BA/BS in Information Systems, Computer Science, Engineering, or a related field
- 6+ years of hands-on coding experience in Java
- 2+ years of experience as a team lead
- Strong knowledge of Java 17
- Strong knowledge and hands on experience on Spring Framework
- Experience in multi-threading programming, distributed systems, developing highly performant and scalable applications
- Experience diagnosing and fixing memory and resource bottlenecks
- Strong knowledge and hands on experience with any RDBMS and Docker
- Good understanding of OAuth 2.0 authentication flows
- Good Knowledge of various design patterns
- Experience with JMS, Elasticsearch/OpenSearch, Kafka
- Knowledge of AWS or any cloud-based platform
- Knowledge of CI/CD
- Able to learn quickly and effectively apply new knowledge
- Strong analytical skills, problem-solving ability and attention to details
- Experience with Agile Development & Continuous Integration
- Excellent written and oral communication skills