Job responsibilities
- Regularly provides technical guidance and direction to support the business and its technical teams, contractors, and vendors
- Develops secure and high-quality production code, and reviews and debugs code written by others
- Drives decisions that influence the product design, application functionality, and technical operations and processes
- Actively contributes to the engineering community as an advocate of firmwide frameworks, tools, and practices of the Software Development Life Cycle
- Influences peers and project decision-makers to consider the use and application of leading-edge technologies
- Adds to the team culture of diversity, equity, inclusion, and respect
- Provide leadership and direction for the Technical delivery of project objectives and changes to meet business requirements
- Provide oversight and leadership for data movement and transformative development activities
- Provide high quality technology solutions that address business needs and manage code quality for total build effort
- Design software to produce scalable and resilient technical designs
- Create Automated Unit Tests using Flexible/Open Source Frameworks using a Test Driven Development (TDD)/ Domain Driven Design (DDD)
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts and 5+ years of applied experience
- Hands-on practical experience delivering system design, application development, testing, operational stability, and data and infrastructure architecture disciplines
- Ability to tackle design and functionality problems independently with little to no oversight
- Hands-on development and leading a team of software engineers
- Advanced knowledge of architecture, design across all systems and multi-threaded Programming knowledge
- Ability to work in large, collaborative teams to achieve organizational goals, and passionate about building an innovative culture
- Hands-on Experience in Micro Services Design and Development - adhering to Cloud principles such as AWS
- Implementation knowledge of managing asynchronous communication using Kafka or other JMS broker solutions to achieve similar result
- RDBMS experience preferably with Oracle and experience with Code Reviews – PMD, JUNIT, Performance, Memory Management
- Knowledge of Agile Development approach and working experience with continuous integration/development using Jenkins/Maven
- Expertise in Java (8 or above), spring boot, spring-core, Hibernate, RESTful, GraphQL, Kafka, Oracle, NoSql, Maven, Jenkins, GIT, mockito, jacoco
Preferred qualifications, capabilities, and skills
- Experience with developing frameworks to increase developer and release velocity, improve code health and technical standards
- Knowledge of the financial services industry and their IT systems
- Understanding of financial control and budget management
- Experience working with containers including Kubernetes and Docker