I'm Dirk Raffel, a Freelance Software Consultant specialized in Public Transport & Passenger Information Systems

About me

I'm a graduate engineer in electrical engineering living in Berlin, Germany.

I have more than 20 years of professional experience as senior software consultant, technical lead and development manager in many fields such as: public transport, rail systems engineering, passenger information systems, automatic passenger counting, infotainment, multimedia streaming, text-to-speech systems, automotive and traffic telematics and others.

I'm a love what-I-do software developer and architect for embedded systems development as well as full-stack web development (front-end and back-end).

I help world-class leading train manufacturers & suppliers during the complete development life-cyle, including acceptance and integration. Moreover, I also do consulting for public transit operators for development of individual software solutions, customer-specific adaptations and interfaces for systems integrations.

Please feel free to contact me if you have any questions or to schedule a phone call. I will respond quickly.

Complete, production-ready embedded Linux distribution
C/C++ Systems programming
Full-stack JavaScript/ES2018, Node.js, Vue.js
Web development, Electron development
Multimedia Streaming (SIP, RTSP), Text-to-Speech
GIS/Geoinformatics, Web Mapping, Web GIS
This is me - Dirk Raffel



I provide consulting services for public transit operators, leading train manufacturers & suppliers in the market of passenger information systems and automatic passenger counting systems. This includes e.g. evaluation of customer requirements, creation of technical concepts, software architectures and implementation strategies, etc.

Product development

I'm a reliable partner for your software development projects in all phases of the development life-cyle. My services include complete production-ready embedded and/or web development for your planned product or specific outsourced components. I work cross-platform and have a lot of experience in C++ and full-stack JavaScript development.

Project management

I make sure that your product fulfills the customer's expectations. My services include communication with stakeholders, requirements engineering and tracking, definition and execution of acceptance testing, integration testing, CI/CD and agile development methods.

Would you like to know more or just discuss something?

Contact me

years experience


I have worked on dozens of projects so I have picked only the latest for you.



Display train's route and position on map...

As senior software consultant responsible for architecture and development of an offline web mapping solution for displaying the train’s route and current GPS position on interior TFT panels in the train for visual passenger information. Fully based on open source geospatial/GIS technologies.

Projects in Switzerland and Germany, based on Trafimage and OpenStreetMap data.

"On modern information displays in all cars you can view any time all the current basic information on train movement and travel connections. The current position and speed of your train is displayed on a map. So you are always informed about the status of your trip."

Technologies include OGC Standards, MapServer, WMS, TileCache, GeoJSON, OpenLayers, Proj4js, QGIS, GDAL/OGR, PostgreSQL, PostGIS, pgRouting, JavaScript, C++.

Visit website

Passenger Information

Passenger information at railway stations...

As part of a Group-wide strategy, a well-known German transport company has launched the "Traveler Information of the Future" project.

The aim of the project is to improve the quality of the information provided.

My role as senior software consultant includes development of embedded software for passenger information on various types of TFT displays at railway stations, using an Electron app for rendering the content.

Agile environment (Scrum, Continuous Integration).

Technologies include C++14, GCC, CMake, Git, Gitlab CI, Jira, Confluence, Linux Buildroot, Prometheus, Grafana, Google Test Framework, Python, pytest, JSON schema, Electron (Node.js, Chromium), JavaScript/ES2018, Spectron, Mocha, Chai, Webpack, Babel.


Audio announcements in trains and at train stations...

As senior software consultant responsible for the conception and development of a streaming solution for audio announcements.

Development of a streaming server for on-demand streaming of previously recorded audio files and live audio from TTS (Text-To-Speech) voice output.

I have realized several projects in this area using TTS engines from Nuance and Acapela Group. A TTS-based solution is able to deliver any text with a natural sounding voice without a speaker going back to the recording studio. This eliminates the need for additional recording, saving time and money.

The solution is used for announcements in trains via the on-board audio system using the RTSP/RTP protocols. A similar solution is used for the sound reinforcement of railway stations via VoIP-enabled loudspeakers with the SIP protocol instead of RTSP.

