Nico Ritschel

I am a Ph.D. student 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 novices and allow them to create complex programs with minimal learning effort.

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 in Canada.


Novice-Friendly Multi-Armed Robotics Programming

Nico Ritschel, Reid Holmes, Ronald Garcia, and David Shepherd

Proceedings of the 2nd International Workshop on Robotics Software Engineering. ACM.


Netzstützende Speicherbewirtschaftung im Verteilnetz mittels der Speicherhandelsplattform SOLVER

Lukas Glotzbach, Nico Ritschel, Klaus-Martin Graf, and Johannes Gerdes

Kurzfassungsband des 14. Symposium Energieinnovation. Technische Universität Graz.


Modular capture avoidance for program transformations

Nico Ritschel and Sebastian Erdweg

Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering. ACM.



Teaching Assistant

University of British Columbia

Teaching assistant in lectures "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.

Since September 2017

Research Fellow

Hochschule Darmstadt,
Faculty of Electrical Engineering and Information Technology

Full-time research fellow in project “Flex4Energy” in cooperation with two Fraunhofer Institutes (IESE and ISE) and industry partners.

Responsible for design and specification of communication interfaces and 
 algorithms for a distributed market platform for power resources in energy grids.

January - August 2017,
September - December 2015

Teaching Assistant

Technische Universität Darmstadt

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.

October 2016 - March 2017,
April - September 2015

Exchange Student Tutor

Technische Universität Darmstadt

Official university tutor and advisor for incoming exchange students.

Planning of events for incoming exchange students, academic advice for computer science students and support in issues regarding studying and living in Germany.

August - October 2016

Undergraduate Research Assistant

Hochschule Darmstadt,
Faculty of Electrical Engineering and Information Technology

Student research Assistant in project “Energy Storage Optimization in Local Distribution Grids (SolVer)” in cooperation with industry partners.

Responsible for development of interfaces for communication with a network-
 enabled battery, as well as back-end and front-end development for a prototype of a web-based energy storage trading platform.

April 2012 - August 2015


University of British Columbia

Ph.D. Computer Science
Software Practices Lab
Supervised by Reid Holmes and Ron Garcia
Since 2017

Technische Universität Darmstadt

M.Sc. Computer Science
Software Technology Group
Thesis "A Meta Representation for Reactive Dependency Graphs", supervised by Mira Mezini and Ragnar Mogk

Technische Universität Darmstadt

B.Sc. Computer Science
Thesis "Modular Hygienic Program Transformations", supervised by Mira Mezini and Sebastian Erdweg

Personal Interests

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.

From Spring 2018 to 2019, I took over the role of UDLS czar for the UBC Computer Science department. Over the year I held this honourable position, 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. In Spring 2019, I was elected as president of UBC's Computer Science Graduate Student Association (CSGSA).

Despite spending significant time in front of a screen for work, I still enjoy playing video games. I don't mind either calm or action-heavy games, as long as they also give me an interesting narrative experience. I am also an avid listener of several podcasts, preferably ones that take a more analytical behind-the-scenes perspective on interesting topics. In particular I enjoy the German podcasts The Pod and Stay Forever that talk about video game design and the industry that makes them, as well as Methodisch Inkorrekt that discusses selected papers and general developments in academic research outside of computer science.