McDonald's Corporation logo

Software Engineer II - C++

McDonald's Corporation
Full-time
Remote

Company Description

McDonald’s growth strategy, Accelerating the Arches, encompasses all aspects of our business as the leading global omni-channel restaurant brand. As the consumer landscape shifts we are using our competitive advantages to further strengthen our brand. One of our core growth strategies is to Double Down on the 3Ds (Delivery, Digital and Drive Thru). McDonald’s will accelerate technology innovation so 65M+ customers a day will experience a fast, easy experience, whether at one of our 25,000 and growing Drive Thrus, through McDelivery, dine-in or takeaway.

McDonald’s Global Technology is here to power tomorrow’s feel-good moments.

That’s why you’ll find us at the forefront of transformative technology, exploring new and innovative ways to serve our millions of customers and spread happiness one delicious Hot Fudge Sundae-dipped fry at a time. Using AI, robotics and emerging tech, we’re digitizing the Golden Arches. Combine that with our unparalleled global scale, and we’re reshaping all areas of the business, industry and every community that is home to a McDonald’s restaurant. We face complex tech challenges every day. But that’s where our diverse and talented teams come in. They’re made up of the best and brightest from all over the globe, and they thrive in the space where feel-good meets fast-paced.

We’re recruiting engineers to join our Global Technology team in Mexico City as we open our McDonald’s Capability Center (MCC). Our Mexico City MCC will be a hub for technology innovation and operational support to help us build the solutions that will improve our customer, crew and employee experience each and every day.

Check out the McDonald’s Global Technology Technical Blog to learn how technology and our global team are directly enabling the Accelerating the Arches strategy.

Job Description

As a Software Development Engineer, you will be responsible for the design, development, testing and maintenance of the McDonald’s Restaurant Technology software, which typically includes point-of-sale (POS) plugin development, application services, core infrastructure, data management, and data communication with external systems. The software needs to meet stringent reliability and performance requirements.

Responsibilities include

  • Working in a software development squad for restaurant products to support the design and development for new functionality and items relating to technical debt.
  • Ensuring product requirements, features, and backlog items are reviewed and understood as part of Sprint planning.
  • Actively participating and assigning story points (effort estimations) to the software development work.
  • Verifying software through unit tests, integration tests, code reviews, and frequent customer demonstrations.
  • Sharing feedback on what went well and what could be improved during retrospective reviews.
  • Providing frequent progress updates to the direct manager and other collaborators.

Qualifications

  • Bachelor’s degree in Computer Engineering, Computer Science, or similar engineering field.
  • Minimum 3 years of experience in software development projects using C# .NET.
  • Minimum 1 years of experience in software development projects using C/C++, including coursework.
  • Experience developing software within an Agile environment.
  • Strong knowledge of configuration management tools like Git, Bitbucket, Artifactory, Jira, TeamCity or similar.
  • Strong knowledge of a services-oriented and layered software architecture.
  • Experience with unit testing and static analysis tools like SonarQube or similar.
  • Experience developing and releasing software within a CI/CD environment such as Jenkins.
  • Familiarity with code debugging tools and strong debugging skills (call stack analysis, profiling, breakpoint evaluation, logging, resource budget analysis as Flash, RAM and CPU load).
  • Experience in writing software requirements and design documentation.
  • Demonstrated the ability to work in a variety of client settings and in a team-oriented, collaborative environment.
  • Demonstrated significant problem-solving capabilities and defect resolution experience.
  • Good written and verbal communication skills.
  • Easily switch between the projects and as needed work on multiple projects simultaneously.
  • Desire to work in legacy application development environment.

Preferred Qualifications

  • Experience with POS architecture.
  • Experience with restaurant technology implementation for production.