Embedded Software Engineer
Role details
Job location
Tech stack
Job description
Design and implement software for embedded systems from requirements analysis through production and commercial deployment. Maintain and enhance software deployed within existing embedded products and systems. Participate in design and code reviews. Work closely with other engineering teams to ensure system functional and interface requirements are met. Interact with customers and partners in technical discussions throughout the development and deployment phases., In this role, the Embedded SW Engineer will design, develop, integrate, test, and maintain embedded software applications. The systems are primarily developed in C and/or C++ targeting various
Requirements
Bachelor's degree in Computer Science or Engineering (or comparable skill).
Strong C or C++ development and software architecture skills.
Minimum of 2 years of professional experience developing embedded software in both
RTOS and bare metal environments.
Experience writing multi-process / multi-threaded programs using C or C++.
Strong understanding of software design, methods, and architectural approaches.
Knowledge of data structures, algorithms, and software engineering principles.
Desired Characteristics
Experience in Agile software development environments including Scrum or Kanban.
Experience with ColdFire, ARM and/or PowerPC micro-processor in a C/C++ environment.
Experience with communication protocols such as TCP/IP, UDP, RS232/RS422, HDLC, SPI, I2C, CAN.
Experience with embedded Real Time Operating Systems (RTOS) including Green Hills INTEGRITY.
Experience with software configuration management tools such as SVN or GIT.
Experience with SW analysis tools (such as Klocwork, Understand, PC-Lint), and SW unit test tools (such as VectorCAST etc.).
Experience in design of high reliability, safety, redundant fail-safe products.
Experience with industry standards (IEC 61508, DO-178B, Cenelec-50128, etc.).