As a Senior Developer, you will work in a cross-functional team with the Product Owner, Designers, and Engineers to co-develop digital products. Our engineers contribute across the full technology stack, from database and DevOps infrastructure that supports continuous deployment, to native apps, and front-end development.
Responsibilities:
- Use Agile engineering practices and various software and web development technologies to rapidly develop creative and efficient solutions that enhance the client, customer, and employee experience.
- Work with other team members to craft clear user stories, design tests for prototypes and products, and continuously deliver product enhancements.
- Liaise with other teams within and outside the Digital unit to negotiate timelines, deliverables, and dependencies.
- Collaborate closely with Product Owners, Designers, and team members to identify and socialize product and delivery risks.
- Drive forward and role-model best practice engineering processes and Agile behaviors, ensuring team members follow suit.
- Communicate with business stakeholders about Agile processes to set and manage expectations regarding delivery timelines.
Skills & Background:
- At least 8 years of software development experience, with experience working in Agile teams.
- Full stack engineer with a passion for mentoring colleagues.
- Extensive experience with Java 7/8, Java EE, Spring framework (including Spring Boot, Spring Cloud, Spring Messaging), JPA, ORM, Maven, and other Java Open Source frameworks.
- Expertise in developing Cloud Native Microservices, Event-Driven design, and Development using Java, with knowledge of Integration Gateway, Monitoring tools, and Observability platforms like Grafana.
- Excellent knowledge of ElasticSearch, Redis, MongoDB, Apache Kafka.
- Infrastructure knowledge including RESTful APIs, Single Sign-On, OAuth, LDAP, Search Technologies.
- Expertise with Docker & Kubernetes.
- Extensive experience with Git (branching, merging, tagging, Pull Requests).
- Experience with CI/CD tools (Jenkins or similar).
- Strong SQL skills and experience with databases such as Oracle, MS SQL, MySQL.
- Experience with code refactoring, design patterns, design-driven development, continuous deployment, and building highly scalable applications and application security.
- Working knowledge and experience in designing distributed applications.
- Familiarity with DevOps, Docker, and infrastructure as code.
- Experience with at least one unit testing framework, such as jUnit.
- Familiarity with Functional Programming concepts is a plus.