As a IoT device software, the successful candidate will be responsible for:
• IoT gateway embedded software solution assessment and implementation.
• IoT gateway embedded software design, optimization, and performance improvement.
• Work with hardware engineer to deal with software issues related with hardware.
• Embedded systems - device driver development (on Linux or RTOS environment), understanding of interconnect protocols (SPI, I2C, USB, SDIO, UART, GPIO etc.), board bring-up, interfacing peripherals, ability to debug hardware and low-level software issues, power measurement and management.
• System Programming - Strong knowledge of operating system kernel (RTOS or Linux) and system software (compiler, linker), microprocessor/microcontroller architecture, synchronization, IPC, memory management, system security, third party and open-source software.
• Networking - TCP/IP, socket programming, understanding of wireless communication protocols such as Wi-Fi, BLE, understanding of commonly used application-level protocols such as HTTP, MQTT, basic understanding of network security.
• Support software QA, provide postproduction support.