The Browser Company is building a better way to use the internet through innovative browser technology. As a Compiler Engineer, you will advance Windows support for Swift and enhance compiler performance, collaborating with various stakeholders to tackle technical challenges in language and compiler design.
Responsibilities:
- Enhance Compiler Performance: Investigate and address performance bottlenecks, focusing on areas like memory allocation, PGO/LTO/BOLT, and hot function optimizations. Collaborate with cross-functional teams to improve build times and developer productivity
- Platform Support: Maintain and expand support for multiple operating systems, including Windows and Android. This includes enabling CI testing, debugging tools, and profiling capabilities to ensure robust toolchain performance. Maintain and improve support for multiple architectures including X86_64 and ARM64 across different Operating Systems. Be involved in emerging architecture support as well (e.g. RISCV)
- Toolchain Development: Build and maintain custom toolchains on macOS and Windows, ensuring seamless integration with tools like Xcode and VSCode. Develop deployment solutions for alternative toolchains to enhance developer workflows. Work to support new platforms for cross-compilation and improve existing ones across the compilation pipeline
- Cross-Language Interoperability: Drive innovations in Swift and C/C++, Java/Kotlin interoperability, enabling seamless integration for Windows and Android application development. Improve Swift's interoperability with C and C++ codebases to improve developer experiences with multi-lingual codebases
- Open Source by Default: Nearly all of your work lands upstream in LLVM, Swift, and related projects. Your contributions are visible, impactful, and benefit the wider developer community
- Onboard onto our team and codebase with your onboarding buddy
- Attend a number of onboarding presentations on the company, product, codebase, and culture
- Get familiar with Swift, our Windows toolchain and tooling, and our Windows roadmap
- Ship a few bug fixes and small improvements across our codebase and tooling
- Pair programmed with a few people on the engineering team
- Be regularly posting product feedback about our browser in our #dogfooding channel
- Be familiar with our Windows toolchain, our Swift bindings, and how the Swift compiler works on Windows
- Shipped several tickets to improve Swift language features and Swift developer tooling
- Be involved in weekly engineering discussions about our architecture, how we do code review, code style, and more
- Be involved in infrastructure discussions like how we add better observability to debug issues in production, how we better monitor performance regressions, and how we make our updater less finicky
- Be interview trained and interviewing candidates for roles at The Browser Company
- Be driving compiler and toolchain projects from conception to production launch
- Be mentoring and pair programming with newer engineers to help them get spun up on the codebase
- Be working closely with Apple and the LLVM and Swift communities to discuss new features and push these projects forward
Requirements:
- Compiler experience. You have 4+ years of experience working with language compilers and complex codebases, such as LLVM. Ideally, you've worked with Swift and/or C++
- Operating system experience. Some familiarity with one of our operating systems (Windows, MacOS, Android, iOS) is preferred, but not required
- A passion for build systems and tooling. You understand how to improve systems to make them easier to understand, debug, and maintain. You're excited about elegant, maintainable, and easy to use build tooling and configuration
- Pragmatism and problem-solving. You're pragmatic, motivated by nebulous problems, and excited to work in a startup environment with quick product validation cycles
- You're time zone overlaps with our team. We're primarily focused on hiring in North American time zones and require that folks have at least 4+ hours of overlap time with team members in Eastern Time Zone
- You resonate with our company values