This job is no longer available.

Compiler Developer - Internship (Markham, ON)

Markham, Ontario
Internship, Co-op

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 16 - month work term commencing May 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?

  1. Work directly on product and services that affect our clients, while having access to cutting edge software technology
  2. Work on projects which are challenging, innovative and rewarding
  3. A business casual dress code and flexible work hours, to ensure work-life balance
  4. 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

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 and Linux on IBM Z.

We have multiple openings for 16-month work terms commencing May 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 development skills including C/C++, Swift, GO, JavaScript, JSON, Python, PHP, JAVA, PERL and many others.

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.)
  • 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

  • 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
  • Korn or bash shell scripting and PERL or Python programming
  • Co-op or internship program enrollment is mandatory

Preferred Tech and Prof Experience

  • Knowledge of the software development cycle
  • Knowledge of parallel or GPU programming techniques, such as CUDA, OpenMP, or OpenACC
  • General understanding of compiler construction is an asset
  • Students currently in third year of a four-year program are preferred

EO Statement

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.