About the Role
Our software teams work directly with our hardware teams developing code that manages our systems controllers, actuators and telephoto lenses. We develop advanced real time software for various applications and processors.
We develop the embedded controls and user interfaces for complex electro-mechanical systems including gimbals, remote I/O subsystems, and custom lens controllers. This role would be ideal for someone who's looking to build their career with a supportive team that will encourage your growth.
- Architect, design, develop, document and verify embedded software for complex electro-optical inspection systems.
- Provide support to Engineering, Manufacturing and Customer Support teams to solve software issues.
- Participate in the estimation and planning of new products and features.
- Participate as a software team member within an Agile development process.
- Represent Software Engineering in company product development reviews.
- Participate in continuous department improvement processes.
- Review the software contributions of other team members.
- Strong knowledge of embedded C and C++ software architecture for real-time systems.
- Demonstrated ability to architect complex software systems.
- Strong technical and analytic skills.
- Demonstrated ability to research, design and implement complex algorithms.
- Demonstrated knowledge of modern software design practices like Object Oriented design and Patterns.
- Ability to understand the operation, design and control of complex electro-mechanical systems.
- Proven track record for creating innovative solutions to difficult problems on budget and on time.
- Strong knowledge of modern source code management.
- Proven track record for developing software within an Agile software process.
- Strong knowledge of embedded communications standards such as I2C, SPI, CAN, Serial, Ethernet.
- Excellent communication and interpersonal skills.
- Ability to learn and grow within a fast-paced environment
Desired Experience and Education
- 5-10 years of experience designing software for embedded microprocessors using C/C++.
- Experience developing for embedded ARM processors an asset.
- Experience targeting embedded Linux an asset.
- Familiarity with GPU processor coding an asset.
- Familiarity with FPGA/RTL/SoC design experience and methodology an asset.
- Familiarity with both Windows and Linux as host operating systems.
- Familiarity with electro-mechanical and optical sensors or lasers is an asset.
- Undergraduate Engineering Degree, community college technical diploma or equivalent experience.
We invite you to take this challenge by forwarding your cover letterand resume.
Reference in Subject Line: Embedded Software Engineer
Job Type: Full-time
- related: 5 years (Required)
- designing software for embedded microprocessors using C/C++: 5 years (Preferred)
- Bachelor's Degree (Preferred)