Suppose you have a network of stations connected by one or more tracks. Trains move in this network following a schedule, which can be seen as a list of stations with a time of arrival and a time of departure (based on predicted running times).
'Conflicts' arise when trains are forecasted at the same time on non-shareable resources (such as tracks or platforms). Avoiding conflicts requires taking decisions such as changing a train's route, stopping it or delaying its departure. Each decision may, in turn, create other conflicts, which cause delays to propagate.
So which decisions should be taken to minimize delays? What is the best way for a train to get from A to C bypassing B? Should train 2 to wait for train 1's passengers or leave and miss the connection?
We answer these questions every day, using math and software engineering. If your mind is racing to identify the underlying problems and finding ways to solve them, you're the right person for us.
We're looking for experienced developers and math enthusiasts to join our 'tiger team'!
What should you know?
- C++ (ideally C++11) with some experience (at least 4-5 years)
- how to design data structures and algorithms
What are we happy if you know?
- boost libraries
- testing tools (bash scripting, unit test suites)
- project management tools (Jira, git)
- agile methodologies
- english (we work in an international environment)
What will YOU be happy for?
- great salary and bonus scheme
- great and collaborative R&D environment
- great opportunities to prove yourself and improve your problem solving and technical skills
- you will never get bored!
Hope to hear from you soon!
Back End Engineer, Full Stack Engineer, Big Data, Machine Learning, Data Scientist, Programmer