Who we are looking for:
As an Engineer IV, Embedded Systems within the R&D team, you will serve as a technical anchor for our next-generation hardware platforms. You will design, develop, and optimize high-performance software running on a variety of embedded systems—ranging from single-board computers and edge AI compute modules to custom ARM architecture.
This role requires a unique blend of scrappy, proof-of-concept rapid prototyping and disciplined, production-grade software engineering. You will own the software lifecycle for new devices, ensuring seamless integration between low-level hardware, sensors, edge computing frameworks, and our enterprise cloud infrastructure.
What you will do:
-
End-to-End Development:
Architect, implement, and maintain embedded software from initial conceptual prototypes to ruggedized, scalable, enterprise-level production code.
-
Platform Ownership:
Develop and optimize firmware and middleware on platforms including Raspberry Pi, NVIDIA Jetson, and ARM-based System-on-Modules (SOMs).
-
Sensor & Peripheral Integration:
Write and debug low-level drivers and interfaces for a diverse ecosystem of peripherals, cameras, and environmental sensors via protocols such as I2C, SPI, UART, USB, and PCIe.
-
Edge Intelligence & Compute:
Optimize software on compute-constrained edge devices, including leveraging hardware acceleration (e.g., CUDA, TensorRT on Jetson platforms) for real-time data processing and computer vision pipelines.
-
System Stability & Lifecycle:
Design robust fault-detection, automated recovery mechanisms, and secure over-the-air (OTA) firmware update systems to ensure maximum field stability.
-
Cross-Functional Collaboration:
Partner closely with hardware/electrical engineers, mechanical designers, and cloud backend teams to define system architectures and interfaces.
-
Mentorship & Standards:
Drive code quality through rigorous code reviews, automated testing, and comprehensive documentation. Mentor junior and mid-level engineers on the team.
-
Perform additional duties as assigned.
What you will need:
-
Ability to read, write, speak and understand English.
-
BS degree in Computer Science, Computer Engineering, Electrical Engineering, or a related technical field (or equivalent practical experience).
-
6+ years’ Professional experience in embedded software development, with a proven track record of shipping commercial or industrial hardware products
-
Expert-level proficiency in C and C++; strong scripting skills in Python or Bash for testing and automation.
-
OS Expertise: Deep experience developing within Embedded Linux environments (including kernel configuration, device tree modification, and custom driver development).
-
Hands-on experience building applications on Raspberry Pi (Linux/Debian) and NVIDIA Jetson (JetPack ecosystem).
-
Solid understanding of hardware communication protocols: SPI, I2C, UART, CAN bus, USB.
-
Experience interfacing with high-resolution image sensors, cameras, or specialized sensors.
-
Proficiency with modern software engineering tools: Git, CMake, Docker, and CI/CD pipelines tailored for embedded targets.
-
Familiarity with networking stacks and IoT communication protocols (TCP/IP, UDP, MQTT, gRPC).
-
Comfortable utilizing lab equipment like oscilloscopes, logic analyzers, and multimeters to debug hardware/software boundary issues.
-
Expert in version control systems including trunk-based development, multiple release planning, cherry picking, and rebase.
-
Nice to Have Technical Competencies
-
Experience with custom Linux distribution builders like Yocto Project or Buildroot.
-
Familiarity with real-time operating systems (RTOS) or bare-metal ARM development.
-
Experience deploying or optimizing machine learning models at the edge.