Responsibilities
Improve developer feedback cycles by optimizing builds, speeding up compiling and testing.
Develop utilities and patterns to increase developer productivity.
Develop linters and other static analysis tools to increase safety.
Improve feedback cycles at all levels of development (examples: improving the experience of iterating on code locally, deploying to test environments, deploying to production).
Improve organization wide concerns (examples: identifying and fixing build bottlenecks, improving the observability of running systems, language and library upgrades).
Help other technologists at Gemini be more effective in their roles, through tool and library improvements.
Provide technical input and knowledge to the planning, design, and requirements process for new products and features.
Review other software engineers’ code for correctness, style, and information security concerns.
Improve the performance, maintainability, and operations of the Gemini code base by engaging in occasional refactoring and upgrade projects.
Support your team’s production software by responding to an occasional alert or bug report.
Be an expert and guide for Gemini’s best practices in engineering.
Qualifications
Bachelor’s or Master’s degree in Computer Science, Engineering, or a related field.
At least 8 years of software development experience.
Advanced proficiency in at least one language. We use mostly Scala and C++ on our backend and Typescript on the frontend – it’s great if you’re comfortable in those or if you’re willing to learn.
Genuinely passionate about working with developers and improving their experience and velocity.
Experience building multi-language monorepo tooling (preferably Bazel).
Experience with the Bazel production ecosystem (e.g. EngFlow, BuildBarn, BuildBuddy etc.).
Experience with the integration between Bazel and IDEs such as IntelliJ and VSCode.
Experience optimizing builds, CI/CD pipelines, and/or test automation.
Experience building useful utilities and abstractions that enable other teams to deliver software faster.
Experience as a Technical Leader within a team, helping evaluating and making tech decisions for the team.
Experience training or mentoring other developers.
The ability to work closely across teams and manage dependencies.
A customer and product-focused mindset, with the ability to make well-reasoned tradeoffs between speed and quality.
The ability to adapt and handle multiple competing priorities in collaboration with peers.
Strong bias for automation.
It Pays to Work Here
The Compensation & Benefits Package For This Role Includes
Competitive starting salary
A discretionary annual bonus
Long-term incentive in the form of a new hire equity grant
Comprehensive health plans
401K with company matching
Paid Parental Leave
Flexible time off
Any graduate