Software Engineer (Teradyne, Agoura Hills)
About the role
The Software Engineering team in Agoura Hills, CA is seeking a senior Embedded Software Engineer with a passion for learning, developing high quality software, solving complex problems, and contributing to an innovative team. The role involves balancing various tasks related to software system design, development, testing, troubleshooting, and maintenance. It requires interacting with multi-functional teams from the product definition stage through product release.
Responsibilities
- Architecture, design, implementation, verification, and lab validation of Linux BSP and userspace tools for automated test equipment.
- Collaborate with Hardware, Software, and Systems engineering to refine requirements and provide interfaces to complex hardware systems.
- Implement scalable, high-performance, high-quality, extensible, and maintainable code.
- Build, deployment, and test automation of the systems you’ll create and improve.
- Debug complex system-level issues involving software, hardware, and OS interactions.
Requirements
- 10+ years of experience developing software.
- Experience with Embedded Linux BSP development (Devicetrees, u-boot configuration, bios configuration, building and deploying Linux on embedded systems).
- Experience with Linux drivers and bootloader.
- Application development in Linux environments.
- Languages: Expertise in C, C++ coding and several scripting languages (Python, bash, …) required. Operating Systems: Linux.
- Development Tools: GIT, Cmake, Yocto, Docker.
- Hardware protocols: Familiarity with common hardware protocols, such as; I2C, SPI, PCIe, Ethernet, USB...
- Excellent troubleshooting, debugging, especially debugging remote systems with multiple devices in the loop, and problem solving skills.
- Comfortable and familiar with peer reviewed software development process.
- Comfortable working with open source communities (Linux kernel, uboot, etc)
- Familiarity with x86_64, ARM64, and PowerPC processors and high-end x86_64 servers.
- Experience working in cross-functional teams designing complex systems.
- BS required, advanced degree in electrical engineering, computer engineering, computer science or related technical field from a top university or engineering institution.
- Excellent communication skills.
Qualifications
- Experience with Automated Test Equipment is a plus.
- Experience with C# is a plus.
- Experience with Windows is a plus.
Skills
- Expertise in C, C++ coding and several scripting languages (Python, bash, …).
- Linux operating systems.
- Development tools: GIT, Cmake, Yocto, Docker.
- Hardware protocols: I2C, SPI, PCIe, Ethernet, USB...
- Peer reviewed software development process.
- Open source communities (Linux kernel, uboot, etc).
- x86_64, ARM64, and PowerPC processors and high-end x86_64 servers.
Benefits
Teradyne offers a variety of robust health and well-being benefit programs, including medical, dental, vision, Flexible Spending Accounts, retirement savings plans, life and disability insurance, paid vacation & holidays, tuition assistance programs, and more. Please click here to see details.