Uppsala University, Department of Information Technology

The Department of Information Technology holds a leading position in both research and education at all levels. We are currently Uppsala University's third largest department, have around 350 employees, including 120 teachers and 120 PhD students. Approximately 5,000 undergraduate students take one or more courses at the department each year. You can find more information about us on the Department of Information Technology website.

 

Description of the subject area
Memory safety has emerged as the primary concern for cybersecurity. Memory safety is a property of programs that do not access nor manipulate memory in unintended ways. For example, memory-safe programs do not suffer unauthorised or invalid pointer access, use-after-free errors, double-free errors, or buffer overflows. Managed languages provide strong memory-safety guarantees through automatic memory management or ”garbage collection.” Concurrency safety refers to the property of a software system or program that ensures correct behaviour when multiple threads or processes execute concurrently. In other words, it ensures that the program behaves as expected even when multiple parts of it are running simultaneously – this involves for example data-race freedom, ensuring atomicity, and correctness under synchronisation. There are several examples of how these two aspects of computation can be tackled together, for example through Rust (completely statically) and Erlang (completely dynamically). In this project, we are looking into how to address both these concerns in imperative managed languages through modifications of the VM. Specifically, we will work with a major programming language vendor to make a mainstream programming languages concurrency safe by construction by adding a notion of ownership to the language runtime. Ownership will be enforced predominantly through run-time checks, for backwards compatibility with existing code. Efficient checking will be possible by piggybacking on existing constructs for concurrent garbage collection and will be co-designed with the concurrency model. At the end of the project, a whole class of concurrency bugs will be impossible in programs executing on-top of this run-time. 

Duties
Research in programming languages with close connection to hardware.
Design and implementation of concurrency models in a runtime system written in C++.
Supervision of PhD students and master students in the project and adjacent projects.
Physical and digital meetings with engineers and developers of the programming language.
Up to 20% teaching depending on interest and qualifications. 

Requirements
PhD degree in computer science or a foreign degree equivalent to a PhD degree in computer science. The degree needs to be obtained by the time of the decision of employment. Those who have obtained a PhD degree three years prior to the application deadline are primarily considered for the employment. The starting point of the three-year frame period is the application deadline. Due to special circumstances, the degree may have been obtained earlier. The three-year period can be extended due to circumstances such as sick leave, parental leave, duties in labour unions, etc.

The candidate must clearly document a high degree of self-motivation in the application. In addition, the applicant must be able to work well in a diverse group, be comfortable giving and receiving constructive criticism, and have strong abilities for critical thinking and structured work. These competencies are as important as the technical qualifications. Excellent skills in spoken and written English are required.

Additional qualifications
Candidates should have expertise in programming languages, ideally in concurrency safety. Experience with language design and implementation is a plus, but not a requirement as we have the expertise to teach these as part of the project. Documented experience with behaviour-oriented concurrency.

About the employment
The employment is a temporary position, 2 years. Scope of employment 100 %. Starting date as agreed. Placement: Uppsala.

Application
The application must include a statement (at most 2 pages) of the applicant’s motivation for applying for this position, including the candidate’s research interests and how they will support this project, a description of PhD thesis, and evidence of self-motivation and constructive teamwork. The application must include a CV, degrees and grades (translated to English or Swedish), a copy of the PhD thesis, publications (and specific descriptions of the candidate’s own contributions), other relevant documents, and the earliest possible starting date. At least one letter of recommendation and contact information for references should be provided directly by the references to Prof. Wrigstad.

 

For further information about the position, please contact: Professor Tobias Wrigstad +46 18 4711072 tobias.wrigstad@it.uu.se or Professor David Black-Schaffer, Ph. +4618 471 6830, david.black-schaffer@it.uu.se.

Please submit your application by 6 September 2024, UFV-PA 2024/2681.

Are you considering moving to Sweden to work at Uppsala University? Find out more about what it´s like to work and live in Sweden.

Type of employment Temporary position
Contract type Full time
Salary Individual salary
Number of positions 1
Full-time equivalent 100%
City Uppsala
County Uppsala län
Country Sweden
Reference number UFV-PA 2024/2681
Union representative
  • Seko Universitetsklubben, seko@uadm.uu.se
  • ST/TCO, tco@fackorg.uu.se
  • Saco-rådet, saco@uadm.uu.se
Published 14.Aug.2024
Last application date 06.Sep.2024 11:59 PM CEST

Return to job vacancies