Embedded Software Engineer

Suru 

📍 Montreal, Canada 🇨🇦

full-time
senior
Posted —

Key Skills

C++Linuxroboticshardwaremulti-threaded

Industry

RoboticsMedical Devices

Job Description

Lead Embedded Software Engineer (Real-Time Systems / C++)


Job Description


We are seeking a Lead Embedded Software Engineer to support the development of next-generation robotic and optical tracking technologies used within an advanced surgical platform. This individual will be responsible for developing, maintaining, and improving complex embedded software systems responsible for real-time hardware control, camera integration, device tracking, and system performance.


This is a highly technical, hands-on software engineering role focused on embedded Linux development, real-time software architecture, hardware interfacing, and complex multi-threaded systems. The ideal candidate will have deep C++ expertise and experience developing software that interacts directly with hardware in environments where precision, timing, and reliability are critical.


Despite the title, this is not a people-management role. The "Lead" designation reflects technical ownership and problem-solving responsibility rather than direct supervisory responsibilities. The team is seeking someone who wants to tackle difficult technical challenges and help drive a complex product platform to the next level.


Medical device experience is not required. Candidates from robotics, aerospace, automotive, industrial automation, computer vision, imaging systems, or other hardware-centric software environments are strongly encouraged to apply.


Day-to-Day

  • Design, develop, and maintain embedded software for advanced tracking and robotic systems
  • Develop software primarily in C++ within embedded Linux environments
  • Support real-time software applications responsible for hardware communication, device tracking, and system control
  • Develop and maintain multi-threaded and multi-process software architectures
  • Interface directly with hardware components, sensors, cameras, and embedded systems
  • Troubleshoot complex software, hardware, and system-level issues
  • Analyze existing software systems and identify opportunities for performance improvements and optimization
  • Collaborate with systems, electrical, mechanical, manufacturing, and software engineering teams
  • Support software verification, validation, testing, and debugging activities
  • Contribute to software architecture, design documentation, and development planning
  • Support next-generation development efforts while maintaining existing product platforms

Requirements / Qualifications


Required

  • Bachelor's degree in Computer Science, Software Engineering, Electrical Engineering, or related technical discipline
  • 8+ years of software development experience
  • Strong expertise in C++ software development
  • Experience developing software within embedded Linux environments
  • Experience with real-time software systems
  • Strong experience developing multi-threaded and multi-process applications
  • Experience interfacing software with hardware devices, sensors, cameras, or embedded electronics
  • Strong understanding of object-oriented programming and software architecture
  • Experience troubleshooting and debugging complex system-level issues
  • Strong communication and collaboration skills

Preferred

  • Experience with robotics, camera systems, computer vision, optical tracking, imaging systems, or autonomous systems
  • Experience working with ARM-based platforms
  • Experience with hardware communication protocols and low-level hardware interaction
  • Experience with Python scripting
  • Experience with control systems, PID control, or motion control systems
  • Experience with gRPC, REST APIs, or communication frameworks
  • Experience with CI/CD, Docker, CMake, Yocto, or embedded build environments
  • Experience with multi-processor systems
  • Experience working in regulated industries such as medical device, aerospace, automotive, or industrial automation
  • Familiarity with Agile development environments