Embedded C Developer

Montreal 2 days agoFull-time External
Negotiable
Job Title: Embedded C Developer Location: Montreal, Canada Job Type: Full-Time Position Summary We are seeking an experienced Embedded C Developer with strong Linux expertise to design, develop, and maintain embedded software solutions for complex systems. The ideal candidate will have hands-on experience in Embedded C programming and Linux-based embedded platforms, including device driver development, system programming, and hardware-software integration. Key Responsibilities • Design, develop, and maintain embedded software using C for Linux-based systems. • Develop and debug device drivers in Linux (kernel space and user space). • Work closely with hardware teams for board bring-up and hardware-software integration. • Develop and maintain BSP (Board Support Package) for embedded platforms. • Implement communication protocols such as SPI, I2C, UART, CAN, USB, and Ethernet. • Perform root cause analysis and debugging using tools such as GDB, Valgrind, and Trace tools. • Optimize system performance, memory utilization, and power management. • Customize and configure Linux kernel and device tree. • Participate in system architecture discussions and technical reviews. • Prepare technical documentation including design documents, test plans, and reports. • Support system validation, integration, and field issue resolution. Required Qualifications • Bachelor’s degree in Electronics Engineering, Computer Science, Electrical Engineering, or related field. • 4–8 years of experience in Embedded C development. • Strong proficiency in C programming for embedded systems. • Solid experience working with Embedded Linux systems. • Hands-on experience in Linux kernel development and device driver development. • Experience in Linux system programming (IPC, sockets, multi-threading, memory management). • Experience with cross-compilation tools and build systems (Yocto, Buildroot). • Familiarity with version control systems such as Git. • Strong debugging skills in Linux environment.