We are seeking a Senior Software Engineer with extensive experience in Kotlin and automotive protocols to enhance our advanced diagnostic tools and systems. The right candidate should have a solid understanding of both software and hardware integration, particularly for automotive systems, and will also lead firmware development for new features. Preferred candidates will have experience with power sports, such as Solaris, and embedded systems.
The Senior Software Engineer will also implement drivers and support for new device features, such as Bluetooth, USB, J2534, and multiprocessor functionality, for a cloud-connected automotive diagnostic scan tool device. The ideal candidate excels at software debugging and consistently writes clean, well-defined code. You should be self-motivated yet capable of working well in teams.
Key Responsibilities:
- Develop and maintain software using Kotlin for automotive diagnostic systems.
- Design and implement solutions involving automotive protocols (e.g., CAN, LIN, UDS, OBD-II).
- Implement drivers and features such as Bluetooth, USB, J2534, and multiprocessor functionality.
- Collaborate with teams to integrate hardware, firmware, and software components.
- Participate in low-level firmware development for embedded systems.
- Debug and troubleshoot complex software and hardware issues.
- Ensure the quality of code and maintain proper documentation.
- Mentor junior engineers and contribute to the technical growth of the team.
- Bachelor’s or Master’s degree in Computer Science, Computer Engineering, Mechatronics, or a related field.
- 7+ years of experience in software and firmware development roles.
- Extensive experience in Kotlin or C programming.
- Deep knowledge of automotive protocols (e.g., CAN, LIN, UDS, OBD-II).
- Expertise in real-time operating systems (RTOS) for embedded systems.
- Experience with boot code, low-level OS code, device drivers, and IO devices.
- Understanding of ARM architecture, particularly M4 and A9, and SoC bring-up.
- Familiarity with low-level communication protocols like I2C, UART, SPI.
- Strong debugging skills and experience with cloud-connected devices.
- Excellent written and verbal communication skills in English.
Preferred Skills and Experience:
- Experience in power sports, such as Polaris.
- Expertise in automotive Electronic Control Units (ECUs).
- Knowledge of automotive protocols such as UDS, J1939, K-LINE, CAN, J2534.
- Expertise in STM32 microcontroller programming.
- Experience with BSP and drivers for Bluetooth, WiFi, USB.
- Knowledge of hardware and firmware interaction and development.