About The Company
At Corinex, we are driving the future of energy with cutting-edge Broadband over Power Line (BPL) technology. As a global leader in smart grid solutions, we enable utilities to enhance grid visibility, flexibility, and decarbonization, supporting the seamless integration of renewable energy, electric vehicles, and heat pumps into the power grid.
Headquartered in Vancouver, Canada, Corinex is the market leader in Europe, particularly in Spain, where our BPL solutions are deployed by major DSOs (Distribution System Operators) to improve grid operations. With successful implementations across global markets, our technologies accelerate the transition to a more sustainable, decentralized, and efficient energy infrastructure. Recognized as a key contributor to industry standards and a 2024 Deloitte Technology Fast 50 winner, Corinex is shaping the future of smart energy.
About The Job
Corinex is seeking a dynamic and creative Firmware Engineer to join our team in developing next-generation smart grid communication devices. In this role, you will play a key part in the full product lifecyclefrom system architecture and design through to development, testing, and optimization. You will collaborate closely with hardware, product management, and testing teams to deliver reliable, high-performance embedded solutions for our cutting-edge energy technology.
The ideal candidate has strong expertise in embedded systems, particularly in C/C++, Bash, and Python within Embedded Linux environments. You will be expected to translate complex requirements into scalable firmware components, contribute to system-level design discussions, and drive continuous improvements in quality and efficiency. This role is suited for a hands-on engineer with a passion for smart infrastructure and a desire to help modernize global energy systems.
Corinex is hiring range for this role is CAD $80,000 - $120,000 annually, commensurate with your education and job-related knowledge, skills, and experience.
Duties & Responsibilities:
- Participate in the development of next-generation smart grid communication devices and equipment
- Contribute to system design discussions and provide comprehensive solutions for new and existing products.
- Translate open-ended user requirements into clear and specific product functional components.
- Design and develop communication and control software in C/C++, Bash, and Python for embedded environments, including Embedded Linux.
- Collaborate with hardware and product test teams to ensure seamless integration and testing of end products.
- Optimize firmware for performance, memory usage, reliability, and power efficiency.
- Conduct code reviews, debugging, and testing to ensure code quality and stability.
- Participate in system architecture design and provide technical leadership in embedded systems.
- Drive continuous improvement initiatives and contribute to firmware development best practices.
- Work closely with product management to understand requirements and translate them into functional firmware solutions.
- Stay up to date with emerging technologies and trends in embedded systems and firmware development.
Qualifications:
- Bachelors degree in Computer Engineering, Computer Science, Electrical Engineering, Systems Engineering, or a related field.
- Minimum 3 years of relevant work experience in embedded programming languages such as C/C++.
- Experience developing firmware for embedded devices (e.g., ARM microcontrollers, RTOS), with knowledge of IPv6, SNMPv3, TLS, and network security.
- Strong understanding of wired communication protocols (SPI, I2C, UART, etc.).
- Experience with TCP/IP protocols, RFCs, and security protocols.
- Proven experience solving real-time embedded issues, including threading, optimization, memory management, and interrupt handling.
- Hands-on experience with networking protocols such as TCP/IP, DNS, DHCP, and SSL.
- Experience with internet peering and inter-domain networking.
- Familiarity with network modeling and programming using YANG, OpenConfig, and NETCONF.
- Knowledge of network security design, system performance characterization, and testing.
- Experience with data flow and telemetry design, deployment, and operations.
- Solid understanding of Linux and application development for embedded Linux systems.
- Proficient with standard embedded debugging tools (e.g., terminal programs, GDB, JTAG debuggers).
- Proficiency with code version control tools and development practices (Git, SVN, pull requests, etc.).
- Strong experience using Git-based revision control systems.