Senior Firmware Developer

Recruiting in Motion

  • Toronto, ON
  • 140.000 $ par an
  • Permanent
  • Temps-plein
  • Il y a 1 mois
About Our Client:Our client is a technology company specializing in advanced manufacturing process control solutions aimed at enhancing quality, safety, and efficiency. Beyond their innovative devices, our client provides comprehensive industrial solutions, including design, engineering, construction, installation, commissioning, process monitoring, and analytics, to support sustainable innovation in manufacturing.They’re hiring for a Senior Firmware Developer to design, develop, and optimize embedded Linux systems for their next-generation hardware platforms. This candidate will play a crucial role in the entire product development lifecycle, from concept to deployment, ensuring high performance, reliability, and security of embedded devices.Responsibilities:
  • Develop and customize Android platform components including system apps, services, and framework layers.
  • Build, configure, and maintain the Linux kernel and Android GKI for custom boards.
  • Design, port, and debug device drivers for various peripherals (I2C, SPI, GPIO, USB, display, camera, sensors, etc.).
  • Integrate Board Support Packages (BSP) and vendor-specific hardware abstraction layers (HALs).
  • Customize and extend the Android build system, init system, SEPolicy, and boot process.
  • Support secure boot, verified boot (AVB), OTA updates, and device provisioning.
  • Debug system-level issues using tools like ADB, logcat, dmesg, gdb, perf, and serial console.
  • Collaborate with hardware engineers, QA, and mobile app teams to ensure seamless system integration.
  • Participate in Android version upgrades, kernel patching, and maintenance tasks.
  • Improve efficiency, stability, and scalability of system resources
  • Integrate and validate new hardware, often building drivers from scratch. Work closely with hardware teams to review schematics and align firmware requirements
  • Participate in sprint planning, issue resolution, version releases, and build automation
  • Contribute to code reviews and help other developers refine their work
  • Mentor and lead junior developers across different product lines, fostering technical growth and collaboration
  • Work with minimal supervision, demonstrating strong initiative and technical ownership.​
Requirements:
  • Bachelor’s degree in Computer Science, Computer Engineering, or related field
  • 5+ years of experience in embedded Linux development, with hands-on work on:
  • Linux kernel configuration and build systems.
  • Custom device driver development and debugging.
  • Board bring-up and low-level firmware.
  • Deep understanding of Android platform internals, AOSP, and GKI concepts.
  • Proficiency in C, C++, shell scripting, and working knowledge of Java.
  • Hands-on experience developing and troubleshooting on embedded targets
  • Solid understanding of IP protocols, interfaces, and hardware subsystems
  • Familiarity with Android security features (SEPolicy, AVB, dm-verity, etc.).
  • Comfortable interpreting schematics and component datasheets
  • Experience with source control, code review tools, and CI/CD pipelines (e.g., Jenkins)
  • Strong leadership, communication, and mentoring skills
Bonus Skills:
  • Experience with SoC platforms such as NXP
  • Familiarity with HAL development using AIDL/HIDL.
  • Experience with bootloaders (U-Boot, fastboot) and secure boot chains.
  • Exposure to Buildroot for embedded Linux environments.
  • Contributions to AOSP, upstream kernel, or open-source projects.

Recruiting in Motion