Job Description
Role Overview:
- As a Senior Software Engineer, you work in a team that owns the design, development, and operations for mission-critical applications of the payments business. You are responsible for developing backend applications using best practices.
Key Responsibilities:
- Delivering complete features and maintaining existing ones.
- Design and implement scalable distributed systems using Kubernetes, Docker, and other tools in the Cloud Native landscape.
- Build configuration and deployment assets required to deploy and run the distributed applications.
- Work with the frontend and API engineers to define RESTFul API Specifications.
- Creating self-contained, reusable, and testable microservices and components.
- Participating in Sprint planning and tracking work items
- Work well with technical and non-technical people to deliver high-value results
- Ensure that all written code and architecture is high quality, scalable, and performant
- Take initiative in refactoring and keep things simple
- Take full ownership of a feature set, from the first discussion to going live.
- Using test-driven development to write well-tested code.
- Fixing bugs fast and taking your time to solve hard problems well.
- Prototyping new ideas to help with initial feature definition.
- Participating in architecture and code reviews.
- Ability to communicate with team members and stakeholders - especially in writing.
Educational Requirements, Skills, and Qualifications:
- Bachelor's degree in Information Technology, Software Engineering, Computer Science or related field
- 5+ years of industry experience building and operating large-scale, highly available distributed systems.
- 7y+ Experience with Java on large-scale projects.
- Strong knowledge of building cloud-native applications using Java and Springboot.
- Strong knowledge of data structures, algorithms, operating systems, and distributed systems fundamentals.
- Highly skilled in unit and automated testing in Springboot.
- Experience building multi-tenant distributed SAAS applications
- Experience with CI/CD.
- Experience with performance analysis and optimization in Java is a strong plus.
- Proven system design experience.
- Ability to understand and break down large features into complete solutions.
- Excellent interpersonal skills and ability to work well with all levels of engineers and other disciplines.
- High agency, proficient, autonomous, and rigorous behavior.
- You’ve mentored teammates on new ways to deepen their technical craft.