
Senior Embedded Software Engineer
- Sunnyvale, CA
- Permanent
- Full-time
- Collaborate with cross-functional teams to develop technical specifications and evaluate design trade-offs, particularly in platform and infrastructure software.
- Develop software for embedded Linux devices, including:
- Middleware development for distributed system communication.
- Third-party networked device integration and API design.
- Designing and implementing multi-threaded, distributed system C++ applications.
- Contribute to various areas of software development, such as:
- Extending current frameworks to new processors and operating systems.
- Developing research prototypes for new product concepts.
- Enhancing distributed communication subsystems.
- Collaborate with electrical engineers to integrate new, custom hardware.
- Support clinical studies and participate in product demonstrations as needed.
- Engage in design, verification and validation, and transfer to manufacturing activities.
- Proficiency in developing cross-platform, object-oriented C++ code (version 11 and higher).
- Experience with embedded Linux development.
- Proficiency in using Python3 and bash scripting.
- Familiar with communication protocols such as TCP/IP, CAN, I2C, SPI and serialization protocols like protobuf.
- Understanding of software design patterns, messaging and RPC frameworks.
- Strong problem-solving skills for isolating and debugging embedded hardware and software issues.
- Experience working collaboratively on product-focused designs.
- Excellent communication skills.
- Commitment to delivering high-quality and innovative products that enhance lives.
- Familiarity with automation, CI/CD, and unit testing.
- Experience in both Linux and Windows development environments.
- Willingness to work in both Linux and Windows systems as needed.
- Strong intuition and interest in designing systems for testability and scalability.
- Minimum Bachelor's plus 6 years or Master's plus 4 years degree in computer science, Computer Engineering or related engineering discipline.
- Minimum, 4+ years industry experience developing and supporting embedded systems.
- Experience with working with Nix and Bazel build systems.
- Cyber-security concepts such as secure boot, authentication and encryption.
- Experience with all phases of the product development lifecycle, including design, implementation, debugging, verification, validation, and manufacturing transfer.
- Experience in designing software products for FDA-regulated or mission-critical applications, with an understanding of design input, design output, traceability, risk analysis, and mitigation processes.
- Hands-on experience with network interface and streaming protocols such as UDP, RTP, SRTP, SSL/TLS, and GStreamer a plus.