We are a small company in Chicago, Illinois (USA) and seeking a highly skilled and experienced Embedded Software Engineer to join our company.
This role is critical to the development and enhancement of our focusing on robust and reliable BACnet communication within a resource-constrained embedded environment.
The ideal candidate will possess deep expertise in C++, BACnet protocol implementation, and experience with Texas Instruments Programmable Real-time Units (PRUs).
A key challenge and focus of this role will be implementing BACnet communication that is completely free from timeout issues, ensuring seamless and reliable operation in real-world applications.
Our major goal is to implement and optimize BACnet communication stacks on embedded platforms, specifically targeting performance and reliability.
Major task is to develop and utilize PRU code to offload time-critical tasks related to BACnet communication, achieving deterministic timing and preventing timeouts.
The candidate has to thoroughly analyze and debug complex embedded systems, identifying and resolving performance bottlenecks and communication issues.
Will collaborate closely with hardware and firmware engineers to optimize system performance and resource utilization, conduct rigorous testing and validation of software implementations, ensuring adherence to quality standards and functional requirements.
This person must contribute to the improvement of our software development processes and best practices, document design specifications, code, and test procedures, address and resolve BACnet interoperability issues with third-party devices.
Candidate having a Bachelor's degree in Computer Science and/or Electrical Engineering along with 5+ years of experience in embedded software development1 using C++ is much desired.
Extensive knowledge of the BACnet protocol and its various services and objects, proven experience implementing and optimizing BACnet stacks on embedded systems, hands-on experience with Texas Instruments PRU microcontrollers and their programming, deep understanding of real-time operating systems (RTOS) and embedded system architecture is a must.
Must have strong debugging and problem-solving skills in embedded environments, experience with communication protocols such as Ethernet, RS-485, and MSTP, along with experience with version control systems (e.g., Git).
...