Concord, Ontario
Embedded Software Engineer
Embedded Software Developer
Concord, ON / Hybrid mode
Project Background:
Be part of the infrastructure team that is taking care of the boards, the switchers, routers, and be responsible for writing software, design documents, participating in developing new products, verifying the hardware and software designs, as well as fixing bugs and doing some troubleshooting
The team is in charge of developing next generation of routers
Skills and technical knowledge required:
The ideal candidate will be familiar with or have experience in many of the following areas:
• Strong skills in C/C++/GNU make/GDB/JTAG debugging
• Strong/Moderate Experience with WindRiver, Yocto/Bitbake
• Experienced in developing Linux kernel drivers, device tree, or kernel networking stack
• Experience with Layer 2 and Layer 3 network stack development
• Experience reading and working with schematic/circuit diagrams as well as vendor-provided technical reference manuals and datasheets.
• Experience with IPC/multithreading/real-time systems
• Strong experience in developing, modifying and integrating open source projects (OSS)
• Working engineering skills: self-guided, methodological and analytical approach to debugging complex low-level hardware interface issues in collaboration with hardware engineers.
• Work within the process and procedures defined by the organization: reporting/recording bugs in tool, participating in daily stand-ups, planning and retrospective sessions, updating work items regularly in DevOps.
Experience in any of the following areas would be beneficial:
• Ethernet MAC/PHY, Wifi, LTE, and/or PoE drivers and low-level stack.
• Realtime preemptive Linux systems development
• Multi-core ARM64 systems
• Bootloaders
• Cryptography
• Time Synchronization
• Linux security (VPN, Trust Architecture, PKI)
• TCP/UDP/IP and socket programming
• Network device management over HTTPS, SNMP or NETCONF
• Linux for embedded devices such as network firewalls and routing.
• Software source control tools such as Git, Subversion, etc.
• Experience in device configuration management.
Qualifications
• 10+ years of experience developing software using C / C++ and Linux
• Has an undergraduate or graduate degree in Computer Science or Engineering, Mathematics or related disciplines