IBM Open Source Software Developer in MARKHAM, Ontario

Job Description

As an IBM Runtimes Open Source Software Developer, you will join the hundreds of developers actively contributing to our public GitHub projects, using industry standard tools like git, ZenHub, Jenkins, and Slack. Our development lifecycle and activities, from concept to delivery, happen openly in collaboration with community developers and researchers. This facilitates building your own developer identity and influence in the various programming languages and runtimes communities. As an IBM developer, you still maintain the access to IBM developers and technologies, so you are still able to influence the whole stack optimization efforts in IBM, from hardware design to OS to language runtime to middleware to software-as-a-service.

We are looking to hire an experienced professional developer who will join the POWER JIT Compiler team in Toronto to drive adoption of our Open Source Java Runtime (OpenJ9) into open source Java frameworks critical for the Java community, IBM and its consumers. You will discover and highlight differentiation of OpenJ9 in the scenarios that are relevant to these projects. You will ensure these open source Java frameworks are able to exploit the OpenJDK with OpenJ9 with optimal performance tuning and functional stability that the enterprise customers demand. This will also require collaboration with the community to ease their migration, continuous build and test integration, and support for the open source developers of these communities.

You should be comfortable developing in an environment that is predominantly C and C++ based. Polyglot skills are an asset, as we work in a variety of exhibited scripting languages. You should have interest in building thorough understanding of processor architecture, whole-stack performance analysis and problem determination. Prior experience working on open source projects and demonstrated influence in the open communities, academic research and industry standards will be very desirable. We follow Agile practices where work and design is open and collaborative, but also where individuals are expected to operate with a level of autonomy and responsibility.

About the IBM Runtimes team:

The IBM Runtimes team is responsible for development of innovative compiler and runtime technology primarily for dynamic languages. IBM recently open-sourced 20+ years of runtime innovations through two projects, the Eclipse OMR ( https://github.com/eclipse/omr ) project that provides a large toolkit of language-agnostic components for building runtimes (including JIT compiler, garbage collector, diagnostic tooling, and platform abstraction technologies), and the Eclipse OpenJ9 ( https://github.com/eclipse/openj9 ) project which includes IBM's enterprise-class J9 Java Virtual Machine technology. The AdoptOpenJDK project now hosts JCK compliant OpenJDK builds that include OpenJ9 as an alternative high-performance enterprise grade, made for cloud Java runtime.

The Toronto team (50+ developers) develop Just-In-Time (JIT) compilers for various language runtimes. We also contribute to industry-leading performance and capabilities into these runtimes across multiple hardware platforms (e.g. x86, ARM, IBM z and POWER) and operating systems. We work with open source programming languages and runtimes development communities, academia, and other IBM development, performance and functional test teams across the globe. IBM Compiler developers have the opportunity to influence the design of future generation of hardware and OS/Kernel enhancements through collaboration with IBM z and POWER hardware/OS teams. While Java has been our focus for many years, we have successfully adapted Eclipse OMR technology to other language runtime environments (e.g. Python, Swift, Ruby, Lua, WebAssembly, etc.) through several active collaborative academic research projects with professors and graduate students from a number of Canadian and foreign universities.

Required Technical and Professional Expertise

  • 3 years experience with C and C++ 1 year of experience in scripting languages

  • Linux / UNIX experience

  • Strong interest in whole-stack performance analysis and problem determination, quick prototyping and iterative experimentation

  • Experience with Open source development tools and projects

  • Excellent communication skills and proven ability in influencing open source community developers, academic and industry partners

Preferred Tech and Prof Experience

  • Experience working in an open source, transparent, and agile development team

  • DevOps experience for enabling end-to-end development/delivery pipeline in open source environment

  • Thorough understanding and experience with multiple processor architectures, e.g. x86, ARM, IBM POWER, and IBM z

  • 3+ years of professional experience in Compilers, Runtimes, Operating Systems, or related areas

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.