I'm interested in making the software we all use faster, safer and more reliable by building better compilers and programming tools.
I currently work for Apple on LLVM where I create tools for creating and debugging software. I am located in Stockholm (Sweden).
You can reach me under teemperor(AT-AT)gmail.com.
You can find my CV below (or here as a two page PDF).
I actively work on parts of the LLVM compiler infrastructure since 2016. All my patches can be found under my LLVM Phabricator account (list of my git commits).
- Since 2019 I am modernizing the Objective-C, C and C++ debugging support in Apple's developer toolchain which is based on LLVM, Clang and LLDB. This involves everything from debug info generation in Clang to parsing, representing and using that debug information in LLDB.
- As part of my master thesis I developed LLDB's new expression evaluation mode based on C++ modules. My talk at the 2019 LLVM developers' meeting gives a good overview of the project.
- I worked on the module system in Clang which forms the basis for Clang's own module system, Objective-C modules and recently the modules as specified by the C++20 standard.
- I created Clang's clone-detection framework and the static analyser passes that use the framework to find semantic bugs. See my related LLVM developers' meeting talk
I was a technical student at the European Organization for Nuclear Research (CERN) where I built a faster parser for the Cling C++ interpreter based on Clang's module system. The Cling interpreter is part of the ROOT data analysis framework: https://root.cern
I was part of the W3 group that specified the WebAssembly standard and created one of the first WebAssembly implementations for my undergrad thesis. My WebAssembly runtime also featured reverse-execution and fast cycle detection for deterministic programs.
During my undergraduate studies I was on the core developer team of the popular Linux distribution elementary OS that was making open source computing accessible to people with limited computer skills.
cif - (type-based) Clang information flow
As part of the language-based security project at Chalmers I created Cif, an extension to the C++ type system that allows annotating and enforcing information flow. See the presentation slides and my course report.
Chalmers University, Sweden (2016 - 2019)
M.S., Computer Science - algorithms, languages and logic programme
Final average grade: 4.7 (Grading scheme: 5 - best grade, 3 - lowest passing grade)
Kempten University of Applied Science, Germany (2013 - 2016)
B.S., Computer science
Final average grade: 1.5 (Grading scheme: 1 - best grade, 4 - lowest passing grade)
Some misc. writing and publication work:
A WebAssembly Interpreter with Integrated Debugging Capabilities
Supervisor & Examiner: Prof. Dr.rer.nat. Ulrich Göhner
Bachelor's thesis, Kempten University of Applied Science, April 2016
The halting problem in real-world programs
Technical Reports in Computing Science No. CS-01-2015 (Kempten University of Applied Science)
I did the evaluation/benchmarking work for the following paper (not an official author but listed in the acknowledgements).
Optimizing ROOT's performance using C++ Modules.
Journal of Physics: Conference Series. Vol. 898. No. 7. IOP Publishing, 2017.
Reviewing for conferences:
I was an external reviewer for the 2020 LLVM Developers' meeting. I also externally reviewed selected submissions for WebConf'19, IEEE SP 2019 and POST 2019 (which was made possible by my professor at Chalmers Andrei Sabelfeld).
I sometimes give talks at LLVM developer meetings which are usually recorded (see the links below).
I am actively involved in organising Google Summer of Code at the LLVM project and mentoring students during their projects. In 2017 I represented LLVM at the Google Summer of Code mentor summit. The students I mentored in past years are:
(Not listed: Four GSoC 2021 students which aren't officially accepted as of now).
- Gongyu Deng (Shanghai Jiao Tong University), 2020
- Shu Anzai (The University of Tokyo), 2020
- Yuka Ikarashi (nee Takahashi) (MIT, The University of Tokyo during the GSoC project) 2017
Most of my studies were made possible because of several generous people, organisations and other programs such as:
The LLVM foundation for granting me a travel stipend to visit the 2017 LLVM Developers' Meeting and present my talk.
The LLVM foundation for granting me a travel stipend to visit the 2016 LLVM Developers' Meeting and present my talk.
The Google Summer of Code 2016 program for the stipend that allowed me to work on Clang's clone detection framework.
The Boost Steering Committee for greanting me a travel stipend to visit, talk and volunteer at the C++now 2016 conference.