Think back-was there ever an elevator ride that made you go, "Whoa, this is nice"?
Maybe it was an elegant glass lift or a minimalist stainless-steel rocket.
It might have shaped your first impression or left a lasting memory of a building.
Chances are, the details made the difference; with an aesthetic interior and stylish, well-built buttons and fixtures. Immersive digital technology like visual displays may have turned a simple ride into a memorable experience as well. You may not have noticed these details then, but once you've worked with us, you'll start noticing them everywhere you go.
Our New Intermediate Embedded Firmware Designer:
We're looking for an
Intermediate Embedded Firmware Designer who enjoys developing embedded applications for Linux-based communication devices. You'll design, develop, and maintain embedded software applications for Linux-based communication and IoT products while collaborating closely with the Embedded Linux Engineer on system integration and product development. The role focuses on embedded application development, hardware integration, networking, and user interfaces for custom embedded devices.
The ideal candidate is self-driven and capable of independently delivering assigned development work while exercising sound technical judgment and seeking guidance on complex architectural or system-level decisions. They have a systematic problem-solving approach, strong troubleshooting skills, excellent communication skills, and enjoy learning new technologies. Experience with microcontroller firmware development is considered an asset but is not required.
What you will do in the role:- Design, develop, and maintain embedded applications for Linux-based communication devices.
- Write clean, modular, reusable, testable, and maintainable code that follows software engineering best practices.
- Develop software using C++, Go, Python, and other appropriate technologies
- Develop applications that interact with embedded hardware, peripherals, and communication interfaces.
- Develop graphical user interfaces using Qt, LVGL, and related frameworks.
- Implement software that interfaces with embedded hardware, peripherals, and communication systems.
- Develop communication software utilizing TCP/IP, UDP, Ethernet, USB, UART, SPI, I6, and other embedded interfaces as required.
- Collaborate with the Embedded Linux Engineer and other engineering team members throughout product development, validation, and release activities.
- Troubleshoot and resolve software, networking, and hardware integration issues.
- Participate in software architecture discussions, technical design reviews, and peer code reviews.
- Create and maintain technical documentation, including software design documentation and implementation details.
- Stay current with emerging technologies, tools, and industry best practices.
- Work with cross-functional engineering teams to deliver high-quality embedded products.
- Other duties as assigned.
- Able to lift up to 15 lbs; may work in hot areas 5%, noise 0%.
- Ensure adherence to Health and Safety requirements and actively participate in 5S activities within the work area
Measures of Success:- Feature Delivery: 60;90% of assigned firmware features and project milestones delivered on schedule.
- Code Quality: 60;90% peer-review approval rate with minimal rework and adherence to established coding standards.
- Product Quality: Low defect escape rate, with minimal software issues identified during validation or after release.
- Issue Resolution: Root Cause Analysis completed for 100% of the issues.
- Documentation & Maintainability: Technical documentation and software design records maintained accurately and kept current for all released features.
- Collaboration & Continuous Improvement: Active contribution to code reviews, architecture discussions, and engineering best practices that improve software quality and team effectiveness.
What you bring to the role:- Bachelor's degree in Computer Engineering, Software Engineering, Computer Science, Electrical Engineering, or equivalent practical experience.
- 3-5 years of professional experience developing software for embedded systems.
- Demonstrated experience troubleshooting and debugging embedded software and hardware integration issues.
- Excellent written and verbal communication skills.
- Strong proficiency in C++.
- Experience with Go.
- Experience developing applications using Qt.
- Experience working with Embedded Linux devices.
- Experience using Git and collaborative software development.
- Good understanding of networking fundamentals including TCP/IP, UDP, Ethernet, and TLS.
- Experience interfacing with embedded hardware and peripherals.
- Ability to read and understand electronic schematics.
- Clear Background Checks - Criminal (required)
- Eligible to work in Canada
Preferred:- Experience with Python.
- Experience with LVGL.
- Experience with SIP, VoIP, WebRTC, or real-time communication systems.
- Experience with ARM-based embedded processors.
- Experience developing firmware for microcontrollers.
- Familiarity with embedded communication interfaces such as UART, SPI, I6, USB, CAN, GPIO, PWM, ADC/DAC, timers, interrupts, and DMA.
- Familiarity with Rust.
This position is located at 6635 Ordan Drive in Mississauga, ON. Hours are typically 8:00am to 4:30pm.Pay: $100,000 - $120,000This is a Full-time, Salary position.
This posting has one (1) vacancy.
Want to see what it's like working at MAD?
Visit us on FacebookDue to the number of responses, only qualified candidates who meet the requirements of the job will be selected for an interview.