Software Development Engineer in Test - Energy Technologies
Job Description
Summary
The Core OS Energy Technologies organization is looking for a highly motivated and collaborative software development engineer to join the energy tech quality engineering team. As a critical member of the team, you will be working very closely with software developers and cross-functional teams on technologies in OS dynamic resource management and dynamic activity scheduling across multiple platforms. This development team develops technologies to intelligently schedule workloads in optimal device conditions to balance feature responsiveness with constraints such as battery life, thermals, network efficiency, memory, and more! Your responsibilities will span across all phases of software delivery process of Apple’s products, from early design to product launch and beyond with an emphasis on systems engineering to identify and propose viable solutions to self-identified bugs in collaboration with developers. You will take on an in-depth hands-on learning approach to understand systems under test at parity with its developers, paying close attention to detail all while maintaining a big picture of the problems at hand in order to identify system interactions, processes & optimization opportunities. This role requires a very strong collaboration skillset to provide guidance & support to QA members of partner client teams. You will be applying critical thinking at all times to produce novel tooling solutions that enable automation, triage and local on-device testing in parallel!
Description
- Create well formulated, scalable software & systems solutions in conjunction with developers across many apple platforms
- Write elegant, performant code in Objective-C or Swift and test, debug, and productize it
- Ability to deliver high quality work on tight schedules consistently
- Devise and execute a testing strategy for one or more major technologies/features in the dynamic resource management domain across multiple apple operating systems
- Quickly gain a deep understanding of the design, requirements and architecture of energy technologies SW/FW
- Influence inclusion of testability into the software design
- Develop and automate unit, functional and system-level tests
- Define and drive quality metrics to track progress and improvements throughout the SDLC
- Collaborate cross-functionally with peer development, QA and systems teams across Apple
- Assess and represent end-user impact of issues, shaping key product decisions
- Explore novel approaches to create new frameworks, systems engineering solutions, tools, automation and infrastructure to streamline code development and quality practices
- Consistent track record of leading software projects from inception through customer delivery
- Write elegant, performant code in Objective-C or Swift and test, debug, and productize it
- Ability to deliver high quality work on tight schedules consistently
- Devise and execute a testing strategy for one or more major technologies/features in the dynamic resource management domain across multiple apple operating systems
- Quickly gain a deep understanding of the design, requirements and architecture of energy technologies SW/FW
- Influence inclusion of testability into the software design
- Develop and automate unit, functional and system-level tests
- Define and drive quality metrics to track progress and improvements throughout the SDLC
- Collaborate cross-functionally with peer development, QA and systems teams across Apple
- Assess and represent end-user impact of issues, shaping key product decisions
- Explore novel approaches to create new frameworks, systems engineering solutions, tools, automation and infrastructure to streamline code development and quality practices
- Consistent track record of leading software projects from inception through customer delivery
Minimum Qualifications
- Minimum 3+ years experience in software development
- Excellent understanding and development skills in Objective-C, C++ and Swift
- Excellent understanding of Operating Systems, computer and embedded architecture
- Demonstrate strong critical thinking, debugging and ability to breakdown large, complex problems
Preferred Qualifications
- Excellent understanding of python and python frameworks
- Experience in testing and automation of embedded systems and firmware
- Strong fundamentals in software unit testing, mocking frameworks
- Excellent collaborative and communication skills in large cross-functional team environments
- Skilled in test plan development and execution through the software development life cycle
- Excellent ability to conduct bug triage and subsequently propose and implement a solution
- Ability to analyze data and telemetry from on-device and interpret system behavior