Embedded Systems Engineer
Richmond,
Canada
About the Employer
Foreseeson Technology Inc. is a multifaceted, award-winning technology innovator providing electronic manufacturing, IT security distribution, electric vehicle charging equipment, and Intelligent software platforms for EV Charger and Energy Management System. Foreseeson has experienced over 25 years of continuous growth through innovation and we are also known for pioneering green technology to lower our carbon footprint through electric vehicle charging partnerships with municipalities and corporations.
About the Project
Foreseeson Technology Inc. is developing a modular Energy Storage System (ESS) using high-voltage battery packs. The system combines battery management, power conversion, embedded control, charging and discharging coordination, and local and cloud-connected monitoring.
The Embedded Systems Engineer will develop the firmware and embedded software that enables communication, control, monitoring, and coordination across the ESS. This role will work closely with electrical and power electronics engineers to integrate all system components.
Contract 1 year, with potential for contract extension or permanent/full-time
Expected pay for this position is CA$87, 360 per year (Final salary will be determined based on the candidate’s qualifications, relevant experience, and alignment with the role)
In-person, Richmond, BC
Core accountabilities and Responsibilities
- Embedded Firmware Development
- • Design, develop, test, and maintain embedded firmware using C and C++ for microcontroller-based ESS controllers and supporting hardware.
- • Implement reliable control and monitoring functions for battery packs, DC-DC converters, charging equipment, inverter interfaces, and system-level control devices.
- • Develop firmware for battery status acquisition, charge and discharge sequencing, contactor and pre-charge control interfaces, fault detection, and system-state management, subject to hardware and safety requirements.
- • Implement watchdogs, timeouts, fault-state handling, diagnostic reporting, and controlled recovery strategies.
- • Develop modular, maintainable firmware with appropriate code documentation, configuration management, and testing practices.
- Device Communications
- • Implement and troubleshoot communication interfaces, including CAN/CAN FD where applicable, RS-485, UART, I²C, and SPI.
- • Integrate communication with existing battery controllers using verified protocol documentation and bench testing.
- • Develop and maintain communication drivers, message parsers, device status interfaces, and diagnostic functions.
- • Implement data acquisition for battery voltage, current, temperature, SOC, SOH, alarms, and fault codes where these parameters are available through supported interfaces.
- • Diagnose communication failures, timing issues, bus errors, signal-interface problems, and interoperability challenges across multiple battery packs and power electronics devices.
- System Controller Integration
- • Support the implementation of protection interlocks, fault escalation, controlled shutdown, and emergency-stop interfaces in accordance with the system safety architecture.
- • Integrate system-level commands and status feedback for DC-DC converters, charging and power distribution modules, and inverter interfaces.
- • Support the implementation of control logic for battery utilization, energy-flow coordination, and operating modes.
- System Monitoring and Connectivity
- • Develop embedded data interfaces for local monitoring, remote diagnostics, and the ESS dashboard and cloud platform.
- • Integrate embedded controllers and single-board computers such as Raspberry Pi, BeagleBone, or equivalent platforms where appropriate.
- • Support communication between embedded devices, the system controller, and supervisory monitoring software using suitable protocols or other defined interfaces.
- • Implement reliable telemetry, event logging, timestamping, device-health monitoring, and diagnostic data collection.
- • Support secure device communication, authentication mechanisms, access control interfaces, and firmware update procedures as required by the system architecture.
- Firmware Testing and Validation
- • Develop unit tests, integration tests, hardware-in-the-loop tests, and test utilities as appropriate for the target platform.
- • Use hardware debuggers, oscilloscopes, logic analyzers, CAN analyzers, and other diagnostic equipment to identify and resolve firmware and interface issues.
- • Validate firmware behaviour under normal operation, communication loss, sensor faults, abnormal operating conditions, and system shutdown scenarios.
- • Work with the electrical and power electronics teams to troubleshoot hardware–firmware integration problems.
- • Maintain source control using Git or equivalent tools, and document firmware versions, changes, test results, and known limitations.
- • Participate in technical reviews, requirements definition, system integration, prototype testing, and preparation of engineering documentation.
Requirements and Qualifications
- • Bachelor's degree in Electrical Engineering, Computer Engineering, Computer Science, or a closely related discipline.
- • At least three years of professional experience in embedded firmware development.
- • Strong proficiency in embedded C/C++, and/or python programming.
- • Hands-on experience with microcontroller platforms such as STM32, Texas Instruments, NXP, or equivalent.
- • Experience using firmware debugging tools, hardware debuggers, and embedded development environments.
- • Practical experience with CAN, RS-485, UART, I²C, and SPI communication protocols.
- • Experience programming or integrating single-board computers, such as Raspberry Pi, BeagleBone, or equivalent platforms.
- • Working knowledge of Linux-based systems and real-time operating systems (RTOS).
- • Ability to read electrical schematics and work closely with hardware and power electronics engineers.
- • Strong debugging, analytical, and problem-solving skills.
- • Ability to write clear technical documentation and work effectively in a multidisciplinary R&D team.
Preferred Qualifications
- • Experience developing firmware for battery management systems, energy storage, battery charging, power electronics, or industrial control systems.
- • Experience developing and testing software for safety-relevant or safety-critical applications.
- • Familiarity with functional safety principles, fault handling, watchdogs, and safe-state design in embedded systems.
- • Experience with bootloaders, firmware updates, over-the-air (OTA) update mechanisms, and firmware version management.
- • Familiarity with Git, automated testing, continuous integration, and software build systems such as Make or CMake.
- • Experience with Yocto or other embedded Linux build and deployment environments.
- • Experience with MQTT, cloud-connected IoT devices, telemetry, or remote diagnostic systems.
- • Familiarity with battery SOC/SOH monitoring data, battery communication, and multi-device control.
What We Offer
Each employee has a chance to see the impact of his work.
You can make a real contribution to the success of the company.
Several activities are often organized all over the year, such as weekly
sports sessions, team building events, monthly drink, and much more
What We Offer
Each employee has a chance to see the impact of his work.
You can make a real contribution to the success of the company.
Several activities are often organized all over the year, such as weekly
sports sessions, team building events, monthly drink, and much more