Software Development Engineer - Storage
Santa Clara Valley (Cupertino), California, United States
Software and Services
Are you a big-picture thinker who loves setting ambitious goals? Do you have a passion for understanding how each line of code affects all the others? In the Core Operating Systems group, you’ll ensure the OS is inseparable from each device’s identity as a whole. That’s because this group is committed to building fully integrated operating systems that combine hardware, software, and apps into a single Apple experience. Your dedication to cross-disciplinary collaboration will help develop groundbreaking technologies, such as iOS, macOS, watchOS, and tvOS. By crafting these distinct, holistic user experiences, you’ll continue to uphold and advance the excellence people expect from Apple devices. The Storage Systems team within Apple’s Core OS Organization is looking for a talented and inspired senior software development engineer in the disk management team. The team is responsible for storage device management in iOS and macOS. This position’s primary focus will be storage device management, arbitration, configuration and notification. Software developed and tested will have deep interaction with the OS kernel, disk devices, local and network filesystems, and other system software tools and utilities. You will work hands-on with teams of development and quality engineers on the development of new features, protocols, and hardware, as well as provide world-class support for existing deployments.
- 5+ years of OS kernel and low level user programming experience, should be proficient in Operating Systems and kernel architecture.
- A solid understanding of block-based disk devices in modern Operating Systems
- Excellent understanding and ability in various programming languages (C/C++, obj-C, bash, python, perl, x86/ARM assembly).
- Excellent skill in gdb or lldb debugging, core file analysis, triaging.
- Comfortable in working with cross-functional teams to drive efficient bug resolution.
- Ability to work independently and be proactive in task completions.
- Highly professional with the ability to deliver solid work on tight schedules.
- Excellent communication skills, both oral and written.
- Excellent organizational skills.
- Must be detail oriented.
Work with a highly skilled engineering team in the design, implementation and support of storage devices related technology in Mac and iOS platforms. Performance analysis and debugging. Triage kernel, driver, and user application issues from internal engineering teams. Develop new tools to automate the triage and identification of software bugs.
Education & Experience
BS/MS in Computer Science or related field
- Understand disk and partitions, partition types, file system types, disk RAID, familiar with the boot sequence from EFI to desktop, understand things like resource access arbitrations from file open/close to device access file system mount unmount, user privileges, and have a good knowledge about end to end data IO path from file read write to disk IO.
- Experience with file systems such as HFS+, FAT, NTFS etc.
- Understanding of storage interfaces including PCIe, NVMe, AHCI, SATA, SCSI, USB
- Familiarity with Source Control Management with svn or git