Senior Embedded Software Developer

at  International Road Dynamics Inc

Saskatoon, SK, Canada -

Start DateExpiry DateSalaryPosted OnExperienceSkillsTelecommuteSponsor Visa
Immediate31 Jan, 2025Not Specified01 Nov, 2024N/AGit,Computer Engineering,Embedded Systems,Computer Science,Operating Systems,Coding Practices,Encryption,Automation,Pipelines,CNoNo
Add to Wishlist Apply All Jobs
Required Visa Status:
CitizenGC
US CitizenStudent Visa
H1BCPT
OPTH4 Spouse of H1B
GC Green Card
Employment Type:
Full TimePart Time
PermanentIndependent - 1099
Contract – W2C2H Independent
C2H W2Contract – Corp 2 Corp
Contract to Hire – Corp 2 Corp

Description:

JOB DESCRIPTION

Overview
As an Embedded Software Developer, you will play a pivotal role in designing, developing, and optimizing embedded software solutions using C and Bash scripting. You will work on complex embedded systems, ensuring that they are efficient, reliable, and meet the required industry standards. This role requires in-depth technical expertise in embedded systems, real-time operating systems (RTOS), Edge computing and hardware interfacing. You’ll work on ensuring system performance, reliability, and adherence to industry standards while collaborating with various teams.

Responsibilities

  • Design, develop, and implement embedded software solutions using C, focusing on low-level hardware interaction and system optimization.
  • Leverage Bash scripting to automate tasks, manage configurations, and enhance system performance, especially for Linux-based systems.
  • Optimize software for performance, ensuring efficient use of system resources, particularly in constrained environments such as embedded and edge computing systems.
  • Participate in technical discussions and design reviews, ensuring that all solutions are scalable, maintainable, and aligned with project goals.
  • Conduct thorough code reviews to ensure high standards of code quality, performance, and adherence to best practices in embedded systems development.
  • Collaborate closely with the software technical manager to design systems, develop and refine technical standards, including coding guidelines ensuring they align with the overall architectural vision and strategic goals.
  • Ensure that the team consistently follows the established technical standards, offering mentorship and support to less experienced engineers.
  • Identify potential issues early in the development cycle, such as memory management inefficiencies, concurrency issues, and hardware interaction problems.
  • Collaborate with cross-functional teams, including hardware engineers, software developers, and systems engineers, to ensure seamless integration of embedded systems into larger software and hardware solutions.
  • Work on integrating embedded systems with various communication protocols, including CAN bus.
  • Develop test plans and procedures to validate system functionality and performance under various conditions
  • Ensure compliance with industry standards and regulatory requirements, particularly in the context of edge computing.
  • Develop and maintain clear and detailed technical documentation for embedded software solutions, including code design, system configurations, optimization techniques, and troubleshooting guidelines.

This list of responsibilities might not cover everything you’ll end up doing.

Qualifications

  • Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
  • 5+ years of experience in embedded systems development.
  • Extensive experience in writing efficient, reliable, and maintainable code in C, particularly in resource-constrained environments.
  • Advanced skills in Bash scripting for automation, system management, and task scheduling on Linux-based embedded systems.
  • Experience with real-time operating systems (RTOS) and hardware interfacing.
  • Strong analytical and problem-solving skills.
  • Experience with Version Control Systems: Git, Bitbucket.
  • Familiarity with Build Systems: CMake, Make.
  • Experience with Cross-Compilation Toolchains: ARM GCC, Yocto.
  • Knowledge of Continuous Integration/Continuous Deployment (CI/CD) Pipelines.
  • Understanding of Cybersecurity Principles: Secure boot, encryption, and secure coding practices.

Benefits

We offer a Total Rewards plan designed with you and your family’s health and wellness in mind that includes:

  • Paid days off (i.e. vacation, sick days, bereavement leave)
  • Health and Dental plans
  • Retirement plans
  • Employee and Family Assistance Program (EFAP)
  • Employee referral program

We welcome applicants from all backgrounds, regardless of race, color, religion, sex, veteran status, sexual orientation, gender identity, national origin, age, or disability or any other protected characteristics in accordance with applicable federal, state/provincial, and local laws. We’re committed to creating a workplace where everyone feels valued and respected.
We appreciate all responses and will acknowledge only those being considered for an interview.
We respectfully request no calls or unsolicited resumes from Agencies

Responsibilities:

  • Design, develop, and implement embedded software solutions using C, focusing on low-level hardware interaction and system optimization.
  • Leverage Bash scripting to automate tasks, manage configurations, and enhance system performance, especially for Linux-based systems.
  • Optimize software for performance, ensuring efficient use of system resources, particularly in constrained environments such as embedded and edge computing systems.
  • Participate in technical discussions and design reviews, ensuring that all solutions are scalable, maintainable, and aligned with project goals.
  • Conduct thorough code reviews to ensure high standards of code quality, performance, and adherence to best practices in embedded systems development.
  • Collaborate closely with the software technical manager to design systems, develop and refine technical standards, including coding guidelines ensuring they align with the overall architectural vision and strategic goals.
  • Ensure that the team consistently follows the established technical standards, offering mentorship and support to less experienced engineers.
  • Identify potential issues early in the development cycle, such as memory management inefficiencies, concurrency issues, and hardware interaction problems.
  • Collaborate with cross-functional teams, including hardware engineers, software developers, and systems engineers, to ensure seamless integration of embedded systems into larger software and hardware solutions.
  • Work on integrating embedded systems with various communication protocols, including CAN bus.
  • Develop test plans and procedures to validate system functionality and performance under various conditions
  • Ensure compliance with industry standards and regulatory requirements, particularly in the context of edge computing.
  • Develop and maintain clear and detailed technical documentation for embedded software solutions, including code design, system configurations, optimization techniques, and troubleshooting guidelines


REQUIREMENT SUMMARY

Min:N/AMax:5.0 year(s)

Information Technology/IT

IT Software - Application Programming / Maintenance

Software Engineering

Graduate

Computer science computer engineering electrical engineering or a related field

Proficient

1

Saskatoon, SK, Canada