About the company
Gemini is a regulated cryptocurrency exchange, wallet, and custodian that makes it simple and secure to buy bitcoin, ether, and other cryptocurrencies.
Job Summary
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, > 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 6+ years of software development experience. 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. 📍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. 📍Experience optimizing builds, CI/CD pipelines, and/or test automation. 📍Experience building useful utilities and abstractions that enable other teams to deliver software faster.