Support programmers to modify their own tools.

I am a PhD student at the Hasso Plattner Institute at the University of Potsdam. I am part of the Software Architecture group led by Prof. Dr. Robert Hirschfeld. Since October 2011, I have also been part of the HPI Research School after getting my Master's degree in Software Engineering at the HPI, too.

My research activities include the area of building graphical tools for programmers, especially data-driven ones for program comprehension tasks. For this, direct manipulation concepts, dynamic analysis, and cooperation of distributed teams in agile processes play an important role. Additionally, I investigate modularity concepts with respect to critical software quality metrics such as extensibility and maintainability while reasoning about interdependencies between languages and tools.


I like programming with Squeak/Smalltalk in live programming environments where run-time is omnipresent and feedback loops are short. There was a time when I programmed in C++ with the powerful Qt framework; I am still inspired by its ideas and patterns when I design recent projects in Smalltalk. I am very much into building tools for programmers that can be adapted to concrete domains, tasks or personal preferences in situ.

Squeak 5.1 Release

project is finished · started in 06/2015 · written in Squeak/Smalltalk

squeak-balloon-logo I am an active developer for the Squeak programming environment. I was the release manager for the 5.1 release, which can be found here. Notable contributions reside in several refactorings in the Morphic GUI framework, the project architecture, and the introduction of user interface themes for all programming tools in the environment.

The Squeak Shell

project is active · started in 02/2016 · written in Squeak/Smalltalk

squeak-shell There is a mechanism in Squeak that supports having multiple graphics frameworks running. At the time of writing, there was the older Model-View-Controller (MVC) framework and the new Morphic. That mechanism is called Projects. I used it to create a minimal command-line interface: the Squeak Shell. It can be used to replace Morphic or MVC when debugging self-inflicting bugs or when developing native Squeak/Smalltalk applications.

We published a paper about the process of bootstrapping new GUI frameworks in such self-supporting programming environments.

You can install the Squeak Shell in Squeak 5.1 by evaluating the following code snippet in a workspace: Installer swa project: 'SqueakShell'; install: 'SqueakShell'.

Maintenance of Squeak's Morphic Framework

project is active · started in 06/2014 · written in Squeak/Smalltalk

I do like the way of programming in Squeak with Smalltalk. This includes the interactive means of Morphic to compose and debug graphical applications. Yet, there have been many deficiencies accumulated in the source code, especially when comparing it with frameworks for other programming languages.

I started to look into the code with the goal to make the programming interface more consistent while fixing (serious) bugs along the way. New features that turned out to be valuable, even for the programming experience in Smalltalk, are on my list as well.

In Squeak 5.1, for example, I traced down a severe bug in Morphic's layouting code. I also refactored the input event dispatching code and introduced event filters to improve the implementation of cross-platform keyboard shortcuts. Unfortunately, Morphic's code base is poorly tested and there is much room for improvement. In this process, the Squeak community is really valuable to collect feedback and further improve the code. The latest efforts include user interface themes and hence the option to make tools fit your colorful programming needs.

The VIVIDE Programming Environment

project is active · started in 03/2011 · written in Squeak/Smalltalk

vivide-logo We created a framework in Squeak/Smalltalk that promotes low-effort construction of graphical tools. Given a data-driven perspective on programming environments, we encourage programmers to script domain-specific software artifacts to create and modify interactive, graphical content.

We published this project on GitHub and shared some screencasts on vimeo. We envision that every tool user can be a tool builder given some basic programming knowledge.

Squeak Community Projects

project is pending · started in 12/2010 · written in Squeak/Smalltalk

I am an active developer in several projects that extend the traditional Squeak programming environment and that aim to support programmers' productivity as well as their creativity. Projects range from educational use to professional programming activities.

The projects' original website is hosted here at the Hasso Plattner Institute. More recent updates on the projects and the source code can be found at GitHub.


project is finished · started in 06/2009 · written in Squeak/Smalltalk

In this project, we want to support distributed teams using agile software engineering methods such as Extreme Programming or Scrum. Basically, a huge tape manages user stories in chronological order grouped by iterations (sprints). The idea was that developers can log in to the system, take stories, work on them, finish them, track time, a.s.o. All collected data, e.g. time spent and completion state, can be shared among all developers of the distributed team.

There is a screencast on vimeo. This project is finished but more details can be found here.


project is pending · started in 10/2008 · written in Squeak/Smalltalk

codetalk CodeTalk allows developers to have conversations about source code artifacts. They can mark code sections they are concerned about and annotate them. These annotations provide entry points for an informal discourse about the strengths and weaknesses of these sections and developers can work towards a conclusion on how to proceed on the raised issues.

We published the project's sources here. More details about the underlying story can be found here and here.

UltraStar Manager

project is finished · started in 03/2008 · written in C++, Qt

Official Qt Ambassador This tools supports managing songs for UltraStar, a free karaoke game. It can be downloaded via SourceForge. Its features include lyrics editing, batch renaming, cover art downloading, interactive preview, report generation, and many more.

It is quite accepted by the community. Before Nokia decided to shutdown the program, I was an Official Qt Ambassador with this project. ;-) Watch a screencast about its main features on vimeo.

yaiiit! Issue Tracker

project is finished · started in 2008 · written in Squeak/Smalltalk, HTML, CSS

This application is a web-based bug tracker written in Squeak/Smalltalk with Seaside by Alan Bränzel, Michael Grünewald, Alexander Kuscher, Max Plauth, and myself in 2008. Visually, it resembles the Trac project a little bit.

