Uppsala University, Department of Information Technology

Are you interested in working in programming languages or automated program verification with the support of competent and friendly colleagues in an international environment? Are you looking for an employer that invests in sustainable employeeship and offers safe, favorable working conditions? We welcome you to apply for a PhD position at the Department of Information Technology, Uppsala University. 

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, and 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.

The PhD position is hosted by the Division of Computing Science and specifically within the Programming Languages group that currently consists of 11 senior researchers and 9 PhD students that are working on different aspects of programming language design, program verification and software engineering. Beyond technical collaborations, the group meets regularly and provides an engaging and supportive environment.

Project description
The available PhD positions are within three projects that all aim to make it easier for developers to write safe, correct, and efficient programs. All projects will typically include both a theoretical part, developing new techniques and approaches, as well as implementations that can be practically used.

The first project targets specifically numerical programs that appear widely in e.g. safety-critical (embedded) systems, data analysis, weather forecasting, physics, and engineering. Verifying that such programs are correct is challenging because of rounding errors due to floating-point arithmetic. Possible research directions include developing new automated program verification techniques specifically for such programs, as well as specification inference and fault localisation approaches that would make such verifiers practical usable for real-world code. 

The second project is centered around memory safety and techniques for memory-safe programming. Memory bugs are extremely costly in development and create security holes in programs; managed languages avoid most such problems at the cost of additional run-time machinery and checking which can increase the footprint of a program or make it harder to reason about its performance. Languages like Rust offers memory safety without the additional run-time machinery, as long as programs can be expressed in its safe subset. Possible research directions include new type systems or static analyses that extend the range of memory-safe programming and new dynamic techniques for memory safety.
 
The third project is centered around concurrency safety. Managed languages offer memory safety and null safety, but most do not offer concurrency safety. This means that undefined behaviours are still possible and compilers may optimise programs in ways that surprise programmers and cause programs to go wrong in ways that are hard to debug and fix. This project is looking at ways to change how programming languages approach concurrency, and in particular take responsibility for correct concurrency. Possible research directions include new memory models, new dynamic techniques for detecting and handling concurrency errors, and new implementations of runtimes rethinking how concurrency is handled.

Duties 
A doctoral student will devote the time to graduate education mainly. The rest of the duties may involve teaching at the Department, including also some administration, to at most 20%.

Requirements 
Entry requirements for doctoral education are regulated in the Higher Education Ordinance. To meet the general entry requirements for doctoral studies, you must:

  • hold a Master’s (second-cycle) degree in computer science or a related field, or
  • have completed at least 240 credits in higher education, with at least 60 credits at Master’s level including an independent project worth at least 15 credits, or
  • have acquired substantially equivalent knowledge in some other way.

The University may permit an exemption from the general entry requirements for an individual applicant, if there are special grounds (Chapter 7, § 39 of the Higher Education Ordinance). For special entry requirements, please see the subject’s general study plan.

We are looking for candidates with:

  • a mathematical background
  • interest in one or more of the following: static and/or dynamic program analysis, programming language techniques (such as semantics, type systems, runtime systems, etc), formal verification, or software engineering,
  • excellent communication skills with sufficient proficiency in oral and written English,
  • good problem-solving skills,
  • proficiency in programming,
  • ability to work well both on their own and with others in a diverse group.

Additional qualifications
Experience and courses in one or more subjects are valued (with slightly different weights depending on project): static program analysis, dynamic analysis, program testing, program verification, program logics, programming language semantics, type systems, programming language implementation (e.g. compilers, runtimes, GC), software engineering, debugging.

Rules governing PhD students are set out in the Higher Education Ordinance chapter 5, §§ 1-7 and in Uppsala University's rules and guidelines.

Application
The application must include:

  1. a statement (at most 2 pages) of the applicant’s motivation for applying for this position, that should additionally include: a) the candidate’s research interests, b) evidence of the applicant’s self-motivation and ability to work in a group, c) a summary of their MSc thesis or a comparable major project, and d) the earliest possible starting date of employment;
  2. a CV;
  3. degrees and transcript of records with grades (translated to English or Swedish, e.g. as provided by universities);
  4. the Master’s thesis (or a draft thereof, and/or some other self-produced technical or scientific text), publications, and other relevant documents;
  5. contact information for at least two references (but no reference letter).

Promising applicants will be invited for an interview on-site before hiring.

About the employment
The employment is a temporary position according to the Higher Education Ordinance chapter 5 § 7. Scope of employment 100 %. Starting date 1 April 2026 or as agreed. Placement: Uppsala. 

For further information about the position, please contact: Associate Professor Eva Darulova, e-mail: eva.darulova@it.uu.se or Professor Tobias Wrigstad, e-mail: tobias.wrigstad@it.uu.se.

Please submit your application by 30 January 2026, UFV-PA 2025/3891.

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
First day of employment 2026-04-01 or as agreed
Salary Fixed salary
Number of positions 2
Full-time equivalent 100
City Uppsala
County Uppsala län
Country Sweden
Reference number UFV-PA 2025/3891
Published 12.Dec.2025
Last application date 30.Jan.2026
Login and apply

Share links

Return to job vacancies