Archive
01 // CASE STUDIES 05 RECORDS
Diagnostic tool for the Citea bus
2022 — PRESENT Cimsolutions @ VDL Bus & Coach
Problem Production and workshop needed one tool to diagnose and update every ECU on the new Citea, and it could only connect with the ignition on. On one vehicle with a bad connector it worked only with a probe held in place, which caused delay and uncertainty on the line.
Decision Made the tool connect on battery voltage alone, and wrote a script that reads its input signals so the failure could be seen rather than guessed at.
Result Fixed the same day and shipped; the signal script is still in use.
UDSOTXVue.jsCAN
Seed-and-key for three ECUs
2025 — 2026 Cimsolutions @ VDL Bus & Coach
Problem Security-gated diagnostic functions on three ECUs—the battery management system (BMS), intelligent speed assist (ISA) and secure gateway (SGW)—were inaccessible through the diagnostic tool, preventing production flashing and maintenance operations that required them.
Decision Implemented the seed-and-key algorithms for all three. For new ECUs I moved to keys rolled out at runtime with OpenSSL, rather than secrets baked into the software, and split the key-update flow so reading and uploading keys are separate steps behind an unlock.
Result All three ECUs are in production use, and production flashing runs without problems.
UDSOpenSSLCANC++
TOTP-protected diagnostics
2023 Cimsolutions @ VDL Bus & Coach
Problem The diagnostic tool exposed security-sensitive functions to anyone with access to it, despite vehicles being serviced by external workshops.
Decision Designed a time-based one-time password (TOTP) authentication flow in collaboration with a cybersecurity consultant, and implemented the client side myself.
Result Deployed in production and continues to protect access to security-sensitive diagnostic functions.
TOTPUDSCybersecurity
Secure CAN gateway
2025 — PRESENT Cimsolutions @ VDL Bus & Coach
Problem The vehicle needed a secure gateway capable of enforcing rules between CAN networks, rather than simply forwarding traffic.
Decision Evaluated an NXP S32 platform running embedded Linux, configuring LLCE CAN drivers through debugFS and testing routing between networks with different baud rates. After the evaluation, integrated the selected alternative gateway, implementing key provisioning and the client side of an ECDSA handshake.
Result Integrated into production vehicles and under active monitoring, with further security features in development.
NXP S32YoctoU-BootISO-TPECDSA
End-to-end encrypted messaging
2019 — 2021 Nanoteq
Problem Nanoteq's secure messenger was meant as a hardened alternative to WhatsApp or Signal for military customers, running its own crypto on the phones' hardware accelerators. Group chat needed end-to-end encryption, and SIP handled groups poorly.
Decision Moved text messaging from SIP to XMPP after choosing ejabberd from three prototypes. Helped design the end-to-end encryption on top: Diffie-Hellman key exchange and rolling keys for forward secrecy. Forward secrecy meant decrypting the newest message needed the earlier ones, so I made the app decrypt only the window of messages visible on screen and stay responsive.
Result Group chat went live in early 2020. The same group-key work became the basis for an end-to-end encrypted group video proof of concept during lockdown, which was in use as Nanoteq's internal video tool by the time I left.
XMPPejabberdDiffie-HellmanIPsecC++