Watch a screencast about its main features on vimeo. The source code is here.


project is finished · started in 2007 · written in Squeak/Smalltalk

sokobänban This game is a simple Sokoban clone for Squeak that was created during the Software Architctures lecture in 2007 by Alan Bränzel, Felix Elliger, Ralf Gehrer, Michael Grünewald, Alexander Kuscher, Christina Schwendy, and myself. It was used to be named Sokobänle according to the Swabian dialect of one of the team members. ;-)

An OLPC XO Squeak port available here.


poster1 poster2 poster3

poster4 poster5 poster6


This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.





2013 and earlier








Curriculum Vitae

There is a one-pager as PDF from June 29, 2016.

Professional Preparation

Since 2011Hasso Plattner Institute
University of Potsdam
Ph.D. Student
2006-2011Hasso Plattner Institute
University of Potsdam
B.Sc. / M.Sc. Software Engineering

Professional Appointments

PeriodEmployerJob TitleActivities
Since 2011Hasso Plattner InstituteResearch AssistantResearch and teaching on Programming Languages, Tools, and Environments
2009‑2011Hasso Plattner InstituteStudent Research AssistantDesign and development of research prototypes for Design Thinking, Agile Development, and Collaboration

Other Appointments


2017/18 Software engineering 1 BA course (topics: refactoring, refactoring to patterns)
2016/17 Software modularity BA seminar
Software architectures BA course (topics: modularity)
History of programming languages BA seminar
Software engineering 1 BA course (topics: refactoring)
2015/16 Programming language concepts, tools, and environments MA seminar
Introduction to Programming Techniques 1 BA course (topics: Java, Eclipse)
Software architectures BA course (topics: modularity, design patterns)
Module systems MA seminar
Aspect-oriented programming BA seminar
Software engineering 1 BA course (topics: refactoring)
2014/15 Context-oriented Programming MA seminar
Programming language concepts BA seminar
Software architectures BA course (topics: modularity, design patterns)
Self-sustaining systems MA seminar
Software engineering 1 BA course (topics: refactoring)
2013/14 Interactive Representations of Data Structures and Algorithms MA seminar
Introduction to Programming Techniques 1 BA course (topics: Java, Eclipse)
Software architectures BA course (topics: modularity, design patterns)
Software engineering 1 BA course (topics: refactoring)
2012/13 Advanced modularity BA/MA seminar
Module systems MA seminar
Software architectures BA course (topics: modularity, design patterns)
Programming language concepts, tools, and environments MA seminar
Acceptability-oriented programming MA seminar
Software engineering 1 BA course (topics: refactoring)
2011/12 Aspect-oriented programming BA seminar
Software architectures BA course (topics: modularity, design patterns)

Co-supervised Bachelor Theses

Co-supervised Master Theses

Scientific Community Participation

2017 Program committee member for PX/17.2 (Programming Experience)
Reviewer for INTERACT 2017 (Human-Computer Interaction)
Reviewer for Programming 2017 (Art, Science, and Engineering of Programming)
Program committee member for PX/17 (Programming Experience)
2016 Program committee member for PX/16 (Programming Experience)
Reviewer for OpenSym 2016 (Open Collaboration)
Reviewer for LASSY 2016 (Live Adaptation of Software Systems)
Reviewer for ENASE 2016 (Evaluation of Novel Approaches to Software Engineering)
2015 Reviewer for OOPS @ SAC 2015 (Symposium on Applied Comuting)
Reviewer for DLS 2015 (Dynamic Languages Symposium)
Reviewer for GI-DEC 2015 (Gesellschaft für Informatik - Digital Enterprise Computing)
Reviewer for MODULARITY 2015 (Modularity Visions Track)
2014 Reviewer for DLS 2014 (Dynamic Languages Symposium)
Reviewer for Onward! Essays 2014 @ SPLASH 2014 (Systems, Programming, Languages and Applications: Software for Humanity)
Reviewer for EST 2014 (Experimental Software and Toolkits in Elsevier Journal Science in Computer Programming)
Reviewer for GI-IT 2014 (Gesellschaft für Informatik - Informatiktage)
Reviewer for SEI 2014 (Software Engineering Ideen)
Reviewer for CSMR-WCRE 2014 (Conference on Software Maintenance and Reengineering, Working Conference on Reverse Engineering)
2013 Reviewer for CSC 2013 (International Conference on Cloud and Service Computing)
Reviewer for DLS 2013 (Dynamic Languages Symposium)
Reviewer for WASDeTT 2013 (International Workshop on Academic Software Development Tools and Techniques)
Reviewer for OOPSLA @ SPLASH 2013 (Systems, Programming, Languages and Applications: Software for Humanity)
Reviewer for ECOOP 2013 (European Conference on Object-oriented Programming)
Reviewer for AOSD 2013 (MODULARITY: aosd'13)
2012 Reviewer for DLS 2012 (Dynamic Languages Symposium)
Reviewer for Coordination 2012 (International Conference on Coordination Models and Languages)
Designer of the Conference Guide for AOSD 2012 (MODULARITY: aosd'12)
Reviewer for ECOOP 2012 (European Conference on Object-oriented Programming)

Collaborations and Other Affiliations

Publications (more)

Talks (more)

Site Notice (Impressum)

Marcel Taeumel
Wollestraße 44, 14482 Potsdam, Germany