Job Description

Summary

The Department: Platform

Our Platform organization’s purpose is to enable Gemini to scale effectively and empower our engineering teams to focus on building innovative financial products and experiences for individuals around the world. Platform focuses around building a scalable and secure foundations platform, enabling Engineering to deploy, validate, and operate their services in production, improve resiliency of the service and increase organizational efficiency by reducing operational toil and increase system efficiency through architectural evolution.

The Developer Productivity team is part of larger Platform organization, and architects, develops, supports, and operates the internal engineering serving services and toolsets providing capabilities empowering the software development life cycle. We provide solutions that power local development, continuous integration and automation, continuous delivery that is not only fast but safe, and deep operational observability of running workloads.

The Role: Senior Software Engineer

As a Senior Software Engineer, you will play a crucial role in enhancing the engineering practices and tooling within our organization. You will be an integral part of leading Gemini’s engineering teams towards modern DevOps practices, both by developing and providing modern automation and operational tooling, and working cross functionally across Gemini’s engineering teams to influence and shape our development practices and culture. The ideal candidate will have experience leading or contributing to the enhancement and improvement of the build tool chain at a leading software company. You will be working closely with peers on the Platform, Security, and development teams, as well as business stakeholders to ensure that our development teams are equipped with the best practices, processes, and tools to deliver high-quality software efficiently.

Responsibilities:

  1. Improve developer feedback cycles by optimizing builds, speeding up compiling and testing.
  2. Develop utilities and patterns to increase developer productivity.
  3. Develop linters and other static analysis tools to increase safety.
  4. Improve feedback cycles at all levels of development (examples: improving the experience of iterating on code locally, deploying to test environments, deploying to production).
  5. Improve organization wide concerns (examples: identifying and fixing build bottlenecks, improving the observability of running systems, language and library upgrades).
  6. Help other technologists at Gemini be more effective in their roles, through tool and library improvements.
  7. Provide technical input and knowledge to the planning, design, and requirements process for new products and features.
  8. Review other software engineers’ code for correctness, style, and information security concerns.
  9. Improve the performance, maintainability, and operations of the Gemini code base by engaging in occasional refactoring and upgrade projects.
  10. Support your team’s production software by responding to an occasional alert or bug report.
  11. Be an expert and guide for Gemini’s best practices in engineering.

Qualifications:

  1. Bachelor’s or Master’s degree in Computer Science, Engineering, or a related field.
  2. At least 6+ years of software development experience.
  3. Genuinely passionate about working with developers and improving their experience and velocity.
  4. Experience building multi-language monorepo tooling (preferably Bazel).
  5. Experience with the Bazel production ecosystem (e.g. EngFlow, BuildBarn, BuildBuddy etc.).
  6. Experience with the integration between Bazel and IDEs such as IntelliJ and VSCode.
  7. 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. 
  8. Experience optimizing builds, CI/CD pipelines, and/or test automation.
  9. Experience building useful utilities and abstractions that enable other teams to deliver software faster.
  10. Experience as a Technical Leader within a team, helping evaluating and making tech decisions for the team.
  11. Experience training or mentoring other developers.
  12. The ability to work closely across teams and manage dependencies.
  13. A customer- and product-focused mindset, with the ability to make well-reasoned tradeoffs between speed and quality.
  14. The ability to adapt and handle multiple competing priorities in collaboration with peers.
  15. Strong bias for automation.

Salary Range: The base salary range for this role is between $152,000 - $190,000 in the State of New York, the State of California and the State of Washington. This range is not inclusive of our discretionary bonus or equity package. When determining a candidate’s compensation, we consider a number of factors including skillset, experience, job scope, and current market data.

Skills
  • C++
  • Development
  • Leadership
  • Software Engineering
  • Team Collaboration
  • TypeScript
© 2024 cryptojobs.com. All right reserved.