A large part of what I build ends up being some form of integration. Getting two systems that were never designed for each other to talk cleanly — over BLE, WebRTC, REST, XML, message queues, file-based pipelines, or a combination thereof — is in practice a large part of modern software development.
My approach always starts with the contract: what exactly are the parties exchanging, who owns which part, and how do we handle errors? Implementation only begins once that's clear. An integration without unambiguous agreements about error handling, retries, and idempotency is a ticking time bomb.
Concretely I've worked on: XML pipelines between translation systems and Point of Care machines; BLE protocols to integrate multiple brands of INR meters into a thrombosis app; WebRTC for video feedback in a teacher learning environment; payment providers and gaming providers in an online casino portal; public-health reporting from a COVID portal; the KNVB data service for a football club site; the P1 standard for smart energy meters; and countless import/export integrations for absence reports, each between organisations with different formats and rhythms.
Always with the same guiding principles: observability first, error handling second, speed only after that. Logging at the right levels, error messages that actually help operations move forward, and small tooling to investigate suspicious messages aren't extras for me — they're the minimum kit for a serious integration.
Another recurring theme is robustness against the outside world. External services aren't always available — a KNVB service can stutter, a payment provider can slow down, a register can temporarily return empty. Good integrations have caching, fallback behavior, and honest signaling to the end user, so a hiccup elsewhere never causes silent failures in your system.
What truly matures an integration is how it behaves on its worst day — not in the demo. An integration that silently fails is, in my book, worse than one that loudly announces something has gone wrong.