Senior Embedded Software Engineer
- Kawartha Lakes, ON, Canada
- Lindsay, ON, Canada
Full-time
Applications open in a new tab.
Job details
- Job type
- Full-time
- Apply by
- Experience
- Minimum 8 years experience in real-time embedded software development using C or C++
- Posting language
- English
- Posted
Original job description
What we do here is hard, but then very few things worth achieving are easy. By joining Horizon, you will have the opportunity to work with our world-class entrepreneurial team who are passionate about delivering something special.
What we need you to bring.
Horizon is seeking an open, enthusiastic Senior Embedded Software Engineer. Your role involves designing, developing and maintaining the embedded software that runs on our platform, ensuring it meets our performance, safety and design targets. Your role will be pivotal in determining what our platform is capable of, and you will support the design team with creative ideas to make our software more robust, efficient and capable.
As we’re a small team, there is significant scope for you to advance your career and learn about adjacent disciplines.
Your Day-to-Day
- Support systems engineers in specifying the functionality and characteristics of airborne software based on system level requirements.
- Develop embedded software in C for bare metal hardware ARM microcontroller targets (I/O drivers built upon board support packages, custom databus packet definition, packet parsing and checksum, co-operative interrupt driven schedulers etc.)
- Architect and design the embedded software, considering hardware constraints, design constraints, and available resources to satisfy the system level requirements.
- Integrate low level software with model-based code generated through MATLAB Simulink.
- Develop automated and manual tests to perform requirements-based verification of the embedded software and software tools
- Assess, measure, troubleshoot, and resolve issues with software execution and characteristics such as worst-case timing, memory margin, structural coverage, data coupling, and control coupling
- Perform peer reviews of other team member’s contributions to the software development project
- Follow, review, release and change software development processes.
- Excellent communication skills, both written and verbal, with both internal & external customers
- High energy, self-motivated, organized and detail-oriented
- Ability to work independently and as a member of an integrated team
- BS in Computer Engineering, Electrical Engineering, Computer Science, or a related degree from an accredited university
- Minimum 8 years experience in real-time embedded software development using C or C++
- Mastery of the C programming language
- Experience in most of the following areas: hard real-time systems, built-in-test, tasking and interrupts, performing and developing tests, RTOS, bare-metal development, communication protocols (CAN, I2C, SPI)
- Strong understanding of software configuration management and contemporary software build, integration, test, and deployment methodologies
- Comfortable reading electrical schematics, documentation, and datasheets
- Experience with electronics lab equipment such as programmable power supplies, signal generators, oscilloscopes, and bus analyzers
- Good team, communication, and leadership skills required
- Candidates are encouraged to apply even if they don’t meet all minimum qualifications
- Experience targetting Texas Instruments Hercules and/or STM ARM microcontrollers, or equivalent
- Knowledge and awareness of the activities and outputs required for DO-178C compliance
- Deep understanding of DO-178C and its supplements
- Knowledge of ARP 4754A and ARP 4761 processes and how they affect and inform the software processes
- Experience with the Lauterbach TRACE32 debug/instruction trace system
- Experience with GNU GCC ARM embedded toolchain and Texas Instruments Code Composer Studio
- Knowledge of and experience with implementing ARINC 429 and ARINC 785 protocols
- Familiarity with RTCA DO-330 tool qualification objectives, activities, and outputs
- Familiarity with RTCA DO-331 model-based development objectives, activities, and outputs
- Experience with a requirements management tool/framework (IBM DOORS, Jama, Siemens Polarion)
- Experience with the Dassault 3DX life cycle data management system
- Experience with embedded software for electric motor control, battery management systems, and/or flight control systems
- Experience with Git, GitHub/GitLab
As part of the team, you will tackle challenges and deliver something that has never been done before. The team is currently full of multi-skilled individuals. Come join our growing team in Ottawa! You will be one of the first specialist engineers to join us, which provides significant latitude in developing our working methods alongside needs of developing the platform.
Our Benefits.
People are the heart of our success, and we like to provide transparency in the way we operate. This is why our benefits are beyond the normal, and we are constantly trying to improve these further.
- No Holiday Cap
- Hybrid Work Options
- Company Paid Group Benefits Plan
- Company Stock Matching Program
- Health Spending Account
- Equity Awards
If you have a passion for aerospace and EVTOL, and want to work on challenging and rewarding projects, please apply today!
Location.
This role will be based in the Ottawa area, with occasional travel to our main hangar in Lindsay, Ontario required. We offer relocation allowances in appropriate cases.
Not Quite Your Profile?
We would love for you to apply even if you have not met all the experience listed in this advert. We understand everyone’s career is unique and we welcome opportunities to broaden our knowledge in an open, diverse and inclusive way.
More about this job
Responsibilities
Design, develop, integrate, and maintain embedded C software for ARM-based bare-metal hardware, ensuring it meets system requirements and performance, safety, and design targets. Verify software through automated and manual testing, troubleshoot execution and timing issues, conduct peer reviews, and follow software development and release processes.
Requirements
Requires a bachelor's degree in computer engineering, electrical engineering, computer science, or a related field, and at least eight years of real-time embedded software development experience using C or C++. Candidates should have strong C skills and experience with areas such as bare-metal development, RTOS, interrupts, testing, and communication protocols; aerospace standards and tools are additional qualifications.
Skills
- Embedded Software Development
- C Programming
- Real-Time Systems
- Bare-Metal Development
- ARM Microcontrollers
- RTOS
- Interrupts and Tasking
- Communication Protocols
- Requirements-Based Verification
- Software Testing
- MATLAB Simulink
- Hardware-Software Integration
- DO-178C Compliance
- Electrical Schematics and Datasheets
- Debugging and Troubleshooting
Benefits
- Unlimited Vacation
- Hybrid Work Options
- Company-Paid Group Benefits Plan
- Company Stock Matching Program
- Health Spending Account
- Equity Awards
Visa sponsorship
Not detected in the job text
Categories
- Engineering
- Software
- Technology
- Transportation
Keywords
- Embedded Software
- C
- C++
- ARM Microcontrollers
- Bare-Metal Development
- Real-Time Systems
- RTOS
- MATLAB Simulink
- Board Support Packages
- CAN
- I2C
- SPI
- ARINC 429
- ARINC 785
- DO-178C
- DO-330
- DO-331
- ARP 4754A
- ARP 4761
- Texas Instruments Hercules
- STM ARM Microcontrollers
- Lauterbach TRACE32
- GNU GCC ARM Embedded Toolchain
- Code Composer Studio
- IBM DOORS
- Jama
- Siemens Polarion
- Dassault 3DX
- Git
- GitHub