Senior Build Systems Engineer - McD Tech Labs

  • Full-time
  • McDonald's Office Location: McD Tech Labs
  • Global Grade: G4

Company Description

McD Tech Labs is the recently established Silicon Valley based technology development group within McDonald’s Corporation. Our mission is to deliver advanced technology solutions that address real-world, data driven needs in the McDonald’s Restaurant environment. We are focused on using state-of-the-art Machine Learning, AI, and related technologies along with McDonald’s unparalleled scale to completely transform the customer experience!

Job Description

We are looking for talented senior engineers to own, manage, and develop the common runtime and build tooling for McD Tech Labs. The core responsibilities of an engineer in this space are:

  • Own the bazel (blaze) build environment and test:
  • Track, integrate, and improve our use of third party bazel build rule libraries.
  • Develop and maintain internal bazel build rule libraries.
  • Develop and maintain the supported bazel build targets for python and java:
  • libraries, static analysis, unit tests, hermetic binaries, docker images.
  • Serve as an owner of the tools used by engineers for incremental build, test, profiling, and release engineering
  • Own and develop the integration of our python and java tooling stacks:
  • Python: python3.7, pytest, hamcrest, absl, pylint, mypy, 150+ pypi libs.
  • Java: Java11, errorprone, assertJ, picocli, 80+ Maven libs.
  • Provide integration support for IDEs in our build and test environment (IntelliJ, VCC).
  • Develop and Maintain Engineer Facing Build, Test, Profile, and Release Tooling
  • Develop, Deploy, Automate, and Migrate Best Coding Practices
  • Serve as an owner in the continuous process of maintaining the cannon of “Best Practices” at McD Tech Labs including the policy judgement made around code style, documentation conventions, calling patterns, and library use.
  • Educate the engineering teams on best practices, and where possible automate enforcement and migrate existing code to ensure compliance
  • Develop and Maintain the Engineering Environment Tooling
  • Define and maintain the environment defined by a “correct” checkout of the dev environment, the associated automated tooling, as well as the “correct” integration with various IDEs and profiling tooling
  • Provide technical support and training to engineers on the use of the development environment

Qualifications

Required Qualifications:

  • BS degree in Computer Science, similar technical field, or equivalent experience
  • Quick learner and ability to quickly add value to the team
  • 5+ years of experience in Linux environments; expert understanding of Linux processes
  • 3+ years of professional experience in Bash Shell Scripting
  • 5+ years of professional experience in Python and/or Java

Desired Qualifications:

  • Strong knowledge of python and java internals
  • Knowledge of python optional typing
  • Experience with tooling in monorepos
  • Bazel / (blaze) build system
  • C++ / Python FFI Development

Additional Information

McDonald’s is committed to providing qualified individuals with disabilities reasonable accommodations to perform the essential functions of their jobs. Additionally, if you (or another applicant of whom you are aware) require assistance accessing or reading this job posting or otherwise seek assistance in the application process, please contact [email protected] 

McDonald’s provides equal employment opportunities to all employees and applicants for employment and prohibits discrimination and harassment of any type without regard to sex, sex stereotyping, pregnancy (including pregnancy, childbirth, and medical conditions related to pregnancy, childbirth, or breastfeeding), race, color, religion, ancestry or national origin, age, disability status, medical condition, marital status, sexual orientation, gender, gender identity, gender expression, transgender status, protected military or veteran status, citizenship status, genetic information, or any other characteristic protected by federal, state or local laws. This policy applies to all terms and conditions of employment, including recruiting, hiring, placement, promotion, termination, layoff, recall, transfer, leaves of absence, compensation and training.

Nothing in this job posting or description should be construed as an offer or guarantee of employment.

Privacy Policy