Owning and maintaining parts of the product and technology, striving to become a subject matter expert.
Understand the dependencies between components and how they combine to deliver service to the consumer and business.
Writing simple and extendable code following standards and best practices, testing your own code.
Helping your team evolve by engaging in the code review process, design discussions, team planning, and support ticket reviews.
Taking on projects and make software enhancements that improve the team software and processes.
Working to resolve the root cause of complex problems, leaving software better and easier to maintain than when you found it.
Estimating stories/tasks accurately and deliver them in time.
You keep yourself up to date with industry tools, utilities, and emerging technologies.
Collaborating with cross-functional teams including product owners, front-end engineers, and DevOps to deliver high-quality features and improvements.
Requirements
Experience in developing distributed, highly scalable and available back-end systems and RESTful APIs using Java
Experience with best practices around versioning, error handling, and security with a focus on code quality
Experience in writing automated (unit, component and integration) tests
Experience working with cloud-based infrastructure and technologies, preferably AWS
Experience working on critical systems (ideally high volume and at scale) and understanding of operational excellence and best practices that apply to meet the associated challenges
Familiarity with Spring Boot and the wider Spring ecosystem (e.g., Spring Data, Spring Security, Spring Cloud).
Familiarity with software projects leveraging shared (multi-team/org) contribution model
Familiarity working in an Agile environment
Comfortable with Git and collaborative development practices such as pull requests, branching strategies, and code reviews.
Understanding non-relational databases, messaging queues, event streaming and concurrency