Software Engineer, Java and Kotlin Ecosystem
Job Summary
This Software Engineer role focuses on the Kotlin Multiplatform (KMP) ecosystem at Google. Responsibilities include developing and testing code for KMP developer tools, libraries, and static analysis; helping engineers build, debug, and run KMP code; participating in design reviews; reviewing code for best practices; contributing to documentation; and resolving issues. The role involves collaborating with developers of popular Java Open Source libraries and improving the developer experience at Google through toolchain improvements, library development, static analysis, and large-scale codebase changes. The Core team builds foundational elements for Google's products.
Must Have
- Bachelor's degree or equivalent experience
- 2 years software development experience (or 1 year with advanced degree)
- 2 years experience with infrastructure/distributed systems/networks OR compute technologies/storage/hardware architecture
- Kotlin, Java, Java Libraries, Bazel experience
- Develop and test KMP code
- Participate in design reviews
- Code review and feedback
Good to Have
- Experience building reusable, performant software
- Library development, compilers, static analysis experience
- Open Source experience
- Android, iOS, or Web development experience
- Interest in infrastructure, API design, or code health
Job Description
Minimum qualifications:
- Bachelor's degree or equivalent practical experience
- 2 years of experience with software development in one or more programming languages, or 1 year of experience with an advanced degree
- 2 years of experience with developing infrastructure, distributed systems or networks, or experience with compute technologies, storage or hardware architecture
- Experience with Kotlin, Java, Java Libraries, Bazel
Preferred qualifications:
- Experience building reusable, performant and reliable software
- Experience in one of the following: library development, compilers, static analysis, programming languages, IDE plug-ins, or build systems
- Experience working in Open Source
- Experience with Android, iOS, or Web development
- An interest in infrastructure, API design, or code health
About the job
Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.
In this role, you will have an opportunity to develop the Kotlin Multiplatform Ecosystem. You will get the opportunity to partner with developers of many popular Java Open Source libraries such as Guava, Truth, and Flogger to have an impact both internally at Google and in Open Source. You will help improve the developer experience at Google by improving the toolchain, developing libraries and static analysis to prevent bugs before they are written, suggesting better code patterns, and making large-scale changes to a huge codebase.
The Core team builds the technical foundation behind Google’s flagship products. We are owners and advocates for the underlying design elements, developer platforms, product components, and infrastructure at Google. These are the essential building blocks for excellent, safe, and coherent experiences for our users and drive the pace of innovation for every developer. We look across Google’s products to build central solutions, break down technical barriers and strengthen existing systems. As the Core team, we have a mandate and a unique opportunity to impact important technical decisions across the company.
Responsibilities
- Develop and test code for KMP developer tools, libraries, and static analysis.
- Help Google engineers build, debug, test, profile, and run their KMP code on all supported platforms.
- Participate in and lead design reviews with peers and stakeholders to decide amongst available technologies.
- Review code developed by other developers and provide feedback to ensure best practices (e.g., style guidelines, checking code in, accuracy, testability, and efficiency).
- Contribute to documentation or educational content and adapt content based on program updates and user feedback. Triage, debug, track, and resolve issues.