I have recently completed my Ph.D. at the University of British Columbia, co-supervised by Reid Holmes and Ron Garcia. I do research that is on the brink of Software Engineering, Programming Languages and Human Computer Interaction. I am interested in both the theoretical foundations of programming but also the impact that programming languages and tools have on people. Currently, my research focuses on designing programming tools that target end-users without programming experience. By combining visual and block-based design elements, I try to extend the range of tasks they can solve without making it harder to learn these tools.
Before coming to Canada, I grew up in the beautiful city of Mannheim in Germany, and studied and worked in the not as beautiful but academically more promising city of Darmstadt. I finished my undergraduate education and my Master's degree at the Technische Universität Darmstadt. In Spring 2016 I went on an exchange term to Simon Fraser University where I had a unique chance to experience Canada both as a student and as a long-term tourist. About one year later, I moved to Vancouver to continue my studies
To be presented as poster at the International Conference on Software Engineering (ICSE).
Extended abstract (once available) .
To appear as full paper at the International Conference of Software Engineering (ICSE).
Pre-print; Supplementary materials.
Full paper at the conference on Object-oriented Programming, Systems, Languages (OOPSLA).
Paper; Pre-print; Supplementary materials (archived on Zenodo).
Full paper in the Journal of Software: Practice and Experience (SPE).
Paper; Pre-print.
Full paper in the Journal of Computer Languages (COLA).
Paper; Pre-print.
Poster at the International Conference on Software Engineering (ICSE).
Extended abstract; Pre-print.
Full paper in IEEE Transactions on Software Engineering (TSE).
Paper; Pre-print; Supplementary materials archived on Zenodo.
Designed, implemented and evaluated domain-specific software development tools that are usable by end-users without previous programming experience.
Created mock-ups and fully-functional prototypes of user interfaces and workflows.
Designed and conducted controlled experiments, interviews and surveys to evaluate effects on programming performance and satisfaction of end-users.
Analyzed the collected data quantitatively and qualitatively and performed statistical tests.
Visualized and presented findings in writing and gave talks for scientific and general audiences.
Sessional Instructor for the lecture "Advanced Software Engineering", an in-person course with 52 students.
Taught advanced software design and evaluation, as well as team-based development practices.
Held lectures, organized, mentored and assessed student teams, designed programming assignments, and successfully managed a team of 4 teaching assistants.
Achieved high student satisfaction (100% favourable end-of-term ratings; 4.6/5 overall score).
Teaching assistant for the lectures "Advanced Software Engineering", "Definition of Programming Languages", "Introduction to Compiler Construction" and "Software Construction".
Responsible for holding tutorial sessions and office hours; design and grading of assignments; grading of midterms and final exams.
Developed and evaluated a web-based energy trading platform as part of a commercial research project in collaboration with local energy suppliers.
Conducted formative interviews with interdisciplinary stakeholders to gather and formalize software and design specifications.
Created user interfaces and APIs based on domain and project requirements, and iteratively refined their design based on user studies and semi-structured interviews.
Teaching assistant in lecture “Concepts of Programming Languages”.
Responsible for holding tutorial sessions and office hours; design and grading of online programming exercises and support in creating tasks for the final exam.
University advisor for incoming exchange students.
Planned of events for incoming exchange students, gave academic advice for computer science students, and provided support on studying and living in Germany.
Research Assistant on the project “Energy Storage Optimization in Local Distribution Grids (SolVer)”.
Developed communication inferfaces and protocols for a network-enabled battery in a local distribution grid.
Supported back-end and front-end development of a web-based energy storage management platform.
Living in Vancouver fortunately gives me easy access to outdoor activities like running, hiking, snowboarding and camping. I have hiked a fair share of trails around Vancouver, but my proudest hiking achievement (and most stunning experience) was reaching to the top of the Half Dome in Yosemite Valley in the US. I also enjoy rock climbing, although I blasphemously prefer belayed indoor climbing over the multitude of outdoor climbing areas that are available close-by.
I have served as a student representative on several departmental committees, including Graduate Affairs, Graduate Recruiting and Faculty Hiring for Educational Leadership. From Spring 2018 to 2019, I was the UDLS czar of UBC's Computer Science department. During this time I have successfully begged bribed encouraged grad students and faculty to give a total of 33 undistinguished talks about anything they are interested in except their own research. From Spring 2019 to 2020, I was the President of UBC's Computer Science Graduate Student Association (CSGSA). For the following year, I was the CSGSA's VP Social. In 2023, I have co-hosted a puzzle hunt for the John's Hopkins Computer Science department with my partner.