WebKit Process Architecture Engineer

Santa Clara Valley (Cupertino), California, United States
Software and Services

Summary

Posted:
Weekly Hours: 40
Role Number:200323203
WebKit is Apple’s open source, multi-process, sandboxed rendering engine for web content. This role focuses on maintaining and expanding WebKit’s multi-process architecture.

Key Qualifications

  • Experience with pointers, memory management, threads, and processes.
  • Detailed understanding of data structures and algorithms.
  • Excellent debugging, critical thinking, analytical, and interpersonal skills.
  • Experience with performance analysis and optimization.

Description

WebKit is the system framework for rendering web content on Apple platforms. When you load a webpage in Safari, that’s WebKit! WebKit is also an Open Source software project in which Apple engineers collaborate with engineers from around the world to improve WebKit, evolve web APIs, and ensure the best possible experience on the web. WebKit renders web content in isolated Unix processes, and interacts with those processes using Inter-Process Communication, in order to ensure security, stability, and responsiveness for hosting apps. WebKit’s process isolation is implemented mostly in C++ in terms of libxpc, Mach, BSD, Foundation, and UIKit APIs. The WebKit Architecture team focuses on process isolation, process scheduling and lifetime, inter-process communication, and sandboxing. We also maintain many web APIs for storage and networking — like fetch, XMLHttpRequest, Worker and Service Worker, IndexedDB, LocalStorage, SessionStorage, Web Components, and WebRTC. As a WebKit Process Architecture Engineer, you will implement new features in process isolation, and maintain and evolve existing ones. You will work with platform, OS, and developer tools engineers to ensure that WebKit’s process architecture integrates seamlessly with Apple platforms, and to expand Apple platforms to suit new WebKit needs. You will be responsible for diagnosing performance, correctness, and compatibility issues related to process isolation, and proposing solutions. You will help implement the next phase of process isolation, which will isolate individual websites from each other, even when rendered in the same view. This phase will require transforming code that is sometimes synchronous and sometimes pointer-based into code that is asynchronous and message-based.

Education & Experience

BS in Computer Science or equivalent education or work experience.

Additional Requirements

  • Engineers often build successful careers on the WebKit team without prior experience working in web browsers! Some of these skills can give you a useful head start:
  • - Experience with C, C++, and Objective-C.
  • - Experience with Web technologies (HTML, CSS, DOM, JavaScript, SVG).
  • - Experience with UIKit and AppKit.
  • - Experience with systems programming and inter-process communication.