Glydways is reimagining public transit to enhance mobility and accessibility. They are seeking a Senior Software Engineer to develop and maintain a multilanguage Bazel build system, optimize CI/CD pipelines, and establish best practices for build processes across engineering teams.
Responsibilities:
- Design, architect and take a central role in developing and maintaining a multilanguage Bazel build system supporting C++, Python, Go, and Typescript
- Design and implement scalable integrations that seamlessly connect Bazel with the Continuous Delivery (CD) and Continuous Integration (CI) pipelines. This includes defining and automating the workflows for triggering builds, managing build artifacts, and ensuring proper handoffs between Bazel commands
- Establish, maintain, and rigorously debug Bazel’s remote execution and caching infrastructure proactively analyzing and optimizing caching strategies to ensure maximum developer productivity and build consistency
- Develop, maintain, and enhance developer toolchains and workflows, including build, lint, code coverage, and testing support for C++, Python, and Go languages
- Optimize build performance, specifically focusing on reducing overall build times and increasing the efficiency of the continuous integration/continuous deployment (CI/CD) pipeline
- Design and implement basic monitoring services to track the performance and stability of internal processes and systems
- Port and seamlessly integrate standard, non-Bazel-native build and development tools into the existing Glydways Bazel build ecosystem
- Establish and maintain best practices for using Bazel across all engineering teams, ensuring consistency in build definitions, dependency management, and caching strategies
Requirements:
- Expert-level knowledge of the Bazel build system and other tools in the software development cycle, including: git, linting, GitHub, code review, testing frameworks and deployment frameworks
- Deep knowledge of Starlark for custom rule development, defining toolchains, and ensuring hermeticity and reproducibility of builds
- Must be able to create, maintain, and optimize Bazel rule sets from scratch to define and manage complex build dependencies across multiple languages and platforms
- Strong knowledge of CI/CD best practices and principles
- Experience with Linux operating systems in both day to day development and operational environments
- Direct experience with Buildkite is a plus
- Bonus knowledge of AWS or other similar cloud platforms