Senior Software Engineer - DynaMIT

Reference: IRG_FM_2017_015
Date Posted: 09 March 2017
Group: Future Urban Mobility

Project OverviewThe Future Urban Mobility group at SMART are working on two related projects. SimMobility is a “next generation” transport network simulator that can be used by transport planners and academics to study the impact of any type of change on the transport network. One of the three main areas of the simulator is the “mid-term” simulator which models the movement of all vehicles on the network using mesoscopic models, and all the individual trips taken by passengers using behavioural route choice models. 

The second project is called DynaMIT, which uses similar models to the SimMobility mid-term, but runs in real-time. It makes short term predictions about the state of the transport network, such as the expected travel time, flows, and passenger trips taking place on the network. Both pieces of software act as a "test bed" for new transportation network models to be tested in the real world.  These models are developed by researchers at both SMART and MIT in Boston, USA. On both these projects SMART are collaborating with the Land Transport Authority of Singapore and using static and real-time data provided by the LTA. 

ResponsibilitiesWe are looking for an experienced C++ Senior Software Engineer to work on these projects. He/she will be responsible for the following:

• Work with the research scientists to turn a transport model into working code. Suitable candidates will also be encouraged to help design these models and have the chance to help write academic research papers.
• Write software code, primarily in C++.
• Supervise the work of junior members in their coding work.
• Ensure that the design and code is tested.
• Ensure that the code is properly documented.
• Support any demonstration of the software.

It should be noted that the primary responsibility of this position is with the DynaMIT 2.0 project.  However the successful candidate may also be required to work on the SimMobility project.

RequirementsThe candidate must be motivated, enthusiastic and:

• Have a Bachelors in any Engineering discipline.
• Must have at least 5 years programming experience in C++ on large scale projects.
• Knowledge of other languages such as Java, python, and GIS systems are desirable.
• Experience working with Linux.
• Basic knowledge of MATLAB is an advantage. 
• Able to work independently and design software given a technical specification from the research scientist.
• Should be a good team player.
• Background in transport engineering or simulation is a plus.

Interested applicants will have to submit their full CV/resume, cover letter and list of three references (to include reference names and contact information). We regret that only shortlisted candidates will be notified.