Software Engineer - Systems (DFT Initiative)

Apple Inc.
yesterday

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English

Job location

Tech stack

Clean Code Principles
Artificial Intelligence
Software Applications
Automation of Tests
Boolean Algebra
C++
Profiling
Databases
Software Design Patterns
Linux
Inter-Process Communication
Python
Lua
Objective-C
Object-Oriented Software Development
Signal Integrity
Socket
Software Engineering
Software Systems
System Programming
Encapsulation (Networking)
Scripting (Bash/Python/Go/Ruby)
Hardware Testing
Solid Principles
Objective C++

Requirements

Are you interested in working on tools and software that directly enable hardware validation? Our Hardware Test Engineering team is evolving our Design for Test (DFT) methodology, and we're building the software infrastructure to support it effectively.\n

This is an opportunity to develop software tools that control and automate hardware testing. You'll work on designing & building maintainable software that directly interfaces with test hardware and equipment. This isn't high-level application software-it's hands-on software engineering focused on creating tools that manage the actual execution of hardware tests.\n\nIf you enjoy hands-on software development with clear real-world impact, and you're interested in the intersection of software and hardware testing, this role offers meaningful work with tangible results.\n

BS EE or CS\n7+ years experience\nUnderstanding of software design principles including design patterns, separation of concerns, and writing maintainable code\nProficiency in C++ for systems-level development and integration\nProficiency in one higher-level programming language such as Python or similar for application-level development\nProficiency in one scripting language (Lua preferred)\nExperience in designing databases\nSolid grasp of object-oriented design principles including encapsulation, polymorphism, inheritance hierarchies\nAbility to read and interpret schematics to understand circuit behavior and identify relevant test points\nUnderstanding of server-client architecture and socket programming for building networked test systems\n

Basic understanding of electrical engineering concepts including voltage, current, digital logic fundamentals, and signal integrity-enough to understand hardware constraints and test requirements\nAbility to read and interpret schematics to understand circuit behavior and identify relevant test points\nPractical familiarity with Objective-C code, able to read and work with existing Objective-C implementations\nFamiliarity with Linux user space applications, including system calls, process management, inter-process communication, and performance profiling\nStrong problem-solving skills with an ability to decompose complex systems into manageable components\nQuickly adapting to different code bases and technologies to identify and implement effective software solutions across our testing infrastructure\nExperience with test automation or testing frameworks\nKnowledge of hardware-software co-design considerations\nInterest in exploring AI applications in testing and automation

Apply for this position