Job Title:
Lead Software Engineer-2
Overview:
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
Responsibilities
‘ Own complex problems having dependency across services and facilitate cross-functional team interactions to drive resolution
‘ Write code to build and enhance applications/services and promote code-reviews, code scanning, and other standard development practices to deliver high-quality artifacts to production.
‘ Define, design, and develop procedures and solutions at a service level to meet the business requirements/enhancements
‘ Drive prioritization decisions and trade-offs in working with product partners
‘ Identify opportunities and build roadmaps to enhance primary service/function
‘ Automate and simplify all aspects of software delivery and development actively evangelizing the need to automate and simplify where needed.
‘ Drive seamless integration across all connected services to meet end-user expectations
‘ Drive blameless postmortems culture to identify root causes of incidents and implement learnings
‘ Introduce new technologies and architecture by following enterprise guidelines
‘ Advocate for engineering principles outside of current organization/platform
‘ Provide development and architecture guidance to team members
‘ Build relationships and effective partnerships across organizations
‘ Write and evaluate recommendations for job promotions based on an unbiased view of one's accomplishments
‘ Conduct technical interviews for hiring engineering staff and raising the performance bar
‘ Lead by example with hands-on approaches to demonstrate engineering excellence
‘ Encourage staff to share and seek knowledge within their Guild/Program to drive reuse of patterns/libraries/practices and enhance productivity
Experiences
‘ Has the ability to write secure code in Java and familiar with secure coding standards (e.g., OWASP, CWE, SEI CERT) and vulnerabilities
‘ Has skills in building applications using open frameworks to achieve reuse and reduce development times (e.g., Spring Boot)
‘ Understands internals of operating systems (Windows, Linux) to write interoperable and performant code
‘ Able to perform debugging and troubleshooting to analyze core, heap, thread dumps and remove coding errors
‘ Has skills to document and coach team on the development practices and coding guidelines (e.g., branching, peer reviews, library use, logging, scanning rules, test-driven development, error handling)
‘ 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
‘ Has skills to undertake a technical review of code across applications and their dependencies to look for anti-patterns and promote continuous refactoring
‘ Understands and elaborates technical debt and operational issues to drive prioritization discussions with stakeholders to improve the run experience
‘ Understands system architecture to plan for platform and infrastructure capacity (e.g., database, compute, network, storage) and drives the dependency prioritization to reduce the delivery lead time
‘ 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)
‘ Has skills to simplify deployment and eliminate software and infrastructure snowflakes using standardized platforms, ephemeral instances, and automation
‘ Has skills to define, organize, and report on test runs for major, minor, and hotfix releases (including unit, component level, system level, customer journeys, past customer issues, and regulatory controls)