Uebersyren, Luxembourg · in IT since 1997
Yannick Kirschhoffer
Chief Information Officer · Head of IT
LNS — Laboratoire national de santé
I run IT for Luxembourg's national health laboratory. I also still ship code most weekends — which is the part of this page worth reading.
┌─ public portfolio ─── /alcibiade /lns-public /chesscorp /supertape ─┐ │ │ │ identity & access ······ 2 midpoint-cli · idm-connector-odoo │ │ chess ecosystem ········ 7 chess-club · chess-rules-java │ │ odoo & IT governance ··· 4 ragnar · odoo-itsm · addl-pos │ │ applied AI & services ·· 3 opus-translate · ai-lab │ │ self-hosted media ······ 5 cctv · tubecast · sleepaudio │ │ signal, vision & radio · 3 adsb-radar · starcam │ │ retro computing ········ 3 supertape · matraalice │ │ terminal & tooling ····· 5 pysciiart · docker-ascii-map │ │ security & data ········ 4 pan-discovery · profile-buddy │ │ │ └─ open source since 2006 · 36 projects · 3 on PyPI · 2 on Maven ─────┘
Featured
Four worth your time
One is used in production at work, one talks to computers older than my career, one is what a CIO builds when the tooling does not exist, and one is a habit I have had since 1989.
-
midpoint-cli
2018 – 2026A command-line client and interactive shell for Evolveum midPoint, the open-source identity governance platform. Users, org units, resources and tasks — searchable, scriptable, patchable from XML, with tab completion and persistent history.
Written because reconciling thousands of accounts through a web console is not a plan.
Runs in production at the LNS, where the identity team is two people. Presented at TIIME 2024 in Copenhagen and the MidPoint Community Meetup 2026 in Prague, paired with the Odoo identity connector the LNS publishes.
-
SuperTape
2018 – 2026A cassette deck for computers that no longer have one. SuperTape turns a modern sound card into the tape drive a 1980s machine expects — decoding audio back into BASIC and assembler listings on the way in, and generating the signal to load them on the way out.
It will also convert an image into a BASIC program, so a machine from 1983 can display a photo taken last week.
Python with an interactive shell, live audio-level monitoring and device selection, and a YAML tape library. There is a desktop front end too, and the machine at the other end of the cable is usually the one I wrote matraalice to emulate.
-
Ragnar
2020 – 2024An IT governance suite for the people who have to answer for risk, compliance and budget. Built as an Odoo module, and also packaged as a standalone image with Odoo and PostgreSQL embedded so it can be tried in one command.
The governance tooling I wanted to buy, so I wrote it instead.
Odoo turns out to be a reasonable substrate for ITSM too — which is what odoo-itsm became.
-
docker-ascii-map
2018 – 2025┌ bridge ────────────────────────────────────┐ │ ● tubecast :8080→8080 healthy │ │ ● postgres :5432 healthy │ │ ○ pgbackup — exited (0) │ └────────────────────────────────────────────┘
Prints the containers, networks and port bindings on the local machine as a map you can paste straight into a ticket. On PyPI since 2018.
One idea, held since 1989: if it can be a diagram, it can be text.
It started as Ascii Art for Java in 2011, on Maven Central and SourceForge, and continues as pysciiart — a widget toolkit for boxes, arrows and dashboards drawn in characters.
The index
Everything else, honestly labelled
Thirty-six public repositories across four GitLab namespaces. Some are load-bearing, some are a weekend that got out of hand. My first public commits go back to 2006.
- midpoint-cli Command-line client and interactive shell for Evolveum midPoint identity governance. PyPIpython2018–2026
- idm-connector-odoo ConnId/OpenICF connector letting midPoint govern Odoo as an identity resource. Published by the LNS. javaconnid2021–2026
- supertape Turns a sound card into the cassette deck a 1980s computer expects, in both directions. pythonaudio dsp2018–2026
- supertape-gui Desktop front end for SuperTape. 2025
- cctv Self-hosted camera wall: RTSP remuxed to HLS by ffmpeg, with ONVIF pan/tilt/zoom control. fastapivue 32026
- tubecast Turns YouTube channels into subscribable audio podcasts, with per-channel RSS feeds. imagepython2025–2026
- opus-translate German to French translation service behind an OpenAI-compatible chat endpoint. fastapitransformers2025
- addl-pos Touch-screen point of sale for a non-profit bar. French interface, installs as a PWA. vue 3typescript2025
- ragnar IT governance suite for risk, compliance and budget, built on Odoo. odoopython2020–2024
- odoo-itsm IT service management module for Odoo. odoo2025
- odoo-aston The Odoo instance that runs the non-profit behind Aston Le Taureau. odoo2025
- pysciiart Widget toolkit for drawing boxes, arrows and dashboards in plain characters. PyPIpython2020–2025
- docker-ascii-map Renders local Docker containers, networks and port bindings as an ASCII map. PyPIpython2018–2025
- asciiart ASCII reports, multi-column tables and graphs for screens, files and log streams. Mavenjava2011–2018
- adsb-radar Tracks aircraft from raw 1090 MHz ADS-B transponder signals off an RTL-SDR dongle. pythongtk / cairo2018–2022
- starcam Augmented-reality finder that locates stars and planets in a live camera feed. opencvpython2020–2021
- horse-camera Derives health indicators for large animals from a camera stream. computer vision2024–2025
- pan-discovery Finds card numbers stored in files and databases during PCI-DSS assessments. Docker Hubpython2018–2020
- recaptcha-injection Injects reCAPTCHA keys into a running container at startup instead of at build time. docker2020
- covid-19-notebook A ready-to-run notebook for reading the COVID-19 figures without the commentary. jupyter2020
- profile-buddy Document manager built around HR record-keeping requirements. 2018
- ai-lab Sandbox for AI experiments that are not yet projects. python2023–2024
- x-bot Posting automation for a social account. 2024
- gmusic-player Batch playlist organiser for a music library, sorted by play count and other signals. python2018–2026
- sleepaudio Algorithmic composition framework for generating environmental music. java2018–2020
- sheet-music Original guitar scores, engraved from source and built to PDF. lilypond2025
- filesystem-cleanup Scripts for finding duplication and rot in filesystems that got away from someone. python2020–2024
- matraalice Emulator for the Matra Alice, an early-1980s French 8-bit home computer. 2018
- socializer Multi-account social media management with scripted helpers. 2018–2019
- chess-rules-java The rules engine: board model, legal moves, PGN and FEN. Published to Maven Central and forked by strangers. Mavenjava2018–2019
- chess-club Chess server with REST APIs and a full web interface. java2018
- instant-chess-server Play immediately against engines hosted on the server, no account required. 2018
- chess-board Flexible chess board as a reusable web component, built with Polymer. polymer2018
- chess-sample-ui Reference build showing how the pieces compose into a working interface. 2018
- chess-club-automation Tooling to set up, run and upgrade club instances. 2018
- chess-assets Photo library, 3D models and documents behind the chess projects. 2018
Nothing in that area.
PyPI
midpoint-cli— 1.5.0, MITpysciiart— docs on Read the Docsdocker-ascii-map— 2.1.3, MIT
Maven Central
org.alcibiade:chess— 15 releases, forked by othersorg.alcibiade:asciiart— core, jcl and slf4j
Container images
pan-discovery-fsand-dbon Docker Hub, published since 2016tubecaston the GitLab registry
Elsewhere
- gitlab.com/ChessCorp — seven repositories, a chess engine and its ecosystem
- Ascii Art for Java and Alcibiade Chess on SourceForge
- MKGI Chess Club — a web chess server on SourceForge, and where my public commits start in 2006
- gitlab.com/lns-public — what the LNS releases, see below
At work, in the open
Identity plumbing, released publicly
Work I am responsible for, published by my employer rather than under my own name, at gitlab.com/lns-public.
-
idm-connector-odoo
2021 – 2026An Odoo connector built to the ConnId / OpenICF standard, so an identity manager such as Evolveum midPoint can treat Odoo as a governed resource. It reads Odoo's models and fields and hands them over as a schema, then synchronises persons, accounts and organisation charts — including the relational field types, and Odoo's
res.groupsmapped to midPoint entitlements.A public-sector laboratory shipping its identity plumbing as open source, for anyone else running the same stack.
Java and Gradle, with unit tests that need nothing and integration tests that need a live Odoo, plus an administrator guide written for midPoint admins. Three forks so far — other people are running it. This is the connector half of the talks at TIIME 2024 and the MidPoint Community Meetup 2026; midpoint-cli is the other.
Career
Finance, then transport, now public health
Twenty-nine years. The through-line is critical systems that other people depend on and cannot see.
-
Aug 2020 — now
Chief Information Officer · LNS
Laboratoire national de santé · Luxembourg
Luxembourg's national reference laboratory: pathology, human genetics, microbiology, legal and biological medicine, environmental health. I own the IT strategy, the roadmap, the budget and the operations, with a multidisciplinary team of around twenty plus managed services delivered with CTIE.
- Started and lead the laboratory's AI programme — from picking use cases that are actually worth doing, to the technical and governance groundwork that makes them defensible in a healthcare setting.
- Strengthened cybersecurity and identity governance against NIS2 and health-sector regulation, including secured data exchange with hospitals, laboratories and the Ministry of Health.
- Delivering national programmes: a National Oncology information system with LuxITH, a national healthcare SOC with eSanté, and a business intelligence and activity-reporting platform.
- Accountable for the LIS/LIMS platforms behind pathology and genetics — performance, interoperability and regulatory compliance — and for sovereign hosting and networking in cooperation with CTIE.
-
Jan 2019 — Mar 2020
Chief Information Officer · LuxairGroup
Luxair SA · Luxembourg
Led IT Services & Solutions — 50 staff and 12 contractors. Redefined the organisation and how IT reported upward, owned budget and cost efficiency, consolidated the agile and waterfall delivery organisations, and set the security roadmap with the CISO and Internal Audit.
-
Dec 2015 — Dec 2018
Head of IT Architecture & Solution Design · LuxairGroup
Luxair SA · Luxembourg
Reverse-engineered and mapped the whole data and application landscape, then set the API management strategy and the plan for converging web and mobile front ends. Introduced hybrid cloud on OpenStack with container orchestration, established ITIL change, incident and problem governance, ran the PCI-DSS programme and built a sourcing methodology for procurement.
-
Nov 2009 — Nov 2015
IT Architect & Technical Manager · CGI
Consulting · Luxembourg
Technical lead across client engagements, plus line management of technical staff and proofs of concept on whatever was emerging at the time.
- BGL BNP Paribas — enterprise architect for the group SOA initiative: strategy, guidelines and getting in-house teams to actually adopt it.
- Mars — technical lead, team of 15 across three sites, replatforming a twenty-year-old client-server financial reporting system onto OLAP.
- Bâloise Assurances — technical lead on an organisation-wide document management system on Alfresco and the then-new CMIS, replacing physical mail flows.
- Police Grand-Ducale — architecture for the Schengen Information System and the move to SIS II, coordinating central and member-state systems.
-
Feb 2008 — Oct 2009
Software Architect · Sogeti
Luxembourg
ECM expert and technical staff manager, reviewing IT frameworks for the European Court of Justice. Led a team of four building e-Curia from nothing — the portal through which parties file and receive case documents electronically, built around document integrity, strong digital signatures and genuinely complicated workflows.
-
Nov 2001 — Jan 2008
Senior Developer · Euro Information
Crédit Mutuel / CIC · Strasbourg
Built a mobile operator rating and billing platform and took three operators live on it — CM, CIC and NRJ Mobile. Also vulnerability assessment, fraud detection and remediation, and the monitoring tooling for banking operations.
-
1998 — 2001
Software Engineer, R&D · Alcatel Business Systems
Strasbourg
Real-time embedded development in C and Java for early tactile terminals, plus test plans and validation campaigns. This is where the habit started.
-
Sep 1997 — Jun 1998
IT Teacher · AMGE
Strasbourg
Taught information technology to BTS students. The first job, and still the best preparation for explaining architecture to a board.
Education
DEA (Master's), Computer Science — Université Louis Pasteur, Strasbourg, 1997. DUT, Computer Science — Université Robert Schuman, 1994.
Certifications
TOGAF 9 · ITIL v4 Foundation · Certified Scrum Master · BPMN
Languages
French native · English fluent, and the daily working language · German professional · Luxembourgish understood
Domains
Public health · airline and tourism · banking · insurance · government and EU institutions · telecom
Talks & community
Speaking, organising, being quoted
- MidPoint Community Meetup 2026 · Prague Open-sourcing midPoint automation at the LNS: CLI and Odoo connector in practice Speaker, and panellist on identity governance, midPoint and AI
- Nexus Luxembourg 2025 High-performance computing panel with LuxProvide Panellist
- Paperjam 10×6 Leading CIOs' Challenges 2024 · Luxembourg Health data: the opportunity and the risk in the age of wearables Speaker — ten CIOs, six minutes each, 400+ in the room
- Institut Luxembourgeois des Administrateurs 2024 Generative AI and what it changes for boards Speaker
- PwC — Les rendez-vous du secteur public 2024 · Luxembourg Generative AI in the public sector Invited speaker
- TIIME 2024 · Copenhagen midPoint working group: open-source identity tooling in production Guest speaker
- YaJUG · Luxembourg Java User Group Recurring speaker — Chess Corp, Spring Boot, ASCII tooling Board member since 2010
Organising
Voxxed Days Luxembourg — board member since 2015 and co-organiser of the two-day, 500+ attendee conference. The tenth edition lands in 2027.
YaJUG — board member since 2010.
Paperjam Tech100 — listed among Luxembourg's hundred tech ambassadors, and its CIOs to follow.
Selected press
- Evolveum · 2025 Starting small, scaling big: the LNS journey with midPoint
- Paperjam · 2024 « Anticiper l'adaptation de nos services en ligne »
- Silicon Luxembourg · 2023 Trusted services and data protection
- ITnation · 2021 Object storage at the LNS, where data doubles every year
“Able to grasp the technical challenges and get the whole picture of a complex business setting at light speed — a top executive with actual hands-on experience, who genuinely understands the field.”
Yoann Le Bihan · data protection & cyber law, former direct report
“An uncommon enthusiast and software guru who not only transmits his knowledge but involves you with his passion. The kind of mentor you want on any mission.”
Lionel Tesolin · software engineer, former direct report
And then there is the bull
Aston Le Taureau
My wife, Sabine Rouas, took in a Charolais-Simmental bull at birth and trained him to be ridden like a horse. He now performs live, in a trio with a cow and a horse.
I run the digital side: the channels, the publishing, the analytics, and the unglamorous back office. Covered by AFP, France 2 and L'essentiel, among others.
The odoo-aston and
addl-pos repositories in the index above are the boring half of this same
story. Everything I know about audience building, I learned from a bull.
- Facebook~121,000
- YouTube~93,800
- TikTok~86,500
- Instagram~28,000
- YouTube views, lifetime33,000,000+
Followers across platforms, mid-2026.
Contact
Identity governance, healthcare IT, or a project you want to argue about
All three are welcome. Email is the reliable channel.