You are viewing a preview of this job. Log in or register to view more details about this job.

Embedded Software Engineer

As a member of the software development group you will be part of a dynamic development team performing analysis, design and development of our next generation embedded software using C and C++
Essential Skills/Experience
  • Experience with using Assembly, C and C++ in the development of embedded software. 
  • Experience with using object oriented programming techniques in the development of embedded software. 
  • Experience with RTOS and multi-tasking interrupt based embedded software development.
  • Experience using ICE and debuggers in the development of embedded software. 
  • Solid understanding of Object Oriented methodologies and concepts in general. 
  • Able to understand and intelligently debug existing software. 
  • Solid understanding of general programming software technology.
  • Understanding and appreciation of software development lifecycles. 
  • Knowledge of and understanding of software design patterns. 

Desired Skills/Experience
  • Experience with PLD/FPGAs and ABAL/VHDL. 
  • Familiarity with C, C++ and C# for Windows applications. 
  • Familiarity with system interfaces such as CAN, JTAG, I2C, OCDS, AUD, RTD, NBD and Ethernet. 
  • Experience with SAE, ISO and ASAM standards. 
  • Understanding of communication protocols such as CCP, XCP, J1939, TCP/IP ISO14229 and ISO15765. 
  • Familiarity with Assembly language programming. 
  • Ability to understand machine instructions. 

Bonus Skills/Experience
  • Experience with communication transport layers such as CAN, RS232, USB, Ethernet and Flexray. 
  • Knowledge of data acquisition concepts and systems.
  • Knowledge of automobile and engine controls systems. 
  • Knowledge of wireless communication systems. 

Essential Non-Technical Skills
  • Positive proactive attitude and solid work ethic. 
  • Strong communication skills. 
  • Strong organizational skills.
  • Experience with Microsoft Office applications.
  • Detail-oriented and methodical coding mentality. 
  • Willingness to follow processes and procedures. 
  • Ability to work independently. 

Responsibilities will include:
  • Both new development and maintenance/enhancement to existing embedded software.
  • Detailed technical design of system architecture and software components based on requirements.
  • Development and execution of unit test procedures.
  • Development and execution of system test procedures.
  • Development and updating of documentation on work performed.