
Software Engineer II (C++ Developer)
- O'Fallon, MO
- $92,000-147,000 per year
- Permanent
- Full-time
What role do we play in the modern world? Are we an enabler of purchases or a facilitator for transactions? We play a much larger role in the world by enabling those that have no access to financial systems – every employee has the opportunity to be a part of something bigger and to change lives. We have the technology, people and Brand to serve modern society . Today, we are a global tech company that connects everyone to endless possibilities, priceless possibilities.Overview:The Single Message - Online team is part of the Transaction Switching organization at Mastercard. The group's mission is to provide the best authorization system for debit and credit card transactions. Engineers working on this program are experts in software development. They use their skills to design and develop software solutions for changing business needs while adhering to Mastercard’s standards, processes, and best practices.Role:All staff at Mastercard are expected to demonstrate 'Mastercard Way' cultural values every day -own it, simplify it, sense of urgency, thoughtful risk-taking, unlock potential, and be inclusive –with a relentless focus on our customers. As a Software Engineer II at Mastercard, you are expected to perform the following general duties:
- Own software delivery tasks (development, test, deployment) at an application/software component level
- Able to troubleshoot and refactor existing code
- Adopt new skills, tools, languages, and architecture patterns required for completing the delivery task
- Contribute to the decisions made by the team
- Support peers and mentor less experienced team members
- Demonstrate active learning and sharing of software practices via Guild/Engineering community initiatives
- Actively participate in team prioritization discussions with Product/Business stakeholders
- Contribute to technical documentation of APIs and services being delivered
- Has ability to write and maintain secure code. Primary programming language for this role is C++, but experience with backend Java programming will also be considered
- Proficient in building applications using open frameworks to achieve reuse and reduce development times (e.g., SpringBoot, Steeltoe, Angular, DCP, and others)
- Understands the basic tenets of building and running mission critical software capabilities (security, scalability, resiliency, customer experience, testing, operability, simplification)
- Understands requirement analysis being essential part of delivering value to our customers and partners and contributes in requirement elaboration, prioritization, and effort estimation; actively participates in delivery of work using SDLC methodologies
- Understands and implements standard branching (e.g., Gitflow) and peer review practices
- Understands and builds test code at unit level, service level, and integration level to ensure code and functional coverage
- Apply tools (e.g., Sonar, Zally, Checkmarx) and techniques to scan and measure code quality and anti-patterns as part of development activity
- Proficient in authoring test cases leveraging behavior-driven development and customer journey concepts
- Understands Continuous Integration (CI) and Delivery (CD) concepts, and capabilities to support automation, pipelines, virtualization, and containerization; Aware of configuration management using tools (e.g., Puppet, Chef) and CI/CD tools (e.g., Artifactory, Jenkins, Git, Sonar)
- Bachelor's degree in software engineering, computer science, information technology or related discipline preferred, or equivalent work experience