Senior Software Engineer-40847


General Responsibilities: The primary role of the Sr. Software Engineer is to provide software support, integration and troubleshooting activities in the field as customers integrate Hitachi low level drivers into their applications. The application domain is for powertrain control modules, i.e. transmission, engine, and hybrid ECU’s that use 32-bit single and multi-core microcontrollers. Secondary responsibilities are to design embedded software as necessary to support the design team, with typical deliverables being test software, embedded reprogramming kernels, instrumentation measurement/calibration device drivers, etc.

Job Responsibilities: 

The Software Engineer will work directly with the software design teams located in various locations globally to support all phases of the SDLC: requirements, design, coding, verification, and validation. The engineer should ensure that requirements are clearly understood by the design team, support and answer customer questions about Hitachi’s software design, and release software deliverables to the customer, will troubleshoot software issues on-site with the customer (and ensuring that requirements are being satisfied), and will present Hitachi’s software validation results to the customer.

The Software Engineer will be located at Hitachi’s Farmington Hills, MI Technical Center, providing customer on-site support as needed. On-site support could include both software bench and development vehicle level testing. The engineer will be required to document root cause analysis activities and monitor their progress to successful conclusion.

The successful candidate will possess a well-rounded knowledge base in embedded software design (at the microprocessor register level), electrical circuits, and vehicle powertrain systems (particularly with respect to powertrain control modules, sensors, and actuators).

The specific responsibilities of the Software Support Engineer shall include (but shall not be limited to) the following:

  • Understand how to use an ANSI-C compiler; assembler, linker, makefiles, and related software build tool chain components. Also have knowledge of version control tools such as PVCS, CVS, SVN, CM Synergy, Rational ClearCase, etc.
  • Utilize software debuggers to execute and debug software using techniques such as breakpoints, watch windows, and program trace. Also be able to reprogram flash memory with various debug interfaces (Aurora, Nexus, JTAG, DAP).
  • Demonstrate capability with measurement & test equipment such as oscilloscopes, digital multi-meters, current probes, function generators, serial communication tools such as CANalyzer or VehicleSpy.
  • Able to use automotive measurement and calibration tools such as ETAS INCA or ATI Vision. Understand concept of emulation calibration data memory and ASAP display table measurements.
  • Familiar with low level drivers such as ADC, PWM, GPIO, timer modules, SPI, SCI, LIN, CAN-FD, SENT, DMA, external bus interfaces, memory management units, ECC, flash memory, etc.
  • Familiar with real-time operating systems (RTOS), interrupt service routines, exception handlers, task scheduling, and multi-core CPU operation.
  • Conduct meetings on a regular basis with the Design team as well as with the Customers on a weekly or bi-weekly basis as needed. These meetings will be used to discuss the current status of the program, the progress of the work, the issues faced by both sides and the resolution to problems. And after the meeting, the minutes of the meeting needs to be sent out to all the stakeholders.


  • Possess a bachelor degree in Electrical Engineering, Computer Engineering or a related technical area.
  • Be proficient in software programming languages such as assembly, C or other high level languages.
  • Be familiar with automotive component and vehicle test procedures, including EMI/EMC testing.
  • Be generally knowledgeable in the automotive development process.
  • Have a minimum of 4-6 years applicable experience in automotive environment.
  • Have experience with electronic control systems.
  • Have experience with design specifications and detailed software documentation.
  • Have experience with software validation test procedures.
  • Have experience with Infineon Aurix (TC2xx) microprocessors.
  • Have working knowledge of debuggers and emulation tools, CAN interface tools and other serial communication interfaces.
  • Have experience tracking and reporting design changes.
  • Have experience coordinating and facilitating several small projects or one major project.
  • Experience with ETAS or ATI calibration tools and real time OS kernels is a plus.
  • Experience interfacing with customers.
  • Must be able to travel for to Europe, US and Japan.

Additionally, the ability to work independently with minimal direction is required as are strong verbal and written communications skills. Experience with PCs and application software, such as MS Office tools and Lotus Notes are also required.