Job Description Summary
Experience developing firmware for consumer IoT or smart home products.
Experience with industry protocols such as Zigbee, Z-Wave, Thread, and Matter.
Knowledge of Linux memory management, file systems, and bootloaders such as U-Boot.
Experience with scripting languages such as Python, Perl, or Lua.
Experience supporting products through manufacturing and production.
Responsibilities
Design, develop, debug, and maintain embedded firmware for IoT and video streaming products.
Own major firmware components and features throughout the product development lifecycle, from design to production.
Collaborate with Hardware, Cloud, Mobile, QA, and ODM partners to ensure successful system integration and product delivery.
Develop and integrate device drivers, communication protocols, RTOS components, and platform firmware.
Troubleshoot and resolve complex firmware, hardware, and system-level issues.
Optimize firmware for performance, memory usage, power consumption, and system reliability.
Review board schematics, component datasheets, and hardware documentation to support firmware development and debugging.
Participate in design reviews, code reviews, and root-cause analysis to improve software quality.
Evaluate new SoCs, image sensors, wireless modules, and other hardware components for future product development.
Mentor junior engineers and contribute to engineering best practices and continuous process improvements.
Required Qualifications
Bachelor's degree in Computer Science, Electrical Engineering, or a related field; Master's degree is a plus, or equivalent industry experience.
7+ years of experience in embedded firmware development, preferably with IoT, networking, or video streaming products.
Strong programming skills in Embedded C and C++.
Experience developing software on RTOS and Embedded Linux platforms.
Solid understanding of real-time multimedia applications, including video/audio processing, compression, and streaming technologies (H.264/H.265).
Experience with multithreaded and multitasking embedded software development.
Experience developing and debugging embedded device drivers.
Strong debugging, troubleshooting, and root-cause analysis skills in embedded systems.
Experience optimizing embedded software for performance and resource utilization.
Working knowledge of networking protocols, including TCP, UDP, HTTP/HTTPS, RTP, RTSP, SIP and WebRTC.
Experience with wireless communication technologies such as Wi-Fi, BLE, and LTE.
Familiarity with IoT communication architectures and cloud-connected devices.
Hands-on experience using hardware debugging tools such as oscilloscopes, logic analyzers, and protocol analyzers.
Experience using source control systems such as Git.
Strong communication and collaboration skills with the ability to work effectively across cross-functional teams.