The IBM Compiler Group is looking for talented software developers to join our world class compiler team. Our compilers are at the cutting edge of compilation technology, and our developers have helped deliver language standard conformance and industry leading benchmark results on IBM for both CPU and GPU. We produce compilers for a range of source languages optimized for IBM POWER systems and zSeries mainframes. Our developers often contribute to the design of future IBM processors, the evolution of programming languages and many have acquired extensive patent portfolios. A number of our developers have gone on to become Directors, Distinguished Engineers, and IBM Fellows.
If you have C++ coding experience, a demonstrated understanding of algorithms and data structures, programming language design and a passion for developing innovative algorithms that make software run as fast as possible, this is the team for you. This position offers you a rare opportunity to influence the performance of hardware and software that are used by millions of people every second. The work is challenging and complex, involves collaboration with many of IBM's top technical experts, and gives you the opportunity to acquire and use advanced technical skills in a highly specialized area of computer engineering.
The job is located at the IBM Canada Software Lab in Markham Ontario, one of the largest Research and Development (R&D;) facilities in Canada.
This role will involve working with technology that is covered by embargo Export Regulations. If you are a Foreign National from any of the following embargoed countries (Cuba, Iran, North Korea, Sudan, and Syria) on a work permit, you are not eligible for employment in this position.
Required Technical and Professional Expertise
- English Fluent (Verbal and Written)
- Bachelor's Degree in related field
- At least 6 months experience in coding on at least one major software project in C++
- At least 6 months experience in advanced data structures and algorithms
- At least 6 months experience in debugging and problem determination
Preferred Tech and Prof Experience
- Master's Degree in Information Technology
- At least 6 months experience in academic or professional work in compilers or compiler optimization (LLVM preferred)
- At least 6 months experience in benchmarking or application performance analysis
- At least 6 months experience in low-level programming (e.g. assembly language, VHDL/FPGA) and low-level debugging
- At least 6 months experience in multithreaded programming issues, parallelism, numerical computation, etc.
- At least 6 months experience in heterogeneous programming issues, OpenMP, CUDA, etc.
- Basic knowledge in one or more computer architectures, and of hardware/software interactions
IBM is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status. IBM is also committed to compliance with all fair employment practices regarding citizenship and immigration status.