Required Skills
JOB DESCRIPTION
-
Strong experience in Embedded C/C++ programming.
-
Hands-on experience with FreeRTOS development.
-
Strong experience in Embedded Linux system development.
-
Experience in Bare Metal firmware development.
-
BSP development and customization experience.
-
Experience in board bring-up and hardware debugging.
-
Device driver development for embedded peripherals.
-
Strong understanding of ARM Cortex-A/R/M or similar processor architectures.
-
Experience with IPC mechanisms: Message Queues, Shared Memory, Semaphores, Pipes, and Socket-based Communication.
-
Strong knowledge of TCP/IP, UDP, HTTP/HTTPS, MQTT, SNMP, and SSH/TLS.
-
Linux kernel fundamentals, Device Tree concepts, boot sequence, and startup architecture.
-
Strong debugging skills using GDB, JTAG Debuggers, Lauterbach/Trace32, Wireshark, Logic Analyzers, and Oscilloscopes.
-
Experience with Git and version control systems.
Preferred Skills
-
Experience with FreeRtos BSP development.
-
Knowledge of AMP/SMP architectures.
-
Experience with secure boot and embedded security concepts.
-
Familiarity with IoT protocols such as BLE, Zigbee, Thread, Matter, and Wi-Fi.
-
Exposure to cloud-connected IoT devices and edge computing.
-
Experience with CI/CD and automated build systems.
-
Understanding of cybersecurity concepts for connected products.
Responsibilities
Key Responsibilities
-
Develop and maintain embedded software solutions on FreeRtos, Embedded Linux, and Bare Metal platforms.
-
Perform BSP development and customization for new hardware platforms.
-
Lead and support board bring-up activities, including bootloader, kernel, device drivers, and hardware validation.
-
Develop and integrate device drivers for UART, SPI, I2C, Ethernet, USB, GPIO, ADC, PWM, and PCIe peripherals.
-
Design and implement IPC mechanisms, message queues, shared memory, semaphores, sockets, and synchronization primitives.
-
Work on real-time applications with deterministic performance requirements.
-
Develop and optimize embedded applications using C/C++.
-
Configure and customize bootloaders (U-Boot or equivalent).
-
Debug hardware-software integration issues during platform bring-up and product development.
-
Analyze and optimize system performance, memory utilization, boot time, and CPU utilization.
-
Collaborate with hardware, firmware, validation, and system teams throughout the product lifecycle.
-
Participate in architecture reviews, code reviews, and technical design discussions.
-
Support product validation, deployment, and field issue analysis.
Qualifications
Education
Bachelor’s or Master’s degree in Electronics, Embedded Systems, Computer Science, Electrical Engineering, or related field.
Domain
IoT Devices / Smart Home Solutions / Building Automation / Connected Products / Embedded Systems