Responsibilities: • Controls and Platform Development: Design, maintain, and evolve abstracted control platform to support thermal unit firmware involving PID control loops and device interactions • Requirements analysis: Requirements gathering, use case analysis, device and application prototyping, customer/customer-liaison engagement • Project management: Task estimation, software metrics collection, version control • Full lifecycle software application development: Design, programming, debugging, peer review, unit testing, performance tuning, integration • Documentation: Program commentary • Product testing: Unit testing, bench testing, system integration testing, and field test support • Leadership: Effective team member and/or technical leadership, consistent positive attitude, creativity • Hardware development support: Software/firmware support for hardware development and testing • Other tasks and activities as required by management. Development environment: • Languages: C++, C, Python, Bash Shell • Communication protocols: RS-232/485, Modbus, CANbus, I2C, SPI • Operating systems: embedded Linux and real-time operating systems (FreeRTOS) • Platforms: TI SoC, ARM, x86 • Tools: VS Code and Docker • Version management: GitLab • Build system: BitBake, Yocto, GitLab Pipelines • Test: Device Simulation, HIL • Design: • Object-oriented abstraction, development, and lifecycle • Distributed control architecture and design • Usability, maintainability, and configurability • Manage control requirements, specifications, and documentation • NMP, Redfish, BACnet, Modbus TCP, WireShark • Bare metal firmware experience.