Summary
Join our dynamic team as a highly skilled Staff Embedded Engineer to design, develop, and maintain advanced embedded systems while collaborating with cross-functional teams.
Requirements
- Ability to travel up to 10%
- Design and develop embedded software solutions for various platforms, ensuring high performance and reliability
- Architect, code, and optimize embedded applications and systems using C, C++, STL, Python, and shell scripting
- Excellent in Linux programming, IPC, multi-threaded programming & Socket programming
- Utilize object-oriented design principles (UML, design patterns) to build scalable and maintainable software
- Debug and troubleshoot issues using tools such as GDB, Valgrind, Clang, TCP dump, and Wireshark
- Proficiency or familiarity with one of the build systems such as CMake, Make or Ninja
- Work with embedded systems build environments (Buildroot, Yocto)
- Awareness of Linux driver models, including board bring-up processes, Bootloaders and Device tree concepts
- Knowledge of communication protocols, including UART, I2C, SPI, TCP, UDP
- Understanding of real-time operating systems (RTOS), such as FreeRTOS or Zephyr, and their integration within embedded systems
- Multimedia frameworks (GStreamer, FFmpeg) to handle audio and video functionalities in embedded environments using protocols RTSP and RTP is preferred
- Ability to collaborate and write integration code on cloud technologies including REST APIs, MQTT, AWS, and SaaS for connected device solutions
- Familiarity with version control systems like Git, SVN, or Mercurial for code management and version tracking
- Experience setting up unit tests, integration tests, and system tests in the CI/CD pipeline
- Domain knowledge in Pro-AV/Broadcast or Imaging solutions is a plus
Responsibilities
- Develop, implement, and maintain complex Linux applications
- Integrate Linux applications with various subsystems
- Analyze and optimize application performance at both software and system levels
- Provide solutions to complex issues in collaboration with other team members
- Work closely with hardware, firmware, and product teams
- Develop thorough documentation for applications, APIs, and system integration points
- Conduct and participate in code reviews to ensure code quality and maintainability across the team
- Engage with stakeholders as needed to gather requirements, provide updates, and manage expectations regarding project timelines, deliverables, and potential challenges
- Drive continuous improvement by identifying and addressing inefficiencies in software and hardware interfaces
Benefits
- 15 days of vacation, plus 12 days of national holidays
- 40 hrs. of paid sick time off
- Health, dental, and vision insurance
- 401 (k) with company matching
- HSA/ FSA