Posted on: 17/08/2026
Position Summary :
We are seeking a Senior C#/.NET Software Engineer to develop a Windows-based diagnostic and firmware flashing application using the UDS (Unified Diagnostic Services) protocol.
The engineer will implement the UDS client, integrate with CAN hardware interfaces, and develop firmware download workflows for programming Electronic Control Units (ECUs).
The ideal candidate has experience building automotive or industrial diagnostic applications in C# and understands vehicle communication protocols such as UDS, ISO-TP, and CAN.
Responsibilities :
- Design and develop Windows desktop applications using C# and .NET.
- Implement a UDS client conforming to ISO 14229.
- Develop ECU firmware flashing functionality using standard UDS services.
- Integrate with CAN/CAN FD hardware adapters (Vector, PEAK, Kvaser, etc.).
- Parse and program Intel HEX, Motorola S-Record, and Binary firmware images.
Implement :
1. Diagnostic Session Control
2. Security Access (Seed/Key)
3. Request Download
4. Transfer Data
5. Transfer Exit
6. ECU Reset
- Develop communication logging and diagnostic trace capabilities.
- Implement retry, timeout, and error recovery logic.
- Build intuitive UI for firmware updates, progress monitoring, and diagnostics.
- Collaborate with ECU firmware teams to validate the flashing workflow.
- Test and debug communication using CAN analyzers and protocol tools.
Required Skills :
1. Programming :
- C#
- .NET Framework / .NET 6+
- WPF (preferred) or WinForms
- MVVM architecture
- Asynchronous programming (async/await)
- Multithreading
- Object-Oriented Design
2. Automotive Communication :
- UDS (ISO 14229)
- ISO-TP (ISO 15765)
- CAN
- CAN FD
3. Firmware Flashing :
- Experience implementing:
1. Programming Session (0x10)
2. Security Access (0x27)
3. Request Download (0x34)
4. Transfer Data (0x36)
5. Transfer Exit (0x37)
6. ECU Reset (0x11)
7. Checksum/CRC verification
8. Flash progress monitoring
9. Retry and recovery handling
4. CAN Hardware APIs :
- Experience with at least one: Vector XL Driver Library, PEAK PCAN-Basic API, Kvaser CANlib SDK, Intrepid Vehicle Spy SDK, National Instruments NI-XNET.
5. File Formats :
- Intel HEX, Motorola S-Record, Binary (.bin)
6. Tools :
- Visual Studio, Git, Vector CANoe / CANalyzer, PCAN-View, Vehicle Spy.
Preferred Qualifications :
- 5+ years of C#/.NET desktop application development.
- 2+ years working with UDS diagnostics or ECU flashing tools.
- Experience in automotive, commercial vehicles, or off-highway equipment.
- Familiarity with DoIP (ISO 13400) is a plus.
Nice-to-Have Skills :
- WPF custom controls, Prism framework, Dependency Injection, Unit testing (xUnit/NUnit), CI/CD using Azure DevOps or GitHub Actions, Logging frameworks (Serilog, NLog), TCP/IP networking (for future DoIP support).
Resume Keywords :
- C#, .NET, WPF, WinForms, MVVM, UDS, ISO 14229, ISO 15765, CAN, CAN FD, ECU Diagnostics, Firmware Flashing, Diagnostic Tool, Vehicle Diagnostics, Vector XL, CANoe, CANalyzer, PCAN, Kvaser, Intel HEX, S-Record, Off-Highway, Heavy Equipment, Automotive Software.
The job is for:
Did you find something suspicious?
Posted by
Posted in
Backend Development
Functional Area
Backend Development
Job Code
1663656