5+ years of C/C++ software engineering experience in multi-threaded, real-time embedded systems Experience in the developing of production software for embedded microprocessor-based controls in assembly and C Expert-level programming experience in assembly and C Language Experience with multiple communications media and protocols including, but not limited to, wired, wireless, optic, CAN, BACnet, Modbus, TCP/IP Experience with serial communication like I2C, UART, SPI, and Modbus communication Working experience with various microcontrollers like Renesas, STMicro, Cypress, etc Experience in Secure Boot, X509, TLS, Encrypted File Systems Experience in presenting technical information to groups Experience working successfully with multiple departments such as R&D, marketing, manufacturing, service engineering, suppliers, and customers Familiarity with test-driven design methodologies to develop automated unit and system tests of software Technical knowledge of product design and failure analysis Working knowledge of statistical methods or Design-of-Experiments (DOE) Experience with electronic analysis methodologies and associated instrumentation Proficiency in Microsoft Word, Excel, and PowerPoint Demonstrated ability to work well with others in a team environment High technical aptitude Able to work with cross-functional teams (e.g., product managers, engineers, business teams) and external subject matter experts Passionate about building and owning innovative, customer-facing services/products. Develop software for embedded applications, following team conventions for design and documentation Provide a comprehensive self-review and test of the software Work with systems and product engineers to support the validation of the software in the product application, with a focus on identifying and resolving any software, hardware, or system anomalies Work with controls contract manufacturers, products manufacturing engineering, and service on the implementation and validation of software features to support construction and field support Support the development of tools for PC, handheld, and other devices that could be used for development, testing, manufacturing, service, or other applications Work with cross-functional teams through direct interactions and team meetings in developing and translating new concepts into applications.