Embedded Software Engineer
About the role
HiViz Lighting Inc is dedicated to enhancing the safety and effectiveness of first responders through innovative technology. Our Engineering Team develops smart, industry-leading solutions for emergency vehicle lighting and smart systems.
Responsibilities
- Create and maintain reusable firmware libraries for data bus interfaces, circuit control engines, bootloaders, and other core technology platforms
- Develop and maintain SDK libraries that simplify testing, configuration, and control of HiViz firmware systems
- Design embedded systems that efficiently utilize data structures like queues, buffers, state machines, schedulers, and protocol-handling architectures
- Support the engineering team with product architecture, design reviews, feature prioritization, and roadmap planning
- Ensure HiViz technology platforms align with product offerings, development timelines, and long-term feature needs
- Work with internal teams, industry partners, and contractors to integrate HiViz firmware libraries and SDKs into various products and toolsets
- Support product integration across CAN and LIN data buses, BLE interfaces, and SPI and I2C peripherals
- Conduct code reviews, manage builds, provide OTA update support, and assist with the management of digital company intellectual property
- Participate in sprint planning and contribute to near-term and long-term product and feature roadmap proposals
- Drive test, validation, performance optimization, and release processes for new products, features, and core technologies
Requirements
Strong embedded firmware development experience, particularly in C language and C99 or newer
Experience with Python 3.9 or newer for toolset development, testing, automation, or support workflows
Strong algorithm and data structure fundamentals, capable of making practical tradeoffs in embedded systems
Experience with queues, circular buffers, ring buffers, schedulers, state machines, routing logic, protocol stacks, or similar embedded architectures
Ability to evaluate time complexity, memory usage, CPU utilization, latency, and deterministic execution when designing firmware systems
Experience improving performance, reducing memory footprint, or optimizing embedded systems for reliability and responsiveness
Ability to create reusable, scalable firmware and SDK libraries that support multiple products
Strong testing, debugging, and validation skills for embedded systems and related toolsets
Comfortable working in Linux terminal environments and using command line tools
Hands-on experience with SPI, I2C, UART, CAN, LIN, BLE, and related embedded communication protocols
Familiarity with CAN J1939, LIN J2602, Bluetooth GAP and GATT, and peripheral integration
Understanding of PWM control of LEDs and automotive 12V electrical systems
Clear communicator who can document technical systems, support cross-functional teams, and help partners integrate HiViz technology successfully
Collaborative engineering mindset with the ability to connect product needs, architecture decisions, and implementation details
Qualifications
Experience with RTOS environments such as FreeRTOS, Zephyr, VxWorks, QNX, or ThreadX
Experience with task scheduling, priority queues, inter-task communication, synchronization, or deterministic real-time behavior
Experience developing networking stacks, protocol implementations, bootloaders, robotics systems, automotive software, telecommunications systems, or other embedded systems where algorithmic thinking matters
Coursework, project experience, or professional experience in data structures, algorithms, operating systems, computer architecture, real-time systems, or similar computer science fundamentals
Skills
Strong embedded firmware development experience, especially in C language, C99 or newer
Experience with Python 3.9 or newer for toolset development, testing, automation, or support workflows
Strong algorithm and data structure fundamentals, with the ability to make practical tradeoffs in real-time and resource-constrained embedded systems
Experience designing or working with queues, circular buffers, ring buffers, schedulers, state machines, routing logic, protocol stacks, or similar embedded architectures
Ability to evaluate time complexity, memory usage, CPU utilization, latency, and deterministic execution when designing firmware systems
Experience improving performance, reducing memory footprint, or optimizing embedded systems for reliability and responsiveness
Ability to create reusable, scalable firmware and SDK libraries that support multiple products
Strong testing, debugging, and validation skills for embedded systems and related toolsets
Comfort working in Linux terminal environments and using command line tools
Hands-on experience with SPI, I2C, UART, CAN, LIN, BLE, and related embedded communication protocols
Familiarity with CAN J1939, LIN J2602, Bluetooth GAP and GATT, and peripheral integration
Understanding of PWM control of LEDs and automotive 12V electrical systems
Clear communicator who can document technical systems, support cross-functional teams, and help partners integrate HiViz technology successfully
Collaborative engineering mindset with the ability to connect product needs, architecture decisions, and implementation details
Benefits
Competitive package including health insurance, paid time off, and 401k match