Role Description
JRI America (Tralee, Ireland) are seeking a Lead Software Engineer to join the Innovation and FinTech Lab Development Team. This is a superb opportunity where you will be responsible for design and implementation of software solutions with a focus on next generation technologies. You will work initially with a small group of developers on all aspects of delivery. This includes design, coding, unit testing, code reviews, end-to-end testing, supporting the various phases of the SDLC, and automated deployment into the Lab environment and beyond.
Role Objectives
• Collaborate, design develop and document containerized microservices. Integrate with other services both internal and cloud-based providers.
• Participate in the Agile software development process and coordinate with other teams on developments in your group.
• Focus on high quality, secure applications that are verifiable through extensive automated build and test across all phases of the development lifecycle, TTD, Integration, Smoke Testing.
• Collaborate and assist in building out DevOps pipelines that will automate the build, security scanning and deployment of your applications, automate as much as possible.
• Identify and differentiate between services specific to your area of interest and those that could benefit the wider areas of investigation (shared services). Collaborate with platform team to implement and deploy those shared services.
• Provide input to design sessions to ensure solutions are clean, secure, robust, consistent and follow the standards of the lab.
• Think strategically and explore future capabilities as well as current. Innovation is key to the work you do. Explore and share better ways of doing with your own team and others.
• Assist in troubleshooting and problem solving, both at design level and deployed applications.
• Provide support and documentation for handover to downstream development teams that will continue onward development of lab products.
• Guide and mentor junior-level team members to ensure that high-quality and consistent delivery is achieved.
Qualifications and Skills
• Bachelor’s Degree or higher in software development related discipline, information technology, computer science/engineering, etc.
• 10+ years polyglot software development experience in two or more of, Java, Typescript/Javascript and Python
• Demonstratable history of software design and implementation using design and architectural patterns (GoF/PoEAA) and concepts that adhere to SOLID principles.
• Experience and commitment to code quality and test frameworks, JUnit/Mockito/Surefire (Java), Jest, PyTest/Behave, Postman/Bruno and automation requirements for each.
• Understanding of common patterns of enterprise software development, RESTful web services, SOA and/or Microservices, Message and Queue services (Kafka, RabbitMQ, AWS SQS, Azure Storage Queues), Swagger, Observability.
• Strong understanding of authentication and authorization concepts such as IdP (Azure AD/Okta), SAML, OAuth/OpenID, JWT and SSO.
• Experience with containerizing applications with Docker, Docker Compose/Swarm, Kubernetes, Helm.
• At ease with git and various branching strategies, what is required to implement CI/CD pipelines as code (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 utilizing usage of SDKs and services (compute, storage, analytics, etc) ideally Azure but transferrable knowledge from AWS/GCP considered.
• Database design experience (Relational/NoSQL). Good working knowledge of security and performance of transactional data sources, JDBC, JPA and SpringData. Normalization and Denormalization tradeoffs.
• Some experience with Angular and/or React frameworks would be beneficial.