Lead Software Engineer - Java Backend
Job description
JOB DESCRIPTIONOur Purpose Mastercard powers economies and empowers people in 200+ countries and territories worldwide. Together with our customers, we're helping build a sustainable economy where everyone can prosper. We support a wide range of digital payments choices, making transactions secure, simple, smart and accessible.
Our technology and innovation, partnerships and networks combine to deliver a unique set of products and services that help people, businesses and governments realize their greatest potential.
Title and Summary Lead Software Engineer - Java Backend
Overview
- Responsible for the analysis, design, development and delivery of software solutions
- Defines requirements for new applications and customizations, adhering to standards, processes and best practices
- Overall career experience of 8-13 years into Software Development
- Profound experience developing scalable, high performing application real-time and batch processing.
- Design and Architecture patterns - APIs, event-driven-services, batch-services, messaging systems
- Programming - Java, REST API, Micro-services, Spring boot, Spring Batch and Kafka
- Cloud and DevOps Architecture - Kubernetes, Docker, Chef, Azure, AWS
- Databases - Oracle and any open source
- Tools - Eclipse or IntelliJ, Sonar, GIT, Maven, SQL Developer, Jenkins, CI/CD
- Has ability to write secure code Java and familiar with secure coding standards (e.g., OWASP, CWE, SEI CERT) and vulnerability management
- Understands the basic engineering principles used in building and running mission critical software capabilities (security, customer experience, testing, operability, simplification, service-oriented architecture)
- Able to perform debugging and troubleshooting to analyze core, heap, thread dumps and remove coding errors
- Understands and implements standard branching (e.g., Gitflow) and peer review practices
- Has skills in test driven and behavior driven development (TDD and BDD) to build just enough code and collaborate on the desired functionality
- Understands use cases for advanced design patterns (e.g., service-to-worker, MVC, API gateway, intercepting filter, dependency injection, lazy loading, all from the gang of four) to implement efficient code
- Understands and implements Application Programming Interface (API) standards and cataloging to drive API/service adoption and commercialization
- Has skills to author test code with lots of smaller tests followed by few contract tests at service level and fewer journey tests at the integration level (Test Pyramid concept)
- Apply tools (e.g., Sonar, Zally, Checkmarx) and techniques to scan and measure code quality and anti-patterns as part of development activity
- Has skills to collaborate with team and business stakeholders to estimate requirements (e.g., story pointing) and prioritize based on business value
- Has skills to elaborate and estimate non-functional requirements, including security (e.g., data protection, authentication, authorization), regulatory, and performance (SLAs, throughput, transactions per second)
- Has skills to orchestrate release workflows and pipelines, and apply standardized pipelines via APIs to achieve CI and CD using industry standard tools (e.g., Jenkins, AWS/Azure pipelines, XL Release, others).
- Has skills to understand, report, and optimize delivery metrics to continuously improve upon them (e.g., velocity, throughput, lead time, defect leakage, burndown)
- Has skills to document and drive definition-of-done for requirements to meet both business and operational needs
- Understands how to build robust tests to minimize defect leakage by performing regression, performance, deployment verification, and release testing
- Has skills to conduct product demos and co-ordinate with product owners to drive product acceptance signoffs
- Has skills to understand customer journeys and ensure a Mastercard good experience by continuously reducing Mean time to mitigate (MTTM) for incidents and ensuring high availability (99.95% as a starting point)
- Participate in team prioritization discussions with Product/Business stakeholders
- Estimate and own delivery tasks (design, dev, test, deployment, configuration, documentation) to meet the business requirements
- Automate build, operate, and run aspects of software
- Drive code/design/process trade-off discussions within their team when required
- Report status and manage risks within their primary application/service
- Drive integration of services focusing on customer journey and experience
- Perform demos/acceptance discussions in interacting with Product owners
- Understand operational and engineering experience, actively works to improve experience and metrics in ownership area
- Develop complete understanding of end-to-end technical architecture and dependency systems
- Drive adoption of technology standards and opinionated frameworks, and review coding, test, and automation work of team members
- Mentor and guide new and less-experienced team members
- Identify opportunities to improve an overall process and trim waste
- Share and seek knowledge within their Guild/Program to drive reuse of patterns/libraries/practices and enhance productivity
- Bachelor's degree in Computer Science, Engineering, or a related field (or equivalent experience).
- Proven track record of coding for complex software systems at scale in a fast-paced environment.
- Abide by Mastercard's security policies and practices
- Ensure the confidentiality and integrity of the information being accessed
- Report any suspected information security violation or breach
- Complete all periodic mandatory security trainings in accordance with Mastercard's guidelines.
Save job
Locations Location: Pune, India, 411006
Interested in this role?