jobapplier

Embedded Software Engineer – Platform & Firmware

pivotalsys

Skills

Required

  • C++
  • assembly language
  • embedded development
  • microcontrollers
  • memory management
  • device trees
  • real-time operating systems
  • RTOS
  • device driver development
  • low-level debugging
  • oscilloscopes
  • logic analyzers
  • JTAG
  • in-circuit emulators

Preferred

  • firmware
  • EtherCAT
  • CAN-based protocol stacks
  • DeviceNet
  • CANopen
  • Embedded Linux platform
  • init/system services
  • userspace daemons
  • kernel or driver development
  • Python

Embedded Software Engineer – Platform & Firmware Overview: The Embedded Software Engineer (Platform & Firmware) is a full-time, on-site role based in either Fremont, CA or Reno, NV. This role designs, develops, and tests software that interfaces directly with hardware, such as microcontrollers and processors in Pivotal’s flow control products, including gas flow and ratio controllers. This role focuses on foundational software development, including drivers, bootloaders, and the embedded platform, using C, C++, and assembly to manage system resources and optimize device performance. It works closely with our Firmware Engineers, who build product-level control and communication firmware on top of this platform. You will need a deep understanding of computer architecture, hardware-software integration, and low-level debugging. As a core member of our software engineering team, you will collaborate closely with embedded software and hardware engineers to deliver high-performance, reliable systems.

Responsibilities

  • Develop Low-Level Software: Write and maintain firmware, bootloaders, and device drivers for embedded hardware platforms.
  • Ensure code efficiency and performance on resource-constrained systems (limited memory, CPU, and power).
  • Collaborate with hardware teams to validate and troubleshoot system-level issues.
  • Use tools such as oscilloscopes, logic analyzers, and in-circuit debuggers to identify and resolve issues at the hardware/software boundary.
  • Implement low-level system features such as power management, memory allocation, and communication protocols (SPI, I2C, UART, etc.).
  • Develop and maintain device trees, kernel configuration and drivers, init and system services, and userspace daemons where applicable.
  • Maintain toolchains, build systems, and automated builds for embedded targets, and support secure firmware update mechanisms.

Requirements

  • Proficiency in C, C++, and assembly language for embedded development.
  • Strong understanding of microcontrollers, processors, and memory management.
  • Experience with device trees, real-time operating systems (RTOS), and device driver development.
  • Skilled in using low-level debugging tools such as oscilloscopes, logic analyzers, JTAG, and in-circuit emulators.
  • Excellent analytical and problem-solving skills to address complex hardware/software integration issues.
  • Bachelor’s or Master’s degree in Computer Engineering, Electrical Engineering, or Computer Science.

Preferred

  • Experience with EtherCAT technology.
  • Experience with CAN-based protocol stacks such as DeviceNet and CANopen.
  • Embedded Linux platform experience, including device trees, init/system services, userspace daemons, and kernel or driver development.
  • Python utility development experience for log parsing and packet/trace inspection.
  • PLC familiarity (software and hardware).
  • Experience in semiconductor, industrial automation, or other high-tech manufacturing environments.
  • Experience with Copy Exactly! / Copy Exact! and related design replication methodologies.
  • Familiarity with sensors, instrumentation, and control devices used in industrial equipment.