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.