IBM is a leading technology company seeking talented developers to join their team working on the Java Virtual Machine (JVM). The role involves designing and implementing core components of the JVM, optimizing performance, and collaborating across teams to enhance system software used by millions of applications.
Design and implement GC algorithms to optimize memory usage and reduce pause times
Develop advanced JIT compiler optimizations to improve execution speed and startup performance
Enhance the VM core, including threading, synchronization, class loading, and bytecode execution
Analyze and tune performance across a wide range of workloads using profiling and telemetry tools
Collaborate across teams to ensure seamless integration between GC, JIT, and VM subsystems
Contribute to open-source projects such as Eclipse OpenJ9 and OpenJDK
Support enterprise clients by diagnosing and resolving complex runtime issues in production environments
Qualification
Required
Bachelor's or Master's degree in Computer Science, Software Engineering, or a related field
2-4 years experience demonstrating strong proficiency in C or C++, with systems-level development experience
Solid understanding of operating system fundamentals (memory, threading, synchronization)
Experience with debugging and profiling tools (e.g., gdb, perf, valgrind)
Excellent problem-solving skills and a passion for deep technical challenges
Preferred
Knowledge in one or more of the following areas: Virtual machine architecture and runtime services, Garbage Collection algorithms and memory management, Compiler theory and JIT optimization techniques
Familiarity with Java internals, JVM architecture, and performance tuning
Contributions to OpenJDK, Eclipse OpenJ9, or similar open source projects are a strong asset
Benefits
Flexible work arrangements
Competitive compensation
Opportunities for career growth
IBM is an IT technology and consulting firm providing computer hardware, software, infrastructure, and hosting services.