Research Associate in Software Testing and Programming Languages

Job summary

We are seeking to hire one postdoctoral researcher interested in working at the intersection of software testing and programming languages. The successful candidate will work joint between the Software Reliability Group and the Multicore Programming Group, under the direction of Dr. Cristian Cadar and Dr. Alastair Donaldson. The research will focus on testing compilers for popular programming languages, and understanding the extent to which...

Job listing information

  • Reference ENG00096
  • Date posted 12 December 2017
  • Closing date 15 February 2018

Job description

Job summary

We are seeking to hire one postdoctoral researcher interested in working at the intersection of software testing and programming languages. The successful candidate will work joint between the Software Reliability Group and the Multicore Programming Group, under the direction of Dr. Cristian Cadar and Dr. Alastair Donaldson.

The research will focus on testing compilers for popular programming languages, and understanding the extent to which compiler bugs affect deployed programs. A particular focus of the research will be on bugs that are security-critical in nature, presenting a largely unexplored attack surface whereby software that is correct at the source level can nevertheless be vulnerable to exploitation when erroneously compiled into binary form.

The research will also aim to mitigate this threat at runtime by using novel multi-version execution techniques in which versions of the same program compiled by different compilers are run in parallel. These ideas will be investigated using a number of case studies, together with our industrial and academic partners, which would showcase the techniques of the project in concert.

Duties and responsibilities

The goal of this project is to investigate and design program transformations–both semantics-preserving and semantics-altering–that increase the scalability of symbolic execution. The techniques will primarily be implemented on top of the KLEE symbolic execution engine. You can refer to this paper for more details on the proposed research agenda. However, the project is broader than this, and provides significant freedom to the postdoctoral researcher to shape the course of the project.

Essential requirements

To apply, candidates will need to have a strong computing background, experience in building and working with large software testing tools, and proven knowledge in either software testing or practical aspects of programming languages (such as compiler design and implementation).

Candidates are also expected to have a proven research record and publications in the relevant areas. Applicants must have a PhD (or equivalent) in an area pertinent to the subject area. Excellent pre-doctoral candidates wishing to undertake doctoral studies in this research area will also be considered.

Candidates will have excellent communication skills and be able to organise their own work with minimal supervision and prioritise work to meet deadlines. All applicants must be fluent in spoken and written English.

For informal inquiries about this position please contact Dr. Cristian Cadar and Dr. Alastair Donaldson. For further information on the Software Reliability Group and and Multicore Programming Group, and related projects, see http://srg.doc.ic.ac.uk/ and http://multicore.doc.ic.ac.uk/.

*Candidates who have not yet been officially awarded their PhD will be appointed as a Research Assistant within the salary range £32,380 to £34,040 per annum.

Further information

In addition to completing the online application, candidates should attach:

  • A full CV including a publication
  • A two-page research statement indicating what you see are interesting research issues relating to the above post and why your expertise is
  • Transcripts of all higher-education degree
  • The names and contact information of two or three referees who can provide letters of

For queries regarding the application process contact Georgina Tennant (g.tennant@imperial.ac.uk)

Documents

About Imperial College London

Imperial College London is the UK’s only university focussed entirely on science, engineering, medicine and business and we are consistently rated in the top 10 universities in the world.

You will find our main London campus in South Kensington, with our hospital campuses located nearby in West and North London. We also have Silwood Park in Berkshire and state-of-the-art facilities in development at our major new campus in White City.

We work in a multidisciplinary and diverse community for education, research, translation and commercialisation, harnessing science and innovation to tackle the big global challenges our complex world faces.

It’s our mission to achieve enduring excellence in all that we do for the benefit of society – and we are looking for the most talented people to help us get there.

Additional information

Please note that job descriptions cannot be exhaustive and the post-holder may be required to undertake other duties, which are broadly in line with the above key responsibilities.

All Imperial employees are expected to follow the 7 principles of Imperial Expectations: 

  • Champion a positive approach to change and opportunity
  • Communicate regularly and effectively within, and across, teams
  • Consider the thoughts and expectations of others
  • Deliver positive outcomes
  • Encourage inclusive participation and eliminate discrimination
  • Develop and grow skills and expertise
  • Work in a planned and managed way 

In addition to the above, employees are required to observe and comply with all College policies and regulations.

Imperial College is committed to equality of opportunity, to eliminating discrimination and to creating an inclusive working environment. We are an Athena SWAN Silver award winner, a Stonewall Diversity Champion, a Disability Confident Employer and work in partnership with GIRES to promote respect for trans people.