Introduction
About The Team
The Compiler & Toolchain team on IBM Z focuses on enabling and optimizing modern programming languages and runtime ecosystems for enterprise workloads on IBM Z systems. The team works on compiler enablement, toolchain validation, performance optimization, benchmarking, and upstream open-source contributions for technologies such as Golang, OpenJDK, .NET and Node.js on Linux for IBM Z.
Your Role And Responsibilities
Golang Compiler & Toolchain Development:
-
Develop and maintain Golang compiler and toolchain features for IBM Z platform.
-
Support debugging and fixing issues in the Go compiler, assembler, runtime, and standard libraries on IBM Z platform.
-
Run and analyze compiler validation, benchmark, and regression tests to identify performance characteristics and functional issues.
-
Assist in optimizing Golang applications and runtime behavior for IBM Z architecture.
-
Learn and contribute to automation of Go compiler/toolchain validation and benchmarking workflows.
-
Work with upstream Go open-source communities and contribute fixes/enhancements where applicable.
Optimization And Performance
-
Assist in profiling Go applications and compiler-generated code to identify performance bottlenecks.
-
Support implementation and validation of compiler and runtime performance improvements under guidance from senior team members.
-
Learn performance tuning techniques specific to IBM Z architecture.
-
Participate in benchmarking and comparative analysis across Go releases and toolchain versions.
Collaboration And Communication
-
Work closely with team members and mentors to understand compiler internals and development workflows.
-
Collaborate with development, testing, and performance teams to troubleshoot and resolve issues.
-
Participate in technical discussions within the compiler and toolchain ecosystem.
-
Communicate progress, findings, and technical challenges clearly within the team.
Preferred Education
Master's Degree
Required Technical And Professional Expertise
Required Professional and Technical Expertise:
-
Bachelor’s or Master’s degree in Computer Science, Electronics, Information Technology, or related field.
-
Strong C/C++ programming skills and data structures with 1-2 years of project development experience.
-
Good understanding of System programming, Linux Operating systems and Linux internals.
-
Basic understanding of compiler concepts and compilation stages/process.
-
Familiarity with debugging concepts.
-
Exposure to Linux development environments and shell scripting.
-
Understanding of software build systems, testing, and debugging tools.
-
Strong analytical and problem-solving skills.
-
Good communication and teamwork abilities.
Preferred Technical And Professional Experience
Preferred Technical and Professional Experience:
-
Exposure to compiler development projects, compiler technologies, toolchains, or systems programming projects.
-
Familiarity with assembly language concepts and computer architecture.
-
Knowledge of Golang programming language.
-
Knowledge of Git, CI/CD workflows, and open-source development practices.
-
Exposure to performance analysis and benchmarking tools.
-
Understanding of IBM Z architecture, Linux on IBM Z platform, or enterprise systems is an added advantage.