Standards-based RTP/RTCP/RTSP/SIP multimedia streaming is realized using the LIVE555 Streaming Media library, suitable for embedded and/or low-cost streaming applications.

TFT Displays

Infotainment on Interior TFT Screens...

Many of my projects focused on the integration of various kinds of TFT displays into passenger information systems. My clients in this area include leading train manufacturers as well as international suppliers of such displays.

I have been responsible for the conception and development of the complete embedded Linux image including the complete application stack, using tools like Buildroot to create custom production-ready embedded Linux distributions.

I have pushed the use of new web technologies for the realization of browser-based infotainment web applications e.g. based on Electron for visually appealing designs and hardware-accelerated animations and sophisticated features such as dynamic graphical maps etc.

TFT screens are often used for information and entertainment purposes to display travel-related information (e.g. real-time connection information) as well as advertising and entertainment content. Therefore, my work often includes developing solutions for streaming Full HD Videos to the TFT displays, using hardware acceleration APIs for providing GPU video decoding acceleration, and typically using the LIVE555 Streaming Media library for development of streaming servers and clients.

Passenger Counting

Automatic Passenger Counting in Public Transport...

As senior software consultant and development manager responsible for numerous international projects for the conception, development and integration of systems for automatic passenger counting (APC) in trains and buses, with more than 10 years professional experience in this field.

I'm an expert in particular on the subject of automatic passenger counting in public transport vehicles for revenue sharing in transport associations and well versed in third party acceptance testing. For e.g. train manufacturers, I also offer consulting services to check the requirements for plausibility and completeness with regard to achieving the desired counting accuracy, taking into account special cases in operation.

I'm familiar with many leading suppliers in the market of passenger counting devices, such as HELLA Aglaia, iris IRMA and DILAX. I have extensive knowledge of integrating such devices into IP-based networks, e.g. Bombardier MITRAC Control TCMS (IPTCom), Ascom Vehicle Platform (FZPF) and others.

The operation of automatic passenger counting systems requires some kind of data management software, and I have also developed many custom web-based software solutions to perform statistical data analysis and projections on collected APC data for public transit operators.

LED Displays

Exterior and Interior LED Displays...

While most of my passenger information projects were geared towards TFT displays, I also developed C++ software for interior and exterior LED displays for an embedded Linux platform.

Part of the work included the integration of such devices into IP-based networks, e.g. Bombardier MITRAC Control TCMS (IPTCom).

Data Management

Data analysis for modern transport planning...

The operation of automatic passenger counting systems requires some kind of data management software, and I have developed many custom web-based software solutions to perform statistical data analysis and projections on collected APC data for national and regional public transit operators.

While I have many years experience working in Java/JEE environments (using Tomcat or IBM Websphere), nowadays I prefer full-stack JavaScript/ES2018 with Webpack & Babel, using Node.js for back-end development and typically Vue.js for front-end development. However I have also experience with lots of other JavaScript libraries as well, e.g. Backbone, Semantic UI etc.

Typical features of such web applications included a powerful Business Intelligence (BI) reporting solution based on Map-Reduce methods, integration of external data warehouses (CERES, RailOpt, etc. on Oracle or SQL Server).

I also designed a novel algorithm for the matching of data runs from public transport vehicles against public transit route networks and schedule timetables. The algorithm uses dynamic programming methods based on the Viterbi algorithm, recursive automatons, quadtree optimizations, coordinate system transformations etc.

Infotainment Editor

Edit graphical infotainment content...

As senior software consultant responsible for the conception and development of an infotainment content editor for visual passenger information in commuter trains (project in California, Bay Area, for a leading train manufacturer).

The purpose of the software is to edit and style the graphical elements of the infotainment content, which is displayed on interior TFT displays in the train. The information presented is graphically very appealing and contains, among other things, a dynamic route map showing the current location of the train, with the current line being highlighted. The current position is identified by an arrow within a highlighted circle that pulses continuously.

The application is realized with web technologies as a cross platform desktop app based on the Electron framework. Technologies include SVG, Electron (Node.js, Chromium), JavaScript/ES2018, Vue.js, Element UI, electron-vue, Webpack, Babel, etc.

Contact me