We are exclusively retained by one of the world's most iconic, well-known brands to help them on a huge digital transformation project. The goal is to deliver advanced technology solutions that address real-world, data-driven needs within their globally distributed environment - Using state-of-the-art Machine Learning, AI, and related technologies at unparalleled scale to completely transform the customer experience!
With over 35,000 global locations and billions of customers, they have spent recent years ambitiously modernizing and scaling their Infrastructure and Engineering capabilities.
We are looking for talented senior engineers to own, manage, and develop the common runtime and build tooling for. 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
- 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
- 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