Embedded Software EngineerCDI Corporation is a multinational company providing engineering, information technology and staffing services to clients in a range of industries including energy, chemical, aerospace, defense, transportation and financial services.Job DescriptionJob Responsibilities:Develop best in class embedded software using C/C++, Java and QNX/LinuxDeploy and maintain the software for future enhancementsWork with GM business leads and engineering specialists to identify, capture and refine system requirements.Provide robust and elegant software solutionsFacilitate internal developers or third party companies to develop, integrate, and test software deliveries using embedded diagnostic and development tools.Coordinate and participate in architecture, requirements, code, and test case reviews.Work closely with other team leads to support triage and resolution of difficult system problems in a timely mannerInteract with internal customers, vendors and external organizations to refine understanding of requirements and identify opportunities for innovationWork with program management and Product Owners to define sprints and releases.Qualifications* Experience doing development in embedded development, i.e. in constrained environment* Good knowledge of QNX operating system* Good understanding of interprocess communication in QNX* Solid understanding of Linux operating system* C, C++* Linux Curl functions, LibCurl* Linux Command Library* Good understanding of the HTTP & FTP protocols* Knowledge of Transport Layer Security (TLS)* Knowledge of Singleton in C, C++* Knowledge of STL containers for C++* Gdb (gnu debugger)* Messaging, ZeroMQ* OMA-DM, FUMO, preferred, not a requirement* Scripting languages - Groovy, Python* Unit testing* Knowledge of C Unit and CPP Unit for unit testing* Experience with State machines implementation* Experience using Certicom libraries for implementing TLS* GOF Design patterns* Good understanding of data structures* Eclipse IDE* Preferable to have knowledge of CAN vehicle networking, not required though* Experience working with VM's* Likely experience designing 1+ products* Likely 2+ years of experience* Intermediate regarding skill mastery