JVM Frameworks Software Engineer
Santa Clara Valley (Cupertino) , California , United States
Software and Services
Posted: Mar 18, 2020
Weekly Hours: 40
Role Number: 200146446
Apple services make extensive use of Java Virtual Machine (JVM) and Java Development Kit (JDK) technology. Apple services therefore need world class libraries in order to operate in a distributed, performant, and reliant fashion. A few examples of libraries in the JVM space that are lead by our team are Netty (https://netty.io/) and Service Talk (https://servicetalk.io/). Team members are passionate about working across a large organization to understand where library changes are justified, configuration changes, or if application tuning would be sufficient. If you are interested in digging into networking protocols all the way up to exposing these capabilities in a user friendly fashion then we'd love to hear from you.
- Expert knowledge of Java, bonus for C++/JNI knowledge
- Java API design and evolution through the lifetime of a library
- Understanding of concurrency and multi-threaded concepts
- Understanding of networking and inter-process communication. Understanding of popular networking protocols such as HTTP/1.x and HTTP/2 is desirable.
- Understanding of Java Memory Model
- Understanding of how to do JVM performance analysis and make corresponding improvements
- Working with application and library developers to write more friendly code for the JVM/JDK
- Understanding of Java Development Kit (e.g. Java APIs and library implementations)
- General knowledge about Garbage Collection and its impacts on library/application development
- General knowledge about JIT technologies and its impacts on library/application development
Contribute and build JVM based libraries that enable services at Apple's scale. We are looking for individual contributors and team leaders to improve the networking stack for Apple services. You will have the opportunity to work with a team which has set its sights on improving impact across Apple.
Education & Experience
BS or MS in Computer Science or equivalent