Client Software Engineer (Battery Management Systems)We are seeking a highly skilled Client Software Engineer contractor to support the development of Battery Management System (Client) software. The ideal candidate will have a strong background in embedded systems development with a focus on object-oriented C++ and RTOS environments.Key Responsibilities:Design, implement, and test Client software using modern C++ (C++17 or later)Develop software following trunk-based development processes using pull requests and gating checks (static analysis, unit tests)Create and maintain unit tests using Google TestCollaborate with cross-functional teams using Agile tools like JiraGenerate and maintain in-source documentation using Sphinx, Doxygen, and PlantUMLUtilize static analysis tools such as Axivion to ensure code qualityWork within an RTOS environment, specifically SafeRTOS (or similar FreeRTOS API)Manage source control and code review via GitHub and GraphiteConfigure build systems using CMakeRequired Skills:Strong proficiency in Object-Oriented C++ (C++17+)Experience with Unit Testing frameworks (preferably Google Test)Hands-on experience with RTOS (SafeRTOS or FreeRTOS)Familiarity with static code analysis tools (Axivion preferred)Version control expertise with GitHubExperience with trunk-based development processesStrong documentation practices using Sphinx, Doxygen, and Plant UMLBuild configuration experience with CMakeNice to Have:Background in battery management systems or automotive embedded systemsExperience in regulated safety-critical software environments