The successful candidate will be responsible for designing, developing, and testing the low-level software (firmware) that controls the functionality of electronic hardware devices, like embedded systems and computer peripherals, requiring a deep understanding of hardware architecture and proficiency in programming languages like C/C++ to create code that interacts directly with the hardware components, often utilizing real-time operating systems (RTOS) to ensure timely system responses; they collaborate with hardware engineers to ensure seamless integration and troubleshoot issues throughout the product development cycle.
Essential Job Duties & Responsibilities:- Develop firmware architectures and algorithms to meet product requirements, considering hardware constraints and performance optimization.
- Write clean, efficient, and well-documented firmware code using embedded C/C++ programming languages, adhering to coding standards and best practices.
- Implement video technologies using protocols including FFmpeg, GStreamer, H.264/H.265, RTSP, and WebRTC.
- Understand and determine best fit strategies for incorporation of OpenCV, PyTorch, TensorFlow, YOLO, and/or TensorRT algorithms
- Understand and utilize various hardware components like microcontrollers, memory, peripherals, and communication interfaces to interact with them through firmware.
- Work with RTOS to manage system tasks with precise timing and priority levels.
- Conduct thorough unit integration, and system-level testing to identify and resolve firmware defects, utilizing debugging tools and techniques.
- Work closely with hardware engineers to ensure smooth integration between firmware and hardware components, addressing design challenges and providing feedback.
- Create detailed technical documentation for firmware design, implementation, and testing procedures.
- Support existing firmware by implementing bug fixes, feature enhancements, and updates to address customer needs.
- May include travel to the field and/or trade shows.
- Perform product evaluations to determine if engineering standards are met.
- Flexibility to perform other duties and assignments as required
Position Requirements:- Bachelor's degree in computer science or equivalent from an accredited university.
- 5-7 years of previous experience in a similar role.
- Demonstrated use of Python, Roboflow, NodeJS, Figma or similar tools for rapid prototyping.
- Familiarity with creating and modifying YAML for configurations and collaboration.
- Strong proficiency in C/C++ programming languages with a focus on embedded systems.
- Experience with developing containerized analytics modules using Docker.
- Fluency in switching between Windows, Linux, and embedded environments and toolkits.
- Deep knowledge of microcontroller architectures, memory management, peripherals, and communication protocols.
- Experience with popular RTOS like FreeRTOS, Zephyr, or similar.
- Familiarity with IDEs, debuggers, emulators, and other development tools for embedded systems.
- Experience with unit testing, integration testing, and system-level validation methodologies.
- Excellent analytical and debugging skills to identify and troubleshoot complex firmware issues.
- Ability to effectively communicate technical concepts to both technical and non-technical stakeholders.
Wage Range: $68,731 - $98,187 Plus Bonus
Benefits of EmploymentIn addition to excellent career growth opportunities, Federal Signal Corporation offers a wide array of benefits including: annual bonus potential, insurance (life, medical, dental, vision), paid holidays, paid vacation, 401(k) with matching contributions and tuition reimbursement. We provide our employees with a smoke-free, drug-free workplace.