Open Positions
The Software and Computational Systems Lab is constantly looking for research assistants. If you have good grades and are interested in research in the area of software verification, please consider the below positions. We offer flexible working hours, a shared workspace in our offices, and the chance to contribute to novel research in multiple areas of software verification.
To apply and to get more information, contact Evelyn Nawrath via mail.
Doctoral Researcher
If you have a Master degree in computer science or a related field and want to pursue a PhD, employment as a doctoral researcher allows you to do research and academic teaching full-time. We offer a strong academic environment and a comprehensive qualification program to our doctoral researchers. All positions are a full-time employment at TV-L E13. Our office space is in Munich, Oettingenstr. 67, with the opportunity for hybrid work according to prior agreement.
🔬 Doctoral Researcher on Formal Methods/Automated Software Analysis
We are currently looking for a doctoral researcher for an open position at our chair. Feel free to reach out to us to get more information and to apply.
See our research and publications for potential research directions.
🔬 Doctoral Researcher on Cooperative Software Verification
We are currently looking for a doctoral researcher in our DFG project on Cooperative Software Verification. Feel free to reach out to us to get more information and to apply.
The aim of software verification is the assurance of high-quality software, in particular absence of unintended and erroneous behavior. Today, a range of different tools provide software-analysis techniques, covering the whole area from static and dynamic analysis to model checking. All of these techniques have their individual strengths and weaknesses. The goal of this research project is the enhancement of precision and performance in software verification by cooperation between different verification tools and techniques. Cooperative software verification requires (1) options for exchange of information between verification tools and sound usage of such information and (2) techniques for the decomposition of verification tasks to solve them in parallel and by different tools. Based on the results of the first project phase, the project will in particular investigate techniques for enhancing efficiency and effectiveness of cooperative verification as well as improving its usability. The focus of the project remains on the combined development of a methodology and theory of cooperation. All approaches developed in this project will be thoroughly evaluated using experiments on large benchmark sets, and the project will also contribute new benchmark sets to the community.
Student Research Assistant
Our job positions target students with a place of residence (Wohnort) in Germany. If this does not apply please still contact us - we may organize a student exchange or internship.
🔬 Autonomous Driving Software Testing
Languages: German and English
🔬 BenchCloud: A Cloud Platform for Benchmarking
Required Skills:
- Java programming
- Basic Linux knowledge
Useful knowledge/areas of interest:
- Software Verification
- Web technologies
- Parallel programming
The employment is as a student assistant (HiWi), whereby the number of hours per week can be flexibly adjusted (but should not be less than 5 hours per week). The working hours can be arranged flexibly. A long-term cooperation over several semesters is generally desired from our side. If you are interested or if any questions are left, please contact us directly via Zulip or mail.
Languages: German and English
🔬 CPAchecker: The Configurable Software-Verification Platform
Required Skills:
- Java programming
- Basic Linux knowledge
- First experiences with formal methods in software verification
Useful knowledge/areas of interest:
- Software Verification
- Interest in research and experimenting
The employment is as a student assistant (HiWi), whereby the number of hours per week can be flexibly adjusted (but should not be less than 5 hours per week). The working hours can be arranged flexibly. A long-term cooperation over several semesters is generally desired from our side. If you are interested or if any questions are left, please contact me directly via Zulip or mail.
Languages: German and English
🔬 Algorithms for Distributed Software Verification
We aim to scale software verification through a distributed algorithm that continuously refines formal summaries of program code. In this role, you are part of a small team that designs and develops algorithms, abstract domains, and microservices to scale code analysis across large codebases and hundreds of workers. Our focus is on adapting existing practices in software verification to a distributed setting and on the development of efficient algorithms for information exchange and code-block analysis.
This job is for you, if:
- you proud yourself with high-quality code
- you are enthusiastic about the safety of software and the static analysis of code
- you are interested in the formal methods of software analysis (for example automata, graphs, C semantics, program abstractions)
- you enjoy designing algorithms and debugging code in-depth to fully understand it, in a highly autonomous work setting
Required Skills:
- Programming experience in Java, Kotlin, or C++
- Basic knowledge in code analysis and/or software verification (example: lectures on formal specification and verification).
Employment: The employment is as a student assistant (HiWi) with 7 to 20 hours per week. The day and time of work can be arranged flexibly in certain bounds. A long-term cooperation over several semesters is generally desired from our side.
Languages: German and English
Please contact us via Zulip or mail. We're always available for questions.
🔬 Bridging Hardware and Software Analysis
Background: Computational systems consisting of both hardware and software components are used everywhere in modern society. The correctness assurance of theses systems is thus an indispensable research area. In this project, we aim at utilizing the joint knowledge of both hardware and software verification communities by
- optimizing the applicability of software analyzers to hardware designs,
- constructing a framework that facilitates the utilization of off-the-shelf hardware analyzers for software, and
- combining strengths of hardware and software verification algorithms to solve practical problems.
Job description: We are looking for students that can assist us in the following tasks.
- Develop and optimize the translation flow of CPV
- Extend the model checker MoXIchecker
- Incorporate more hardware verifiers into our benchmarking framework
- Implement a Btor2 parser in Python
- ... and more!
Requirements:
- Programming experience in C/C++ and Python
- Basic Linux skills
- Knowledge in formal verification and testing
Employment: The employment is as a student assistant (HiWi) with 7 to 20 hours per week. The day and time of work can be arranged flexibly in certain bounds. A long-term cooperation over several semesters is generally desired from our side.
Languages: English
Supervisors: Po-Chun Chien and Nian-Ze Lee
Tutorship
Die Suche für Tutorinnen und Tutoren für das Wintersemester 26/27 ist abgeschlossen. Falls du Interesse an einer Tätigkeit als Tutorin oder Tutor bei uns hast, melde dich trotzdem bei mir, damit wir dich für das Wintersemester oder das nächste Sommersemester vormerken können. Typische Tutorjobs für die wir jedes Jahr engagierte Studierende suchen findest du unten. Außerdem suchen wir HiWis für unsere Projekte.
📝 Softwareentwicklungspraktikum Java (SEP-Java)
Tätigkeit:
Für unser Softwareentwicklungspraktikum Java (SEP-Java) suchen wir noch Tutor:innen. Du kannst gut Java programmieren, möchtest dein Wissen weitergeben und dich selbst weiterentwickeln? Dann hast du hier die Möglichkeit, mitzugestalten. Im Rahmen deiner Arbeit übernimmst du die eigenständige Betreuung von üblicherweise 2 Gruppen mit je 5 Studierenden. Du unterstützt sie durch technische und organisatorische Beratung. Die Tutorentätigkeit wird bezahlt und kann für das Modul "Fachübergreifende Kompetenzen" im Studium angerechnet werden.Ablauf des Praktikums:
Das Praktikum ist in 2 Phasen eingeteilt: Bis 16. Juni läuft die 1. Phase, in der die Studierenden Einzelaufgaben lösen müssen. Ab 16. Juni startet die 2. Phase, in der die Studierenden in Gruppen von etwa 5 Personen ein größeres Projekt in Java implementieren (meist ein Online-Spiel). Das Projekt läuft bis 21. Juli.Deine Aufgaben:
Während der ersten Phase erstellst du Code Reviews für die Abgaben der Studierenden in GitLab und gibst ihnen damit wertvolles Feedback. Während der zweiten Phase coachst du Studierenden-Teams, um ihnen zu einem erfolgreichen Projektabschluss zu verhelfen. Dazu triffst du dich einmal in der Woche mit deinen Teams, beurteilst den aktuellen Projektstand und unterstützt bei Fragen. Zusätzlich suchen wir Tutor:innen, die den Studierenden in Präsenzveranstaltungen individuelle Hilfstellungen bei der Programmierung geben (von Ende April bis 16. Juni immer Montag 12:15-13:45 Uhr).Dein Profil:
- Gute Noten im SEP-Java oder Praxiserfahrung in der objektorientierten Programmierung
- Spaß und Interesse, Verantwortung für Projektgruppen zu übernehmen
Vertrag:
Vertragslaufzeit ist vom 15.04.2025 bis 31.07.2025. Unterschiedliche Arbeitszeiten sind möglich, beispielsweise 9h/Woche zur Betreuung von 2 Gruppen oder 12h/Woche zur Betreuung von 3 Gruppen (bis maximal 18h/Woche). Bei Interesse melde dich unverbindlich mit deinem Transcript of Records und einem kurzen Satz zu deiner bisherigen Programmiererfahrung.Sprache: Deutsch
📝 Einführung in die Informatik (mit Python)
Wir können Dir einen der folgenden Verträge anbieten:
- Bei einer Gruppe: 9h / Woche
- Bei zwei Gruppen: 13h / Woche (Bei zwei Gruppen sind es in Summe etwas weniger Stunden, da das Tutorentreffen ja nur einmal anfällt.)
Vertragsbeginn: 01.10.2026 oder 15.10.2026, für 6 Monate
Sprache: Deutsch
📝 Formale Spezifikation und Verifikation
Vertragsdauer: 15.10.2025 bis 14.04.2026 (6 Monate) mit 9 Wochenstunden.
Sprache: Deutsch
📝 Softwaretechnik
Die Vertragsdauer beträgt 5 Monate (17.10.2024-15.03.2025) mit folgenden möglichen Arbeitszeiten:
- 9h / Woche für Aufgabenkorrektur, ohne dass du eine Übung hältst.
- 13h / Woche für Aufgabenkorrektur und eine wöchentliche, zweistündige Übung für Studentinnen und Studenten.
- 19h / Woche für Aufgabenkorrektur und zwei wöchentliche, zweistündge Übungen für Studentinnen und Studenten.
Sprache: Deutsch
