About Aurora Wireless Networks
Aurora Wireless Networks is dedicated to pushing the boundaries of IoT (Internet of Things) technology through improvements in energy efficiency, wireless range, and reliability. Our MLink wireless radio is transforming the way data is monitored and equipment is controlled remotely across a diverse range of industries and applications.
At the heart of MLink is a sophisticated embedded firmware platform designed to deliver reliable performance across a wide range of operating temperatures, power conditions, and challenging environments. As we continue to expand product capabilities, introduce new features, and optimize existing algorithms, we are looking for a motivated developer to join our team.
The Chance
As an Embedded Software Developer, you will play an active role in the design, development, testing, and integration of firmware for our MLink wireless platform.
We are looking for a motivated and enthusiastic developer to join our team. This is an excellent opportunity for someone early in their career who has a passion for programming, enjoys solving challenging problems, and wants to develop their skills working with real-world embedded systems.
You don't need to know everything coming in. We're looking for someone with a solid programming foundation, strong problem-solving abilities, curiosity, and a willingness to learn. You'll work alongside an experienced team, contributing to the development of our MLink wireless platform while building your knowledge and expertise in embedded software development.
Our firmware is complex and highly structured, with much of its architecture built around finite state machines. This creates interesting engineering challenges and opportunities to develop innovative solutions while maintaining the reliability, efficiency, and stability our customers depend on.
This position is well suited to someone who enjoys tackling challenging problems, thinking critically, writing high-quality code, and seeing their work through from initial design to final testing and implementation.
Working as part of our development team, your responsibilities will include:
Key Responsibilities
- Software Design and Development
- Design, develop, and document new software features and solutions.
- Work within an architecture built around finite state machines and other structured software components.
- Participate in the product development process,
from initial concept and design through implementation and testing.
- Firmware Development and Integration
- Develop and integrate new features into our existing MSP430 embedded firmware platform.
- Work primarily in Embedded C/C++ using the IAR Embedded Workbench development environment.
- Follow established coding standards and participate in code reviews to ensure quality and maintainability.
- Troubleshooting and Problem Solving
- Investigate, diagnose, and resolve software issues in a structured and methodical manner.
- Analyze system behaviour and develop solutions to challenging technical problems.
- Optimize existing software and algorithms to improve overall system performance.
- Software Testing and Validation
- Perform software testing and evaluate the reliability and performance of firmware.
- Identify opportunities to improve software reliability, efficiency, and test coverage.
- Participate in comprehensive software acceptance testing.
- Utilize our automated test fixture, which is capable of running continuous, around-the-clock testing.
- Technical Documentation
- Create, update, and maintain software design documentation.
- Develop and maintain state charts, diagrams, and other technical documentation.
- Ensure software designs and implementations are clearly documented and understandable by other team members.
Qualifications and Skills
We are looking for someone who is genuinely passionate about embedded software development and enjoys the process of building, improving, and troubleshooting software.
The ideal candidate will demonstrate:
- A passion for embedded software: A genuine interest in embedded systems, firmware development, and the interaction between hardware and software. Personal projects and independent experimentation are highly encouraged!
- Strong problem-solving abilities: Enjoys working through challenging problems, developing creative solutions, and optimizing algorithms.
- Attention to quality: Takes pride in producing reliable, effective, well-structured,
and maintainable software.
- Independence and accountability: Able to manage projects and responsibilities with minimal supervision, maintain schedules, and proactively address challenges as they arise.
- Communication and documentation: Able to clearly communicate technical concepts and produce documentation and code that others can readily understand, maintain, and build upon.
- A collaborative mindset: Open to feedback, eager to learn, willing to share knowledge, and comfortable working as part of a team.
Just as importantly, we value someone who brings a positive attitude, a sense of humour, curiosity, and enthusiasm to the workplace. Technical Experience and Assets The following skills and experience are beneficial. Not every item is required, and we are willing to invest in the right candidate.
Core Technical Skills
- Experience with Embedded C/C++ development.
- Familiarity with microcontrollers and embedded systems.
- Experience with the IAR Embedded Workbench development environment is an asset.
- Understanding of common data structures and programming concepts, including:
- Finite state machines
- FIFOs and other queue structures
- Structs, unions, and enums
- Arrays, stacks, and heaps
- Function pointers
Additional Programming Experience
Experience with any of the following technologies is considered an asset:
- Python
- PHP
- JavaScript
- VBA
- C#
- C++/CLI
- Assembly language
- Arduino
- Regular expressions (RegEx)
Additional Software Skills
- Experience with Microsoft Word, Excel, and Visio.
- Ability to create and manage professional technical documentation, custom document styles, complex graphs, and spreadsheet formulas.
Additional Considerations
- Additional consideration will be given to candidates who qualify for the NSERC Experience Award.
- Personal programming projects, hobby electronics, and independent embedded development projects are highly encouraged. We would love to see what you have built!
How to Apply
Interested candidates are invited to submit a cover letter and resume to
[email protected].
Academic transcripts and examples or demonstrations of personal projects are also welcome and encouraged. We are particularly interested in seeing projects that demonstrate your initiative, technical curiosity, and passion for software development.
We look forward to hearing from you!
📌 Junior Embedded Software Architect (Calgary)
🏢 Aurora Wireless Networks
📍 Calgary