Back to results

Embedded Systems Engineer

  • Richmond, BC, Canada

Expected Salary: CA$87,360 per year. · Contract

Applications open in a new tab.

Job details

Pay
Expected Salary: CA$87,360 per year.
Job type
Contract
Apply by
Posting language
English
Posted

Original job description

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.

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.

Equal Employment Opportunity

We are an equal opportunity employer committed to fostering an inclusive, diverse, and respectful workplace, and we welcome applications from all qualified individuals.

We are committed to providing reasonable accommodations throughout the recruitment, selection, and employment process. If you require accommodation at any stage of the hiring process, please contact hr@foreseeson.com so that we can work with you to meet your needs.

Work Arrangement: In-person, Richmond, BC​

Employment Type: 1-year contract, with the potential for extension or conversion to a permanent, full-time position.

Expected Salary: CA$87,360 per year. The final salary will be determined based on the successful candidate’s qualifications, relevant experience, and overall fit for the role.

*We would like to thank all applicants in advance for your interest in this position. Only candidates selected for an interview will be contacted.

More about this job

Responsibilities

Develop, test, and maintain embedded firmware for the energy storage system, including battery monitoring, control, device communications, fault handling, and coordination with power electronics. Integrate monitoring and connectivity features, validate firmware through testing and hardware debugging, and collaborate with multidisciplinary engineering teams on system integration and documentation.

Requirements

Requires a bachelor's degree in a relevant engineering or computer science discipline and at least three years of professional embedded firmware development experience. Candidates should have strong embedded C/C++ skills, experience with microcontrollers and communication protocols, familiarity with Linux and RTOS, and the ability to debug hardware–firmware integration issues.

Skills

  • Embedded C/C++
  • Python
  • Microcontroller Firmware
  • STM32
  • CAN/CAN FD
  • RS-485
  • UART
  • I²C
  • SPI
  • Linux
  • Real-Time Operating Systems
  • Battery Management Systems
  • Firmware Debugging
  • Hardware Integration
  • Git
  • Technical Documentation

Visa sponsorship

Not detected in the job text

Categories

  • Engineering
  • Technology
  • Software
  • Energy
  • Manufacturing

Keywords

  • Embedded Systems
  • Energy Storage System
  • Embedded Firmware
  • C
  • C++
  • Python
  • Microcontrollers
  • STM32
  • Texas Instruments
  • NXP
  • CAN
  • CAN FD
  • RS-485
  • UART
  • I²C
  • SPI
  • Linux
  • RTOS
  • Raspberry Pi
  • BeagleBone
  • Battery Management Systems
  • Battery SOC/SOH
  • Power Electronics
  • Hardware-in-the-Loop Testing
  • Git
  • Make
  • CMake
  • Yocto
  • MQTT
  • Firmware Updates

Report this job