I'm Dirk Raffel, a Freelance Software Consultant specialized in Public Transport & Passenger Information Systems
I am a graduate engineer in electrical engineering living in Berlin, Germany.
I have more than 20 years of professional experience as a senior software consultant, technical lead/architect and development manager in many areas such as: Public transport, railway systems engineering, rolling stock applications, passenger information systems, automatic passenger counting systems, infotainment, multimedia streaming, voice over IP and text-to-speech systems, and others.
I am a passionate software developer and architect for embedded systems development as well as full-stack web development (front-end and back-end) and development of cloud based services.
I support leading train manufacturers and suppliers worldwide during the entire V-model development life-cyle, including acceptance and integration. In addition, I also advise public transport companies on the development of individual software solutions, customer-specific adaptations and interfaces for systems integrations.
If you have any questions or would like to arrange a phone call, please feel free to contact me. I will answer you quickly.
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.
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, web or cloud-based development for your planned product or specific outsourced components. I have extensive experience in C++, Java/J2EE, full-stack JavaScript and various scripting languages.
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 and integration testing. I am experienced in the V-model development life cycle, in Agile and Scrum development methods and CI/CD.
Would you like to know more or just discuss something?
I have worked on dozens of projects so I have picked only the latest for you.
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++.
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 included development of Embedded Linux operating systems and application stack for the display of passenger information on many different LCD and TFT displays at train stations and the connection of the displays to the backend.
Agile environment (Scrum, Continuous Integration).
Technologies include Kubernetes, Docker, Helm, RabbitMQ AMQP, Buildroot Embedded Linux, C++14, GCC, CMake, Git, Gitlab CI, Kibana/OpenSearch, Prometheus, Grafana, Google Test Framework, Python, pytest, JSON schema, Electron (Node.js, Chromium), JavaScript/ES2018, Spectron, Playwright, Mocha, Chai, Webpack, Babel.
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 typically used for announcements in trains via the on-board audio system using the RTSP/RTP protocols.
A similar high-performance cloud-based streaming solution (deployed in a Kubernetes cluster) is used for the sound reinforcement of railway stations via VoIP gateways (such as Asterisk and Innovaphone) and VoIP-enabled loudspeakers (ELA systems) 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.
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.
As senior software consultant and development manager responsible for numerous international projects for the conception, complete development and integration of systems for automatic passenger counting (APC or "AFZS" in German) 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, Xovis, 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), IBIS-IP VDV-301 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.
A key component of such backend software solutions is the matching of the recorded vehicle movements (raw data) with the public transport company's route network and timetable. I have a lot of experience in designing and implementing such components using Dynamic Programming methods based on Viterbi algorithms, recursive automata, quad-tree optimizations, etc.
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).
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.
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.