Software Engineer - Systems (DFT Initiative)
Role details
Job location
Tech stack
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