C++ Software Engineer

Pelco Products IncBoise, ID
Onsite

About The Position

Pelco Solutions is seeking an Embedded C++ Software Engineer whose primary strength is high-quality C++ software development for embedded and real-time systems. This role is intended for an engineer who can design, implement, review, debug, and maintain production-grade C++ firmware and embedded software. Hardware, electrical engineering, board bring-up, and manufacturing support experience are valuable, but the main hiring priority is strong C++ capability, sound software design judgment, and the ability to produce maintainable, testable code. The C++ software engineer will work on embedded product platforms that may include microcontrollers, RTOS-based firmware, Embedded Linux, Yocto-based images, device communication protocols, firmware update mechanisms, diagnostics, and cloud- or network-connected product features. The role requires close collaboration with firmware, hardware, manufacturing, quality, and product teams.

Requirements

  • Bachelor’s degree in computer engineering, Computer Science, Electrical Engineering, or a related technical field, or equivalent practical embedded software experience.
  • Professional experience developing production embedded software in C++.
  • Strong understanding of modern C++ and practical embedded C++ constraints, including memory management, object lifetime, compile-time configuration, static allocation, embedded-safe abstractions, and performance tradeoffs.
  • Experience designing maintainable software architecture for embedded systems rather than only writing isolated low-level code.
  • Experience with microcontrollers, embedded processors, or resource-constrained computing platforms.
  • Experience with RTOS and/or bare-metal firmware concepts, including interrupts, timing, concurrency, and peripheral interaction.
  • Ability to debug complex firmware issues using source-level debugging, logs, hardware tools, and systematic root-cause analysis.
  • Experience using Git or similar version control systems and participating in structured code reviews.
  • Clear written and verbal communication skills, including the ability to document technical decisions and explain tradeoffs to cross-functional teams.
  • Object ownership, RAII, copy/move semantics, const-correctness, references vs. pointers, templates, virtual dispatch tradeoffs, and API design.
  • Embedded-safe use of the C++ standard library and understanding where dynamic allocation, exceptions, RTTI, threads, or heavy abstractions may be inappropriate.
  • Designing a protocol parser, state machine, driver abstraction, message queue, command handler, or hardware abstraction layer in a clean and testable way.
  • Finding bugs related to lifetime, buffer handling, integer conversion, race conditions, volatile/register access, interrupt interaction, or endian/packing issues.
  • Writing code that is readable, testable, robust, and maintainable over the life of a product

Nice To Haves

  • Experience with Yocto Project, Embedded Linux, BSP customization, kernel configuration, device trees, system d, U-Boot, or similar boot and platform technologies.
  • Experience with C++17 or later in embedded environments.
  • Experience with RTOS platforms such as FreeRTOS, Zephyr, ThreadX, VxWorks, QNX, or equivalent real-time operating systems.
  • Experience implementing or maintaining protocol stacks, device drivers, firmware update systems, bootloaders, telemetry systems, or secure communication layers.
  • Experience with networked or IoT devices, including TCP/IP, UDP, MQTT, TLS, certificate handling, provisioning, cloud connectivity, or AWS IoT-style device workflows.
  • Experience with CI/CD for embedded software, cross-compilers, CMake, Make, Ninja, Conan/vcpkg, static analysis, sanitizers, clang-tidy, unit testing, or hardware-in-the-loop testing.
  • Familiarity with cybersecurity practices for embedded products, including secure boot, signed firmware, encryption, authentication, secure storage, and vulnerability-aware design.
  • Familiarity with electronics lab tools, schematics, board bring-up, sensors, power systems, EMC/EMI concerns, and manufacturing test processes.
  • Experience in ISO 9001, regulated product development, safety-sensitive systems, or long-lifecycle industrial products.

Responsibilities

  • Design, develop, debug, and maintain embedded software primarily in modern C++ with appropriate use of C where required by platform constraints.
  • Build modular, maintainable firmware architecture, including drivers, services, state machines, communication layers, diagnostics, and application logic.
  • Apply strong C++ fundamentals, including object lifetime, RAII, templates where appropriate, const-correctness, memory ownership, error handling, concurrency, and compile-time/runtime tradeoffs.
  • Write code suitable for resource-constrained, real-time, and safety-sensitive embedded environments.
  • Participate in code reviews and help improve coding standards, architecture guidelines, and long-term maintainability.
  • Develop unit tests, integration tests, simulation/mocking layers, hardware-in-the-loop tests, and automated regression checks where practical.
  • Be available as required by customer demand to work additional time (overtime) throughout the year.
  • Perform other related duties as assigned by management.
  • Consistent, reliable attendance and punctuality at assigned work location.
  • Develop and maintain firmware for bare-metal and RTOS-based systems, including task scheduling, synchronization, timing, interrupts, queues, timers, and inter-task communication.
  • Work with Embedded Linux platforms, including Yocto-based builds, board support packages, kernel/user-space interfaces, device trees, and system services when applicable.
  • Integrate bootloaders, firmware update mechanisms, secure update flows, memory layout, and device provisioning workflows.
  • Troubleshoot real-time issues such as race conditions, timing jitter, deadlocks, memory corruption, watchdog resets, and resource exhaustion.
  • Implement, integrate, and debug embedded communication protocols such as UART, SPI, I2C, CAN, USB, RS-485, Modbus-style protocols, and custom binary protocols.
  • Work with network protocols and connected-device features such as TCP/IP, UDP, MQTT or similar messaging patterns, TLS/security concepts, and device-to-cloud communication where applicable.
  • Support wireless or field communication modules such as Bluetooth, Wi-Fi, cellular, or other industrial/IoT communication technologies as needed.
  • Design protocol parsers, framing, retry logic, checksums/CRC, message validation, telemetry, command handling, and robust error recovery.
  • Debug firmware using JTAG/SWD, GDB, oscilloscopes, logic analyzers, protocol analyzers, logs, traces, and automated diagnostics.
  • Analyze field failures, RMA data, manufacturing issues, and customer-reported behavior to identify root causes and implement corrective actions.
  • Collaborate with hardware engineers on board for bring-up and firmware-hardware integration, including GPIO, ADC/DAC, timers, interrupts, sensors, communication modules, and power states.
  • Support manufacturing test firmware, production diagnostics, calibration utilities, and test fixture support.
  • Maintain a safe, clean, and organized work environment.
  • Ensure compliance with all safety, environmental, and company procedures, including the Pelco Solutions Handbook and SDS requirements.
  • Promote safety awareness and enforce all workplace safety rules and PPE requirements.

Benefits

  • Product ownership
  • Training
  • Ongoing support responsibilities
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service