Compiler Developer - Coop (Markham, ON)
Change the world at IBM.
There aren't many companies who can say they have been an integral part of the global business landscape for more than a century. While the world has changed considerably over the past 100 years, IBM, our people and our offerings have continuously led the way with business and technology innovation.
Today, we are more than a hardware, software and services provider, yet we remain true to our heritage as a team of collaborative forward-thinkers, focused on making business and society work better. We are part of the fabric of everyday life and stand for world-changing progress.
Join a company where you can make an impact and literally change the world. With so many different opportunities available – the sky is the limit!
*This position resides in Markham, Ontario and is a 4-8 month work term commencing January 2019. It is mandatory that all applicants are enrolled in full-time studies at a post-secondary institution and returning to full-time studies upon completion of the work term.
What IBM Offers You?
- Work directly on product and services that affect our clients, while having access to cutting edge software technology
- Work on projects which are challenging, innovative and rewarding
- A business casual dress code and flexible work hours, to ensure work-life balance
- Access to the Future Blue Community - IBM's large student community that provides networking opportunities, sporting and social events.
It is a mandatory requirement for students to apply online at www.ibm.com/jobs
Closing Date: Open Until Filled
The IBM Toronto Lab, located in Markham Ontario, is one of the largest R&D; facilities in Canada. IBM compilers are at the cutting edge of compilation technology supporting a variety of hardware and software; including AIX & Linux on IBM POWER servers as well as z/OS on IBM Z.
We have multiple openings for 4-8 month work terms commencing January 2019 in various squads in our compiler organization. Our squads are autonomous, multi-disciplinary teams, consisting of talented software developers with knowledge in new and up and coming language standards, hardware implementations and proven software development skills.
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.
Developers on these squads are responsible for various tasks such as:
- implementing new language standards, hardware exploitation and performance features for CPUs and/or GPUs, and customer requirements in our C, C++, FORTRAN and COBOL compilers
- participate in development of LLVM open source compiler technology
- creating test for new compiler features, including writing complex test case applications in C, C++, Fortran, COBOL or other languages
- integrate test cases into the test framework, monitor test runs and analyze test failures
- analyze and publish compiler product builds, perform installation verification tests and supporting day-to-day development activities across multiple platforms
- porting open source applications to run on one of our supported distributions (RedHat, Ubuntu, SLES, etc.)
Typical student work involves writing code and/or test cases for new language standards, fixing defects and adding improvements to address compile and run-time performance. Student developers will vastly improve their skills in C++ (as most of our compilers are written in C++) and build knowledge of the programming language their product supports. Demonstrated C++ coding experience and an interest in building your understanding of language specifications and standards are useful assets.
These positions are only open to students registered in a Canadian University or College program, who have completed a minimum of 2 years of their degree or diploma program, and who must be returning to full-time study upon the completion of the temporary IBM work term.
Required Technical and Professional Expertise
- Co-op or internship program enrollment is mandatory
- Demonstrated ability to program in C, C++ or other 3GL programming languages
- Proven problem determination and program debugging skills with attention to detail
- Working knowledge of Linux, AIX or UNIX operating systems
- Experience in advanced data structures and algorithms
Preferred Tech and Prof Experience
- Experience in academic or professional work in compilers or compiler optimization (LLVM preferred)
- Knowledge of parallel or GPU programming techniques, such as CUDA, OpenMP, or OpenACC
- Experience in benchmarking or application performance analysis
- Experience in low-level programming (e.g. assembly language, VHDL/FPGA) and low-level debugging
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.