Are you interested in compilers and debuggers, operating systems development and Open Source? Your favourites are Linux and low-level programming? Would you like to work with Open Source communities, and do you intend to build up a reputation as an Open Source maintainer? If so, our team is the right place for you!
Our compilers and toolchain team is responsible for enhancing and maintaining DotNet, GoLang, OpenJDK and Debian compilers, debuggers, libraries, tools, test automation &
CI/CD). We tightly collaborate with the international development teams of IBM, the global maintainers of Open Source communities, and our Linux distribution partners (Red Hat, SUSE, Canonical).
Our focus is on the support of the IBM Z / Linux ONE architecture.
Linux on IBM Z / LinuxONE forms the basis of many of IBM's commercial solutions in Cloud, Analytics and AI.
Compiler and Toolchain Development:
· Develop and maintain compiler features and optimizations.
· Analyse compiler performance, code size, and other metrics to identify areas for improvement.
· Debug and fix compiler bugs and issues.
· Develop and maintain compiler test suites and benchmarks.
· Building and maintaining toolchains for specific Linux distros.
· Develop and maintain toolchains, including compilers, linkers, assemblers, and debuggers.
· Ensure toolchain compatibility with different hardware and software platforms.
· Integrate toolchains into software development workflows
Optimization and Performance:
· Analyse code to identify performance bottlenecks and optimize for speed and efficiency.
· Implement and evaluate compiler optimizations.
Collaboration and Communication:
· Collaborate with software developers and other teams to ensure efficient software development.
· Communicate technical information clearly and effectively.
· Contribute to open-source projects and engage with the wider open-source community.
· At least 4+ years of experience working with the compilers and debuggers.
· Knowledge of various Dotnet frameworks and tools.
· Strong understanding of compiler principles, expertise in programming languages like C and C++ on Linux, and computer architecture.
· Experience with compiler tools and technologies preferably in DotNet compilers.
· Understanding of LLVM/Clang.
· Knowledge of assembly languages and machine code.
· Familiarity with software development methodologies and tools.
· Source code repository systems (e.g. git), scripting languages (e.g. Python) and test automation skills (e.g. Jenkins)
· Strong debugging and problem-solving skills.
· Highly motivated individual to work on Enablement and Development of new features.
· Strong analytical and problem-solving skills, go beyond own assets for end-to-end analysis at eco-system.
· Strong written and communication skills with proven fluency in English
· Experience “Dotnet compilers and debuggers” on Linux distro.
· Passionate about learning new tools, languages, philosophies, and workflows.
· Experience with monitoring tools for identifying root cause.
· Prior contributions to Open Source projects or current Open Source maintainer status.
· History of code reviews (e.g. on mailing lists)
· 2 years of experience with toolchain or Dotnet libraries, tools, project around performance.
· Experience with packaging for Linux distributions.
· Skills in IBM Z architecture ("Principles of Operations") Z assembler and I/O concepts.
· Understanding of Endianness.