Senior Software Engineer
We are seeking a talented Senior Software Engineer to join our Innovation and FinTech Lab Development Team.
About the Role
This is an exciting opportunity to work on cutting-edge software solutions with a specific focus on next-generation payment technologies.
Responsibilities
* Containerized Microservices Development: Collaborate, design, develop, and document containerized microservices using Java and Spring Boot. Integrate these services with other internal and cloud-based providers.
* Agile Software Development: Participate in the Agile software development process and coordinate with other teams within your group.
* Quality and Security: Focus on building high-quality and secure applications, ensuring extensive automated build and testing across all development lifecycle phases, including Test-Driven Development (TDD), integration testing, and smoke testing.
* DevOps Automation: Collaborate and assist in building DevOps pipelines to automate the build, security scanning, and deployment of your applications, striving for maximum automation.
* Solution Design and Standards: Provide valuable input to design sessions to ensure that solutions are clean, secure, robust, consistent, and adhere to the lab's standards.
* Troubleshooting and Support: Assist in troubleshooting and problem-solving, both at the design level and for deployed applications.
* Documentation and Handover: Provide support and documentation for handover to downstream development teams for further development of lab products.
Requirements
* Bachelor's Degree or higher in a software development-related discipline, information technology, computer science/engineering, etc.
* 10+ years of software development experience, with at least 5 years working with Java and Spring Boot.
* Demonstrable history of software design and implementation using design and architectural patterns (GoF) and commitment to SOLID principles.
* Proficiency in test frameworks such as JUnit, Mockito, Surefire, and Postman, with an emphasis on code quality and test automation.
* Experience with containerizing applications using technologies like Docker, Docker Compose/Swarm, Kubernetes, and Helm.
* Proficiency in version control systems like git and knowledge of implementing CI/CD pipelines as code.
Preferred Qualifications
* Some experience with NodeJS, Angular, and/or React frameworks would be beneficial.
* Database design experience (Relational/NoSQL) and good working knowledge of security and performance of transactional data sources, JDBC, JPA, and SpringData.