Job responsibilities
- Lead the technical direction of key components within the Core Banking Platform
- Design and architect scalable, resilient microservices and distributed systems
- Create and maintain technical roadmaps for system components and services
- Mentor junior and intermediate engineers through code reviews, pair programming, and knowledge sharing
- Drive systems design discussions and make critical architectural decisions
- Implement complex features requiring deep technical expertise
- Establish and enforce coding standards, best practices, and design patterns
- Review and approve technical designs from team members
- Collaborate with product management to translate business requirements into technical specifications
- Work cross-functionally with other engineering teams on integration points and shared services
- Lead technical debt reduction efforts and system optimization initiatives
Required qualifications, capabilities, and skills
- Formal training or certification on Java software engineering concepts and 5+ years applied experience. In addition, 2+ years of experience leading technologists to manage and solve complex technical items within your domain of expertise.
- Proven experience as a technical lead or in a senior engineering role
- Expert knowledge of Spring Framework ecosystem (Spring Boot, Spring Cloud)
- Strong experience designing and implementing microservices architectures
- Advanced understanding of distributed systems concepts and patterns
- Deep knowledge of data modeling and database design (particularly PostgreSQL)
- Experience with messaging systems and event-driven architecture (Kafka)
- Proficiency with AWS cloud services and infrastructure
- Strong understanding of containerization and orchestration (Docker, Kubernetes)
- Experience with CI/CD pipelines and DevOps practices
- Advanced knowledge of software design patterns and architecture principles
Preferred qualifications, capabilities, and skills
- Experience in the banking or financial services industry
- Experience with reactive programming models (Project Reactor, RxJava)
- Experience with Apache Spark for large-scale data processing and analytics
- Experience with infrastructure as code (Terraform, CloudFormation)
- Knowledge of multiple JVM languages (Java, Kotlin, Scala)
- Experience with DDD (Domain-Driven Design) and/or CQRS patterns
- Background in leading system migrations or modernization efforts