Responsibilities
- Create an OTX runtime that conforms to ISO 13209, implementing the complete object model, deserialization logic, and type system.
- Develop a tree-walking interpreter for the OTX XML-based domain-specific language, featuring an abstract syntax tree built with sealed or algebraic data types.
- Build a variable scoping and parameter binding system that accurately follows the OTX specification.
- Construct the evaluation and execution pipeline to correctly process procedural constructs, conditionals, loops, and exceptions as defined in ISO 13209-1 and 13209-2.
- Design a framework for loading and executing OTX extensions at runtime.
- Implement streaming XML parsing with full namespace handling and polymorphic deserialization using xsi:type.
- Integrate the runtime with a D-Server layer by supporting ODX file parsing, service catalog management, and UDS message encoding and decoding.
- Deliver built-in OTX extensions such as DiagCom adapter, PDU-to-J2534 adapter, and protocol handlers for log, file, string, external, flash, and event operations.
- Develop diagnostic application logic compatible with J2534 and D-PDU API (ISO 22900-2) interfaces.
- Support flash programming procedures across various OEM-specific configurations.
- Package the runtime as a Kotlin Multiplatform library supporting both JVM and native targets.
- Write thread-safe concurrent code using Kotlin Coroutines and Mutex, and troubleshoot live deadlock issues.
- Establish and maintain a thorough test suite covering OTX compliance, edge cases in protocol encoding, and long-term runtime reliability.
- Engage in design discussions, contribute to technical documentation, and guide team members on OTX and diagnostic protocols.