Software Development Intern

As a world leader in cloud solutions, Oracle uses tomorrow's technology to tackle today's problems. True innovation starts with diverse perspectives and various abilities and backgrounds. When everyone's voice is heard, we're inspired to go beyond what's been done before. It's why we're committed to expanding our inclusive workforce that promotes diverse insights and perspectives. We've partnered with industry-leaders in almost every sector—and continue to thrive after 40+ years of change by operating with integrity. Oracle careers open the door to global opportunities where work-life balance flourishes. We offer a highly competitive suite of employee benefits designed on the principles of parity and consistency. We put our people first with flexible medical, life insurance and retirement options. We also encourage employees to give back to their communities through our volunteer programs. We're committed to including people with disabilities at all stages of the employment process. If you require accessibility assistance or accommodation for a disability at any point, let us know by calling +1 888 404 2494, option one.
Stockholm, Sweden
Backend
Software Engineering Intern
In-Person
Enterprise SaaS

Description For Software Development Intern

Java is one of the most popular programming languages in the world and it runs on billions of devices scaling from credit cards to multi-machine servers. Oracle is the main contributor to the Java programming language, developed through the OpenJDK project. The Java Virtual Machine (JVM) is the core piece of technology that enables Java's "write once, run anywhere" - the ability to run the same Java program on multiple hardware architectures and operating systems without having to recompile the code.

The JVM also implements the Java memory management with Garbage Collectors (GCs) that handle all the details for you, and just-in-time (JIT) compilers that enable Java performance to be better than what is possible with any statically compiled language.

We are now looking for talented, purpose-focused, and highly motivated collaborators for an internship in the Stockholm development office.

The goal of this project is to achieve faster compilation times, more precise GC barrier elision opportunities, more maintainable and less fragile code, possibly even more efficient GC barrier implementations by going lower level than a CPU agnostic IR, and hopefully getting to a more standardized way of emitting GC barriers instead of all GCs doing different things as it is today.

This will be achieved by building a GC barrier infrastructure for the G1 GC similar to what has already been done for Generational ZGC. GC barriers are machine code instructions used to help perform bookkeeping required to maintain invariants. This project involves injecting the machine instructions for GC barriers at the very late instruction emission phase of the C2 JIT compiler, instead of the very early bytecode parsing phase where it is emitted today.

By emitting the GC barriers very early as done today, optimization phases throughout the compilers (e.g. escape analysis) currently needs to recognize that it should do something different for GC barrier Intermediate Representation (IR) nodes, as opposed to general application IR. The new approach doesn't add any IR nodes for the GC barriers at all, and hence doesn't introduce such complexity to the compiler design.

The new feature should be implemented for the x64 and aarch64 CPU targets, likely to involve low level architecture specific optimization of the machine instruction sequences, as well as high level optimizations on the IR level to elide unnecessary GC barriers.

Requirements:

  • Good communication and presentation skills in English.
  • Experience in computer science fundamentals.
  • Experience with modern IDEs and version control (Git).
  • C++ programming skills and experience with assembly.
  • Good problem-solving skills.
  • Experience with the Java Virtual Machine (Specification) is a plus.
  • Garbage Collection and Compiler development expertise is a plus.

Career Level - IC0

Last updated 17 days ago

Responsibilities For Software Development Intern

  • Build GC barrier infrastructure for the G1 GC
  • Implement new features for x64 and aarch64 CPU targets
  • Optimize machine instruction sequences
  • Perform high level optimizations on the IR level

Requirements For Software Development Intern

Java
  • Good communication and presentation skills in English
  • Experience in computer science fundamentals
  • Experience with modern IDEs and version control (Git)
  • C++ programming skills and experience with assembly
  • Good problem-solving skills

Benefits For Software Development Intern

Medical Insurance
Vision Insurance
  • Medical Insurance
  • Life Insurance
  • Retirement Options
  • Volunteer Programs

Interested in this job?

Jobs Related To Oracle Software Development Intern

Tech Solution Engineering Intern - Oracle Internship Program

Tech Solution Engineering internship at Oracle, focusing on cloud platforms and client solutions, combining technical expertise with business acumen.

Solution Engineer

Solution Engineer Intern position at Oracle, focusing on pre-sales technical support and product demonstrations for cloud-based applications.

Intern as Software Engineer - part time

Part-time Software Engineering Internship at Oracle Prague, working on Opower platform with modern technologies and experienced team.

Software Engineering Intern - Java Management Service

Software Engineering Internship at Oracle's Java Management Service team, offering hands-on experience in cloud computing and enterprise software development.

Software Development Intern

Software Development Intern position at Oracle, focusing on Java Virtual Machine (JVM) and Garbage Collection (GC) optimization in Stockholm, Sweden.