The Role
What's it all about and what we expect you to do day to day
- Own software delivery tasks (code development, test, deployment) at an application/software component level.
- Able to troubleshoot and refactor existing code for exceptional code quality.
- Adopt new languages and architecture patterns needed for the work.
- Participate and contribute to the team's agile process and decisions.
- Pull from backlog and deliver work after seeking guidance from experienced team members and in partnership with the full scrum team.
- Understand the big picture and end-to-end logical architecture of systems in ownership areas.
- Provide feedback and suggestions on areas to improve.
- Understand the use of Mastercard technology policies in everyday work.
- Demonstrate active learning and sharing of software practices via Guild/Engineering community initiatives.
- Influence decisions made by the team.
- Assist peers and less experienced members.
- Assist in technical documentation of APIs and services being delivered.
All About You and What You Need To Bring
- Has ability to write secure code in three or more languages (e.g., Java, JavaScript, SQL).
- Familiar with secure coding standards (e.g., OWASP, CWE, SEI CERT).
- Infrastructure as code and cloud-first software development knowledge experience preferred.
- Understands and implements standard branching (e.g., Gitflow) and peer review practices.
- Apply tools (e.g., Sonar, Zally, Checkmarx) and techniques to scan and measure code quality and anti-patterns as part of development activity.
- Understands and builds test code at unit level, service level, and integration level to ensure code and functional coverage.
- Understands the use of basic design patterns (e.g., factory, adaptor, singleton, composite, observer, strategy, inversion of control).
- Understands requirement analysis being an essential part of delivering value to our customers and partners and participates in elaboration, prioritization, and effort estimation.
- Understands agile and modern SDLC practices (e.g., Scrum, Kanban, Continuous Delivery, DevOps, Quality engineering) and the delivery situations they are used for.
- Understands the basic engineering principles used in building and running mission-critical software capabilities (e.g., security, customer experience, testing, operability, simplification, service-oriented architecture).
- Familiar with different application patterns to implement different types of business processes (e.g., APIs, event-driven services, batch services, web applications, big data).
- Understands Continuous Integration (CI) and Delivery (CD) concepts, and capabilities to support automation, pipelines, virtualization, and containerization.
- Has ability to write code (in languages such as Java, Python, Ruby, Bash, Perl, Groovy) to build automation tasks that are repeatable and efficient.
- Understands functional and non-functional testing types to elaborate and estimate test efforts.