Senior Embedded Software Developer
at International Road Dynamics Inc
Saskatoon, SK, Canada -
Start Date | Expiry Date | Salary | Posted On | Experience | Skills | Telecommute | Sponsor Visa |
---|---|---|---|---|---|---|---|
Immediate | 31 Jan, 2025 | Not Specified | 01 Nov, 2024 | N/A | Git,Computer Engineering,Embedded Systems,Computer Science,Operating Systems,Coding Practices,Encryption,Automation,Pipelines,C | No | No |
Required Visa Status:
Citizen | GC |
US Citizen | Student Visa |
H1B | CPT |
OPT | H4 Spouse of H1B |
GC Green Card |
Employment Type:
Full Time | Part Time |
Permanent | Independent - 1099 |
Contract – W2 | C2H Independent |
C2H W2 | Contract – 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