Firmware Engineer Embedded Linux IP Camera
Description
Job Summary
We are looking for an experienced Firmware Engineer to develop, maintain, and enhance firmware for IP cameras and embedded video surveillance products. The candidate will work on embedded Linux-based systems, C/C++ programming, network communication, HTTP APIs, and web-based device management interfaces.
The ideal candidate should have a strong understanding of embedded software development, Linux architecture, networking protocols, and firmware debugging. Experience in IP cameras, CCTV systems, telecommunications equipment, or network devices will be preferred.
Key Responsibilities
- Design, develop, maintain, and debug embedded firmware for IP cameras and related video surveillance products.
- Develop software components and system-level applications using C and C++ on Linux-based embedded platforms.
- Work with Linux architecture, processes, threads, inter-process communication, memory management, and system services.
- Implement and maintain network communication functionality using TCP/IP and related networking protocols.
- Develop, maintain, and debug HTTP/HTTPS APIs for device configuration, status monitoring, control, and integration with external systems.
- Maintain and enhance web-based user interfaces (Web UI) used for camera configuration, device management, and system monitoring.
- Integrate firmware components with hardware drivers, network interfaces, storage, and other embedded system modules.
- Troubleshoot firmware defects, network connectivity issues, system crashes, performance bottlenecks, and interoperability problems.
- Conduct unit testing, integration testing, regression testing, and firmware validation.
- Analyze logs, reproduce reported issues, identify root causes, and implement reliable software fixes.
- Collaborate with BSP, hardware, ISP/image processing, QA, and product teams to deliver stable firmware releases.
- Participate in firmware integration, release management, documentation, and ongoing product maintenance.
- Follow coding standards, version control practices, and secure software development principles.
- Perform other relevant engineering tasks assigned by the supervisor.
Required Skills and Qualifications
- Bachelor's degree in Computer Science, Electronics, Electrical Engineering, or a related technical discipline.
- Approximately 3 years of experience in embedded firmware or software development.
- Strong programming skills in C and C++.
- Good understanding of Linux architecture and embedded Linux application development.
- Practical knowledge of TCP/IP, UDP, HTTP/HTTPS, sockets, and client-server communication.
- Experience developing or maintaining REST-style HTTP APIs or similar device communication interfaces.
- Familiarity with web technologies such as HTML, CSS, and JavaScript for maintaining or debugging Web UI components.
- Experience in debugging software issues using Linux command-line tools, logs, and debugging utilities.
- Familiarity with Git and software development workflows.
- Strong problem-solving, analytical, communication, and teamwork skills.
Preferred Skills
- Hands-on experience with IP cameras, CCTV systems, NVRs, video encoders, or network video products.
- Knowledge of ONVIF, RTSP, RTP, DHCP, DNS, NTP, and other common IP device protocols.
- Familiarity with video streaming, encoding concepts, multimedia frameworks, or camera configuration interfaces.
- Experience in telecommunications equipment, networking products, or other embedded communication systems.
- Exposure to cross-compilation, embedded Linux build systems, firmware upgrade mechanisms, and system logging.
- Knowledge of secure communication, authentication, API security, and firmware reliability.
- Experience working with hardware-dependent software and collaborating with BSP or driver engineers.