Job title: Embedded Software Developer
Department: Product Development
Location: Calgary office
Supervisor: Engineering Director
This role is responsible for designing, developing, and testing embedded system software for telecommunications and Industrial IOT products that are deployed in remote field installations with a high uptime requirement. These products are a core part of the voice and data networking services, and IOT solutions that NI offers.
Active participation in defining the hardware interfaces and requirements and interfaces is expected, and you will have the opportunity to work with product management and customers to shape our products.
Duties and responsibilities:
- Design, prototype, implement, test and document embedded systems firmware
- Implement protocols for communication between embedded systems and central web systems for data collection.
- Work with QA to develop and execute test cases for system design verification
- Develop firmware, scripts and applications to automate hardware testing
- Work with TechDocs to create user and commissioning documentation
- Work with Product Management (and Sales Engineers) to define the product requirements and ensure customer needs are being met.
- Estimate timelines and provide risk assessments for planning and tracking work. Provide feedback for continuous improvement of processes.
- Provide Tier-3 support to customers on a rotational basis and work with Technical Support to improve their knowledge and tools for troubleshooting.
Required Experience & Skills
- Degree in Electrical or Computer Engineering or equivalent discipline
- 5+ years’ experience in embedded systems software design
- Proven experience with Linux and Android embedded systems, and writing device drivers for these OSes.
- Proven programming experience in C/C++, Assembler, Lua
- Experience with digital signal processing
- Experience with TCP/IP communications incl. MQTT
Nice to have
- Digital board level Hardware design experience
- Experience with embedded devices that run 24/7 in a remote industrial setting
- Experience with hardware test automation with a background in scripting
- Familiar with hardware emulators, and simulators
- Familiarity with I2C, SPI, UART and USB interfaces
- Familiarity with interfacing to PLC systems
- Experience with battery powered embedded systems
- Familiarity with a leading IoT platforms and accompanying ecosystem (Azure IoT, AWS IoT, AWS Kinesys Video, Cumulocity, Thingworx)
- Experience working with Zephyr RTOS and DeviceOS
- Experience with wireless communications over LoRaWAN
- Familiarity with video streaming development
- Customer focus
- Complex problem solving: Systems-level approach to hardware
- Creative, collaborative, and open-minded
- Strong communicator
- Passion and pride in your work
- Ability to work independently
This is a full-time position in a professional office environment with flexible work hours. Occasional after-hours work will be necessary to provide tier-3 technical customer support or for a meeting with an overseas team member. Occasional travel is expected (including internationally) for projects or conferences. A valid passport without restrictions.
Sitting and using a computer for extended periods of time.
Disclaimer Statement: This job description lists the essential functions of the position and is not intended to include every job duty and responsibility specific to a position. An employee may be required to perform other related duties not listed above provided that such duties are characteristic of that classification.
Job Type: Full-time
- Casual dress
- Dental care
- Disability insurance
- Employee assistance program
- Extended health care
- Life insurance
- On-site parking
- Paid time off
- RRSP match
- Vision care
Flexible Language Requirement:
- 8 hour shift
- Day shift
- Monday to Friday
Ability to commute/relocate:
- Calgary, AB: reliably commute or plan to relocate before starting work (required)
- Bachelor's Degree (required)
- embedded systems software design: 5 years (required)
Work Location: Hybrid remote in Calgary, AB