Job Description :
Lead Software Engineer

Primary Responsibilities:
? Manage and lead a diverse, expert team of 4 - 5 software engineers that will engage to resolve issues on large commercial software platform
? Perform all phases of software engineering including requirements analysis, application design, code development and testing
? Design and implement performance and operational enhancements
? Design reusable components, frameworks and libraries
? Review code and provide feedback relative to best practices and improving performance
? Troubleshoot production support issues post-deployment and come up with solutions as require
? Work very closely with architecture groups and drive solutions
? Participate in an Agile/Scrum methodology to deliver high-quality software releases every 2 weeks through Sprints
? Mentor and guide other software engineers within the team
? Collaborate and influence proactive system monitoring practices and strategies to help identify issues before any customer impact
? Create a mindset and culture within the team that embraces identifying, owning, and solving issues, driving quality, improving performance, and improving the customer experience
? Contribute to strategies to build knowledge bases, define metrics, service level agreements (SLAs), and processes to drive efficiencies in issue identification and resolution
? Designs, codes, tests, debug, and documents software, and enhance existing components to ensure that software meets business needs
? Contribute to the design and architecture to enable secure, scalable, and maintainable software and should be able to clearly articulate the implications of design / architectural decisions, issues and plans to technology leadership
? Collaborate with existing architecture, delivery, infrastructure and operations teams to address and implement solutions to identified issues
? Estimate engineering work effort for engineering team and effectively identify and prioritize the high impact tasks

6+ years of Java or Object Oriented programming language experience
4+ years experience with automated unit testing technologies (such as JUnit, Spock, or similar)
4+ years experience with relational databases and SQL
4+ years experience in one or more ORM technologies (like Hibernate, JPA, or similar)
2+ years of experience in technical leadership
Understanding of non-functional system specifications and requirements
Excellent written communication skills and ability to document technical content

Experience with Spring framework
Experience with APIs/microservices
Experience performing code reviews
Experience with Groovy
Experience with Spock
Experience implementing performant code and code optimization
Experience working in an Agile CI/CD (Continuous Integration/Continuous Delivery) development environment
Four year degree in computer science or equivalent experience