What are the responsibilities and job description for the Software Development Engineer - iOS for Keyboard position at Apple?
Join the Keyboard Infrastructure team to build and maintain the foundational systems that power keyboard behavior across iOS & iPadOS. You'll own keyboard focus, lifecycle management, and the APIs that apps use to interact with keyboard layout — directly impacting every text input experience on iPhone and iPad.
Design, develop, and maintain the keyboard focus system, ensuring correct and predictable focus behavior across complex app hierarchies
Own keyboard lifecycle management — presentation, dismissal, transitions, and state restoration
Build and maintain APIs for keyboard layout that apps rely on for positioning, insets, and animation coordination
Ensure keyboard infrastructure works reliably across multitasking, Stage Manager, and diverse app architectures
Collaborate with UIKit, SwiftUI, and framework teams to provide consistent keyboard behavior
Debug and resolve complex issues spanning focus engines, responder chain, and windowing
Write clear documentation and provide guidance to internal and external developers adopting keyboard layout APIs
Minimum Qualifications:
BS in Computer Science or equivalent experience
2 years of experience in iOS/macOS development (Swift, Objective-C)
Strong foundation in systems programming, state management, and framework design
Experience designing or maintaining public APIs
Preferred Qualifications:
Deep knowledge of UIKit internals — responder chain, UIWindow, UIScene, and view layout systems
Familiarity with keyboard avoidance, input accessory views, and text input architecture (UITextInput, UIKeyInput)
Experience shipping frameworks or infrastructure used by other engineering teams
Understanding of accessibility requirements for keyboard and focus interactions
Track record of diagnosing and fixing subtle lifecycle and state-management bugs