Senior Software Engineer
An esteemed company located in Tralee, Ireland, is seeking a talented Senior Software Engineer to join their Innovation and FinTech Lab Development Team.
This is a fantastic opportunity to work on cutting-edge software solutions with a specific focus on next-generation payment technologies.
As a Software Engineer, you will collaborate with a small group of developers to deliver high-quality applications from design to automated deployment within the Lab environment.
-----------------------------------
Responsibilities:
1. 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.
2. Agile Software Development: Participate in the Agile software development process and coordinate with other teams within your group.
3. 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 (TTD), integration testing, and smoke testing.
4. DevOps Automation: Collaborate and assist in building DevOps pipelines to automate the build, security scanning, and deployment of your applications, striving for maximum automation.
5. SERVICES Differentiation and Collaboration: Identify and differentiate between services specific to your area of interest and those that could benefit wider areas of investigation (shared services). Collaborate with the platform team to implement and deploy these shared services.
6. 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.
7. Strategic Thinking and Innovation: Think strategically and explore future capabilities while fostering innovation within your team and across the organization. Share better ways of doing things to drive continuous improvement.
8. Troubleshooting and Support: Assist in troubleshooting and problem-solving, both at the design level and for deployed applications.
9. Documentation and Handover: Provide support and documentation for handover to downstream development teams for further development of lab products.
10. Mentorship: Guide and mentor junior-level team members to ensure high-quality and consistent delivery.
-----------------------------------
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. Familiarity with code coverage tools like JaCoCo or Cobertura.
* Understanding of common patterns of enterprise software development, including RESTful web services, SOA, Microservices, and Message and Queue services (e.g., Kafka, RabbitMQ, AWS SQS, Azure Storage Queues), as well as Swagger and Observability.
* Strong understanding of authentication and authorization concepts, including IdP (Azure AD/Okta), SAML, OAuth/OpenID, JWT, and SSO.
* 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 (e.g., Jenkins, Azure DevOps).
* Familiarity with requirements and usage of vulnerability scanning tools for code and dependencies, such as SonaType Nexus IQ and SonarQube.
* Developed secure software for cloud infrastructures, ideally in Azure, with transferrable knowledge from AWS/GCP considered.
* Database design experience (Relational/NoSQL) and good working knowledge of security and performance of transactional data sources, JDBC, JPA, and SpringData. Understanding of normalization and denormalization trade-offs.
* Some experience with NodeJS, Angular, and/or React frameworks would be beneficial.
-----------------------------------
Duration:
12 Month Contract