Senior Embedded Software Engineer
Hybrid Role
Compensation: $50 - $70 per hour
ABOUT THE ROLE
Our client is seeking a Senior Embedded Software Engineer with deep expertise in embedded programming and a strong system-level perspective. In this role, you will maintain and extend common code frameworks for embedded devices, develop and support core software modules, and optimize features across multiple device platforms. You will be responsible for writing and maintaining unit tests, creating technical documentation, troubleshooting, and improving software frameworks. Success in this position requires a keen understanding of end-to-end system behavior, the ability to identify corner cases and integration risks, and a passion for exploring emerging technologies. You will collaborate across disciplines in an innovation-driven environment, leveraging AI-enabled engineering tools to accelerate development and documentation. A positive, experimental mindset and adaptability to evolving requirements are essential.
WHAT YOU'LL DO
- Maintain and extend common code frameworks for embedded devices
- Develop and support core software modules for internal products and clients
- Design, implement, and maintain software features for multiple device platforms and board support packages
- Write, execute, and maintain unit tests to ensure software quality
- Create and maintain technical documentation for software modules and frameworks
- Optimize, troubleshoot, and improve existing frameworks and standard features
- Collaborate across disciplines to deliver innovative, end-to-end system solutions
- Identify corner cases and integration risks in embedded systems
- Leverage AI-enabled engineering tools to accelerate development, testing, code reviews, and documentation
- Debug hardware and firmware using debuggers, oscilloscopes, logic analyzers, and lab equipment
- Explore and integrate emerging technologies and new development methodologies
- Participate in agile development processes, including Azure DevOps, Sprints, and CI pipelines
- Communicate effectively with team members and stakeholders
- Demonstrate a positive, experimental mindset and willingness to learn and adapt in an innovation-focused environment
WHAT YOU BRING
- Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, or related field
- Extensive experience in embedded software development (C / Modern C++)
- Proficiency with unit testing concepts and frameworks
- Experience with CMake and embedded programming on ARM platforms
- Strong understanding of communication protocols and implementations (UART, SPI, Ethernet, CAN/CAN-FD)
- Knowledge of Flash technologies (NAND, NOR)
- Familiarity with platform-agnostic principles and abstraction
- Experience with FreeRTOS and Zephyr RTOS
- Embedded Template Library (ETL) experience
- Proficiency with GIT, Azure DevOps, and Azure CI pipelines
- Experience with CanOpen/Emotas stack and embedded Linux (including driver publishing)
- Ability to debug hardware and firmware using lab equipment (debuggers, oscilloscopes, logic analyzers)
- Hardware-in-the-loop (HiLS) testing experience is a plus
- Strong system-thinking skills and ability to understand end-to-end system behavior across hardware, firmware, software, communication interfaces, and real-time operating systems
- Ability to leverage AI-enabled engineering tools for development, test development, code reviews, and documentation
- Excellent communication skills and collaborative mindset
- Positive attitude, willingness to experiment, learn, and explore new development methodologies
- Adaptability to evolving requirements and comfort working in an innovation-focused, rapid prototyping environment
#LI-SM2