Hi, I‘m Christoph! I am a research student in software engineering with a strong passion for improving developer productivity. I have developed a conversational programming agent using GPT-4 and a back-in-time debugger for Squeak/Smalltalk, a VS Code extension to analyze downstream dependencies, and several other prototypes. As a core developer of Squeak, I contribute to several areas such as its code browsing and debugging tools. In my spare time, I also play jazz piano, am often out in nature, and am owned by two cats.
Contact: Email · LinkedIn · ResearchGate · GitHub
Experiences
-
Student Research and Teaching Assistant
Hasso Plattner Institute, Software Architecture Group
2019-08 – presentAs a student research assistant, I maintain and extend the Squeak IDE, support and conduct my own research projects on programming and debugging tools, and have co-authored a textbook on Squeak.
As a teaching assistant, I supervised a team of undergraduate students in a software engineering project and guided them through agile practices and technical issues.
Skills: Squeak/Smalltalk · OOP · Academic Writing · Agile Methods
-
Student Software Engineering Assistant
Museums of the Hasso Plattner Foundation
2020-08 – presentAt the HPF, I am responsible for maintaining and extending Barberini Analytics, a data mining and analytics platform that provides management and PR teams with business insights from data sources such as social media, review platforms, and the internal customer system.
Skills: Python · PostgreSQL · Basic Linux Administration
Education
-
M.Sc. IT-Systems Engineering
Hasso Plattner Institute
2021-04 – 2025-09 (expected)
Current average grade: 1.0 (very good)Highlighted courses: Programming Experience · Reverse Engineering · Advanced Programming Tools · Parallel Programming and Heterogeneous Computing · Neurodesign · Global Design Thinking Workshop
Master thesis (in progress): The Semantic Workspace: Augmenting Exploratory Programming with Integrated Generative AI Tools
-
B.Sc. IT-Systems Engineering
Hasso Plattner Institute
2017-10 – 2021-03
Final grade: 1.5 (very good)Highlighted courses: Project Management · Programming of User Interfaces · Agile Software Development in Large Teams
Bachelor thesis: Exploring Museum-Related Social Media Posts Using Aspect-Based Sentiment Analysis
Featured Projects
-
SemanticSqueak
2023-08 – present
Augmenting exploratory programming by integrating conversational and autonomous agents into Squeak. Also implemented the SemanticText framework for generative AI, semantic search, and an OpenAI API client. A scientific paper was presented at the Onward! 2024 conference.
-
trace4d
2023-04 – 2024-02
Research prototype to visualize program behavior through interactive, animated 2.5D object maps using Three.js and D3.js. Presented in a scientific paper at the IVAPP 2024 conference.
-
TraceDebugger
2021-10 – 2024-01
TraceDebugger is a back-in-time debugger for Squeak that aims to improve the navigation experience and immediacy during debugging. Among other things, I proposed a novel state-centric perspective and presented it in our scientific papers at the Programming Experience 2023 workshop and the Onward! 2023 conference.
-
Contributions to Squeak
2019-05 – present
Squeak is an interactive programming system for Smalltalk that is completely implemented in itself and promotes values such as flexibility, liveness, and explorability. I am engaging in the design and implementation of several subsystems, including tools for code browsing, debugging, and version control, the UI system, the exception handling system, and others. Since 2021, I am also a member of the core developers team. Working on a system of this complexity also gives me many opportunities to learn about common trade-offs such as compatibility and modularity, quality and quantity, or products and people.
Major accomplishments:
- Reworked the inspector tool family, added watch expressions, and designed a new extension API.
- Fixed several critical bugs in the debugging infrastructure and the exception handling system.
- Supported the Squeak 6.0 release, in particular by authoring the release notes.
-
Contributions to VBRegex
2020-03 – present
VBRegex is a regular expression engine for Squeak/Smalltalk that emphasizes an explorable implementation and a clean object-oriented design. I co-maintain the project and have contributed several bug fixes and new features such as named capture groups (
(?<name>)
, lookarounds ((?<=)
etc.), match resets (\K
), and others. I also built a visualization tool to explore the matcher‘s behavior. -
SimulationStudio
2021-05 – present
SimulationStudio exploits the flexible nature of Squeak‘s call stack model and provides a framework for fine-grained control of the execution through code simulation. Building on this, SimulationStudio offers a sandbox for isolated execution and multiple tools for the behavior-centric exploration of classes and objects.
-
Downstream Repository Mining
2021-04 – 2022-04
I developed a VS Code extension in TypeScript that collects downstream dependency projects for npm packages from GitHub & Co. and allows package developers to analyze usage samples from their IDE. I presented the tool and the underlying approach in our scientific paper at the ENASE/2022 conference.
-
Sonyx
2021-04 – 2022-05
Sonyx is a research prototype that attempts to support exploratory programming tasks through the use of auditory displays. Programmers can define custom ad-hoc sonifications of individual program elements to inspect and monitor their source code. Our user study indicated that auditory displays can make programmers more satisfied and effective.
Publications
- Christoph Thiede. 2024. The Semantic Workspace: Augmenting Exploratory Programming with Integrated Generative AI Tools. Master’s Thesis. Hasso Plattner Institute, 161 pages. Defense slides/defense blog post.
- Christoph Thiede, Marcel Taeumel, Lukas Böhme, and Robert Hirschfeld. 2024. Talking to Objects in Natural Language: Toward Semantic Tools for Exploratory Programming. In Proceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! ’24), October 20–25, 2024, Pascadena, California. ACM, New York, NY, USA, 17 pages. DOI: 10.1145/3689492.3690049. Slides/Poster/Transcript.
- Christoph Thiede, Willy Scheibel, and Jürgen Döllner. 2024. Bringing Objects to Life: Supporting Program Comprehension through Animated 2.5D Object Maps from Program Traces. In Proceedings of the 15th International Conference on Information Visualization Theory and Applications (IVAPP 2024), February 27–29, Rome, Italy. SciTePress, 9 pages. DOI: 10.5220/0012393900003660. Preprint/Poster/Slides.
- Christoph Thiede, Marcel Taeumel, and Robert Hirschfeld. 2023. Time-Awareness in Object Exploration Tools: Toward In Situ Omniscient Debugging. In Proceedings of the 2023 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! ’23), October 25–27, 2023, Cascais, Portugal. ACM, New York, NY, USA, 14 pages. DOI: 10.1145/3622758.3622892. Slides.
- Christoph Thiede and Patrick Rein. 2023. Squeak by Example. 6.0 Edition. ISBN: 978-1-4476-2948-1. Paperback/PDF.
- Christoph Thiede, Marcel Taeumel, and Robert Hirschfeld. 2023. Object-Centric Time-Travel Debugging: Exploring Traces of Objects. In Companion Proceedings of the 7th International Conference on the Art, Science, and Engineering of Programming (<Programming>’23 Companion), March 13–17, 2023, Tokyo, Japan. ACM, New York, NY, USA, 7 pages. DOI: 10.1145/3594671.3594678. Slides.
- Christoph Thiede, Willy Scheibel, Daniel Limberger, and Jürgen Döllner. 2022. Augmenting Library Development by Mining Usage Data from Downstream Dependencies. In Proceedings of 17th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE 2022). 221–232. DOI: 10.5220/0011093700003176. Slides.
- Christoph Thiede and Patrick Rein. 2021. Squeak by Example. Vol. 5.3.1.
Talks
- SemanticText: Improving Exploratory Programming in Squeak with Generative AI. On UKSTUG Online Meeting: Christoph Thiede on SemanticText and Guille Amaral on Webside, November 27th, 2024. UK Smalltalk User Group, online.
- Wie kann dir eine KI beim Explorieren der Objekte zur Seite stehen? (How Can AI Support You While Exploring Objects?) On Squeak Meeting 2024, November 2, 2024. Squeak e.V., Potsdam, Germany.
- Wie kann eine KI die Squeak-Mailingliste zusammenfassen? (How Can AI Summarize the Squeak Mailing List?) On Squeak Meeting 2023, November 4, 2023. Squeak e.V., Potsdam, Germany.
- Zurück in die Zukunft: Back-in-time-Debugging in Squeak (Back to the Future: Back-in-Time Debugging in Squeak). On Squeak Meeting 2022, November 19, 2022. Squeak e.V., Potsdam, Germany.
- Finden statt Suchen: Der Method-Finder wird abgesichert (Don’t Search, Find: Securing the MethodFinder). On Squeak Meeting 2022, November 19, 2022. Squeak e.V., Potsdam, Germany.
- Auditory Displays in Programming. On Making Things Audible, March 5–6, 2022. ACUD MACHT NEU, Berlin, Germany.
- Squeak Inbox Talk: Social Coding Made Easy. On Squeak Meeting 2021, December 4, 2021. Squeak e.V., Potsdam, Germany.
- It’s Broken! How To Debug the Debugger. On Squeak Winter Demos, March 6, 2021. Squeak e.V., Virtual.
- Social Media? A Telegram Bot for Squeak. On Squeak Winter Demos, March 6, 2021. Squeak e.V., Virtual.
Philosophy
I am striving to base my work on the following values:
- Agile: Engineering should be fun, but rigid processes aren‘t! Just as slow feedback loops in your IDE can get you tired and risk-averse, delayed human feedback can also be deadly for any project. In my projects, I always seek to stay flexible and give and receive feedback as early as possible by developing incremental prototypes.
- Eat your own dogfood: The best way to develop a product is to learn from your own experiences with it and make it better. For example, I have used the TraceDebugger to fix some bugs inside its own program tracer, which also led me realize the need for a new query mechanism in the debugger that I later implemented.
- Openness by default: Black boxes are mean, whether on an implementational or organizational level. Transparent artifacts teach us, inspire us, and they can avoid annoying communication overhead. Whenever possible, I document and publish each of my projects.
- Talk to people, not to machines: Code should always tell us a story and not be obfuscated by premature optimizations. In 90% of all cases, readability matters more than performance. In the remaining 10%, I make sure to document my intentions.
- Kaizen (改善, change for the better): There is no perfect process, so reflection and improvement should be part of every process. In particular, I also apply kaizen to my own philosophy. :-)