C Developper - Core Team Hardware

Job description

Railnova designs and operates an embedded computer called "Railster" and a railway analytics software called "Railfleet".  Currently more than 1100 "Railster" devices are mounted on trains and continuously transmit IoT data to Railnova servers. More than 2000 users use Railfleet every day.

Railnova's solution provides Railway Operators an industry leading remote monitoring and predictive maintenance solution.  

How it works: the Railster is safely connected to the train bus (such as MVB, Profibus, Can, RS485, but also RS232 and sensors), collects and analyses up to 6000 parameters from the train in near real time and sends it to the Railfleet Software. On Railfleet, users are presented a dashboard of open alerts where they can prevent failure, perform remote diagnostics without having to go on the locomotive, schedule maintenance pro-actively and optimise energy consumption.

Our clients include Railway Companies such as Akiem (France), BLS Cargo (Switzerland), DB Cargo (Germany), Lineas (Belgium), Nederlandse Spoorwegen (Netherlands), OBB (Austria), SBB Cargo (Switzerland),  SNCF Mobilités (France). 

Railnova's remote monitoring solution is compatible with Alstom, Siemens, Bombardier, Stadler, EMD, Vossloh locomotives and passenger trains as well as with major sub-components such as doors, diesel engine, or ERTMS, and provides an all-in-one solution which individual manufacturer are unable to achieve.

In 2018, Railnova launched the Railster 2, an IoT powerhouse based on Xilinx integrated CPU + FPGA architecture as well as our patented Universal Interface Ports, which enable on the fly software configuration of hardware layers and FPGA codecs, to adapt to any train bus without hardware modification.

To accompany our growth, we are looking for an experienced Embedded Developer on our new Railster 2 hardware platform.

Key Responsibilities

  • As a member of Embedded Software team, you develop on the embedded linux platform (operating system, internal apps, libraries and locomotive/data daemons) mostly in C. 
  • You are an excellent writer and you produce written progress updates as well as clean software documentation, user manual to facilitate implementation of new use cases.
  • You write clear and detailled issues, code reviews, pull requests and changelogs for release notes
  • You produce quality code and pay attention to good practices (defensive programming, error checking, ...)
  • You liaise with the professional service team and clients experts for specific train bus or component interfaces
  • Although you work in the R&D team, you have a strong client focus and you work closely with the sales team on client requirements and with the internal projects teams on electrical engineering, software engineering and supply chain, for delivering your apps and OS releases on time.


As an embedded programmer, you should at least:

  • Have a good knowledge of Linux, POSIX concepts and UNIX philosophy
  • Be comfortable with shell commands for your daily job
  • C system programming has no secrets for you :-)
  • You know well at least one dynamic language (Python, Lua, or alike)
  • You know how to use common data structures, algorithms, concurrency, i/o and memory allocation in these languages
  • You know your development tools (Git, make, unit tests, debuggers, tracers, serial consoles, ...)
  • You can communicate fluently in English (written and spoken)

In addition, experience in one ore more of the following domains is a plus:

  • Embedded distribution builder (like Buildroot, Yocto, ptxdist or others)
  • Linux kernel development
  • Microcontroller programming
  • FPGA design or integration with an OS
  • Experience with Wireshark and logical analysers 
  • General knowledge of industrial buses and protocols (MVB, CAN, J1708, J1939, RS232, RS485, FIP)
  • Cryptography, trust management and security in general

How to apply ?

Please submit your application by filling in the application form.

The Application happens in 2 steps:

Write Up: in the application form, please submit a short write-up (15 - 20 lines) describing why you want to work for Railnova why  you think Railnova will help you achieve more in your career. As most of the communication happens in writing at Railnova (we rarely have meetings so people can focus on doing their best work) we want to make sure you are a good and autonomous writer with this question.

Coding Exercise: once you have submitted your write-up, please do let us know if you intend to complete the Coding Excercise here https://gist.github.com/titouanc/1194a1d0e64a3a341f4466716b1696c9 . You can take a few days to complete the exercise and ask us any questions by responding to the confirmation email you will receive. We will only review applications and invite you for an interview once we receive your  code exercise. The coding exercise is as much a validation for you (so you know what to expect in your job at Railnova) as it is a validation for Railnova.