Download CV as PDF

Zuletzt aktualisiert Oktober 2024. Last updated in October 2024. Get the latest version at https://www.onsetsu.github.io/cv.html.

Stefan Ramson

Stefan Ramson
  • PhD Student
  • Fachgebiet Softwarearchitekturen Software Architecture Group
  • Hasso-Plattner-Institut Hasso Plattner Institute

Area of Expertise Überblick

Since 2011, I have been building elaborate Web applications, including interactive software visualizations, physics simulations, and full-fledged integrated development environments. Through this work, I acquire an in-depth understanding of various Web technologies and a diverse arsenal of tools, techniques, and workflows to solve problems. Further, I am a strong advocate for continuously improving and adapting the tools I work with, applying this philosophy to input devices, editors, programming systems and languages. As a researcher, I designed, implemented and evaluated programming tools and language extensions, with a focus on live and exploratory programming, reactive programming, and dynamic program adaptation.

german version

Berufserfahrung Working Experience

since 2015 Wissenschaftlicher Mitarbeiter, Fachgebiet Softwarearchitekturen, Hasso-Plattner-Institut, Potsdam Research Assistant, Software Architecture Group, Hasso Plattner Institute, Potsdam

2017 Softwareentwickler, Freelancer Software Developer, Freelance

2012 Studentischer Mitarbeiter, Fachgebiet Computergrafische Systeme, Hasso-Plattner-Institut, Potsdam Research Assistant, Computer Graphics Systems, Hasso Plattner Institute, Potsdam

Picture of Lively4 Lively4
79 people, 9 years
Lively4 is a web-based development environment and application platform. It is self-sustaining and live in that applications and tools to create them exist in one environment. Both can be adapted while being used. Lively4's community embraces a wiki-like spirit, meaning everybody is encouraged to change aspects of Lively4 to suit their needs and share their adaptations with others.
  • Designed core features of Lively4 and contributed to the inital version, supervising a team of 10 people
  • Oversaw numerous teams of master students working on various applications in or core aspects of Lively4
  • Co-maintained the project for over 9 years
Picture of Active Expressions Active Expressions
18 people, 8 years
Active Expressions allow developers to react to changes in any object-oriented expression in state-of-the-art languages. In contrast to most reactive programming concepts, Active Expressions leverage the existing expressiveness of the host language and builds upon it: Developers use ordinary variables, properties, and expressions to specify dependencies.
  • Designed core aspects of Active Expressions and implemented multiple versions in JavaScript
  • Oversaw 4 teams of master students to work on other implementations in Python, Squeak/Smalltalk, and JavaScript
  • Supervised 12 Students to work on supporting technologies, including debugging tools, editor watch integrations, and graphical connectors
Picture of Plugin Explorer and Debugger Plugin Explorer and Debugger
5 people, 2 years
The Plugin Explorer is a live editor specifically designed towards the task of writing and adapting source code transformations, here babel.js plugins. Developers can explore and correlate input and output examples visually and apply instant changes. Further, a back-in-time debugger allows developers in inspect the entire transpilation of an example input.
  • Designed core features and workflows for the Plugin Explorer
  • Co-implemented and maintained the project
  • Supervised corresponding master students' projects
Picture of Floom Floom
1 person, 2 years
Floom is an interactive fluid simulation, implementing the hybrid Material Point Method using both particles and a grid. Floom supports different computational models and multiple materials. On the fly, you can dynamically apply forces, add or remove particles, change material parameters, and even switch between models.
  • Designed and implemented the simulation, editing tools, and debug support
Picture of Pronto Pronto
13 people, 2 years
Pronto is a rapid prototyping tool for designing game mechnics based on the Godot game engine. Pronto fosters quick assembly of game logic by overlaying the game scene with visual behaviors. These behaviors can be connected using drag-and-drop interactions.
  • Co-designed core features of Pronto
  • Supervised 5 teams of master students to iteratively improve Pronto

Bildung Education

seit 2015since 2015 PromotionsstudiumPh.D. Student

Hasso-Plattner-Institut, Digital Engineering Fakultät, Universität PotsdamHasso Plattner Institute, Digital Engineering Faculty, University of Potsdam
Thema: Meine Doktorarbeit schlägt Active Expressions vor, eine Spracherweiterung, die Reaktivität zu modernen Programmiersprachen hinzufügt. Mit Active Expressions als neue Abstraktion zur Erkennung von Änderungen können Entwickler:innen von reaktiven Programmierkonzepten deren Integration in die Host-Sprache vereinfachen und sich darauf konzentrieren, wie auf Änderungen reagiert werden soll.Topic: In my thesis, I present Active Expressions, a language extension that adds reactive capabilities to state-of-the-art programming languages. Active Expressions provide a shared foundation for reactivity in object-oriented languages, allowing system developers to create novel reactive programming concepts without dealing with the technical necessities of change detection.
Titel der Doktorarbeit: “Active Expressions: Basic Building Blocks for Reactive Programming”Doctoral Thesis: “Active Expressions: Basic Building Blocks for Reactive Programming”
Betreuer: Robert Hirschfeld, Hasso-Plattner-Institut, Universität PotsdamAdvisor: Robert Hirschfeld, Hasso Plattner Institute, University of Potsdam

Master 2015 M. Sc. IT-Systems Engineering

Hasso-Plattner-Institut, Universität PotsdamHasso Plattner Institute, University of Potsdam
Note: 1,1 (mit Auszeichnung)Grade: 1.1 (distinction)
Studienumfang: Software-Design, Modulsysteme, Dependable Systems, Parallele Programmierung, Eingebettete Systeme, Robotics, Regelungs- und Steuerungstechnik, Data Mining and Cleansing, Probabilistic Reasoning, Softwarevisualisierung, IT-Recht, Kommunikation, LeadershipCoursework: Software Design, Module Systems, Dependable Systems, Parallel Programming, Embedded Operating Systems, Robotics, Control Engineering, Data Mining and Cleansing, Probabilistic Reasoning, Software Visualization, IT Law, Communication, Leadership
Titel der Masterarbeit: “Dynamische Constraints und Reaktives Verhalten – Werkzeuge zur Praktischen Anwendung von Objektconstraintprogrammierung”Thesis Topic: “Scoped Constraints and Reactive Behavior – Towards a practical Constraints Programming Tool”
Note der Masterarbeit: 1,0Grade of Thesis: 1.0
Masterprojekt: Piggyback Profiling: Metadata for Query ResultsFinal Year Project: Piggyback Profiling: Metadata for Query Results

Bachelor 2012 B. Sc. IT-Systems Engineering

Hasso-Plattner-Institut, Universität PotsdamHasso Plattner Institute, University of Potsdam
Note: 1,3 (sehr gut)Grade: 1.3 (very good)
Studienumfang: Softwarearchitektur, Softwaretechnik, Modellierung, Mathematik, Betriebssysteme, Datenbanksysteme, Designing Interactive Systems, Internet-Technologien, Grundlagen digitaler Systeme, Theoretische Informatik, 3D-Computergrafik, Künstliche Intelligenz, Modellgetriebene Softwareentwicklung, Prozessorientierte Informationssysteme, Ökonomische und rechtliche GrundlagenCoursework: Software Architecture, Software Technology, Modeling, Mathematics, Operating Systems, Database Systems, Designing Interactive Systems, Internet-Technologies, Foundations of Digital Systems, Theoretical Foundations, 3D-Computer Graphic, Artificial Intelligence, Modeldriven Software Development, Process oriented Information Systems, Economic and Legal Bases
Titel der Bachelorarbeit: “Analyse und Vergleich von WebGL-Frameworks zum webbasierten Rendering massiver Graphstrukturen”Bachelor's Thesis Topic: “Analysis and Comparison of WebGL Frameworks for Web-Based Rendering of Massive Graph Data-Structures”
Note der Bachelorarbeit: 1,0Grade of Bachelor's Thesis: 1.0
Bachelor-Projekt: “Graphvisualisierungs-Framework zur Exploration von Softwareanalysedaten”Final Year Project: “Graphvisualization-Framework for the Exploration of Software Analysis Data”

Abitur 2009 Allgemeine Hochschulreife “Abitur”Higher Education Entrance Certificate “Abitur”

Johann-Wolfgang-von-Goethe-Gymnasium Pritzwalk
Leistungskurse: Mathematik, PhysikAdvanced Courses in Mathematics and Physics
Note: 1,0 (sehr gut)Grade: 1.0 (distinction)

Technologies

Programming Languages

JavaScript (Expert), Smalltalk (Advanced), Python (Intermediate), GDScript (Intermediate), Java (Intermediate), SQL (Intermediate), C++ (Intermediate), Ruby (Basic)

Frameworks and Technologies

Babel.js (Expert), CodeMirror (Expert), HTML5 (Expert), CSS3 (Expert), Web Components (Advanced), three.js (Advanced), d3.js (Advanced), jspdf (Advanced), Godot (Intermediate), openai API (Intermediate), Tree-sitter (Basic), Unity (Basic)

Tools

Git (Advanced), Travis CI (Intermediate), GitHub Actions (Intermediate)

Stipendien / AuszeichnungenAwards / Scholarships

2024 Editors' Choice Award 2024 der Fachzeitschrift “The Art, Science, and Engineering of Programming” der AOSA, Inc. AOSA, Inc.

für den Artikel “Broadening the View of Live Programmers: Integrating a Cross-Cutting Perspective on Run-Time Behavior into a Live Programming Environment”for the article “Broadening the View of Live Programmers: Integrating a Cross-Cutting Perspective on Run-Time Behavior into a Live Programming Environment”

since 2019 Stipendium des HPI Fachgebiets SoftwarearchitekturenScholarship of the HPI Software Architecture Group Hasso-Plattner-InstitutHasso Plattner Institute
2015–2019 Stipendium des HPI Forschungskollegs für “Service-Oriented Systems Engineering”Scholarship of the HPI Research School for “Service-Oriented Systems Engineering” Hasso-Plattner-InstitutHasso Plattner Institute

Gremientätigkeit Academic Community Service

2020 Herausgeber (editor)Editor Dagstuhl

Proceedings of the 2020 Joint Workshop of the German Research Training Groups in Computer Science

OrganisatorOrganizer Dagstuhl

2020 Joint Meeting of the German Research Training Groups

Mitglied im ProgrammkomiteeProgram Committee Member COP

ACM International Workshop on Context-Oriented Programming and Advanced Modularity (COP)

2018 OrganisatorOrganizer HPI FutureSOC

13. HPI Symposium on Future Trends in Service-oriented Computing

Reviewer (including sub-reviews)

COLA (2024), ECOOP (2022, 2018), VL/HCC (2021), OOPSLA (2020), COP (2020, 2018), REBLS (2019), NGPS (2018), FlexMDE (2018), DLS (2018), IDEA (2018), SAC (2017), Programming (2017), LiquidSoftware (2017)

Ehrenamtliche Tätigkeiten Community Service

2009–2011 Mitbegründer und Sprecher des HPI Studentenklubs “Kunst” Co-Founder and Speaker of the HPI Student Club “Visual Arts”

Hasso-Plattner-Institut, Potsdam

2007–2009 Administration und Digitalisierung Schulbibliothek Administration and Digitisation of the School Library

Johann-Wolfgang-von-Goethe-Gymnasium, Pritzwalk

LehrerfahrungTeaching

Co-supervised Master's Theses

2024 Extreme Pro-gaming: Augmenting Software Engineering Courses with Educational Board Games

Luc Prestin

2023 Learning About Programming System Design From Board Game Rulebooks

Lina Urban

2022 Extensible Tooling for Reactive Programming Based on Active Expressions

Markus Brand

2021 Call Graphs for Live Programming: Implementing Call Tracing in Babylonian/S based on a Survey of Property Extraction Techniques for Dynamic Analysis

Christian Maximilian Flach

2017 Composition of Modular Language Extensions for JavaScript

Philipp Otto

Master and Bachelor Projects

Master projects are research-focused and span one semester.
Bachelor projects are year-long and conducted in collaboration with an industry partner.

2020/21–2021 Tool Support for Collaborative Creation of Interactive Storytelling Media (BachelorprojektBachelor Project)

StudierendenbetreuungStudent supervision

2019 Design and implementation of a live programming tool set for heterogeneous simulations in Squeak/Smalltalk (MasterprojektMaster Project)

StudierendenbetreuungStudent supervision, ThemenstellungTopic preparation

2018/19–2019 Blocks to the Rescue (BachelorprojektBachelor Project)

StudierendenbetreuungStudent supervision, ThemenstellungTopic preparation

2017/18–2018 GS/Squeak: Smalltalk as a language implementation platform (BachelorprojektBachelor Project)

StudierendenbetreuungStudent supervision

Lectures and Project Seminars

2024 Rapid Prototyping for Educational Games (Vorlesung/MasterLecture/Master)

StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures, ThemenstellungTopic preparation

SoftwaredesignSoftware Design (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Softwaretechnik ISoftware Engineering I (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision, Halten ausgewählter VorlesungenSelected lectures

2023/2024 Future of Programming (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Rapid Prototyping in der SpieleentwicklungRapid Prototyping in Game Development (Vorlesung/BachelorLecture/Bachelor)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

SoftwarearchitekturSoftware Architecture (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

2023 Programming Experience (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Tools for Game Development (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

2022/2023 Programmieren in Virtual RealityProgramming in Virtual Reality (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

SoftwarearchitekturSoftware Architecture (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

2022 Reverse Engineering (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Softwaretechnik ISoftware Engineering I (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures

2021/2022 Visual Abstractions for Framework, Tool and Language DesignVisual Abstractions for Framework, Tool, and Language design (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Programming ExperienceProgramming Experience (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

SoftwarearchitekturSoftware Architecture (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

2021 Live ProgrammingLive Programming (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Software-DesignSoftware Design (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Softwaretechnik ISoftware Engineering I (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures

2020/2021 Programmiersprachen: Konzepte, Werkzeuge und UmgebungenProgramming Language Concepts, Tools, and Environments (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

SoftwarearchitekturSoftware Architecture (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

2020 Endbenutzer EntwicklungEnd-user Development (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Code Repository MiningCode Repository Mining (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Softwaretechnik ISoftware Engineering I (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures

2019/2020 Reactive ProgrammingReactive Programming (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

SoftwarearchitekturSoftware Architecture (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

2019 Software-DesignSoftware Design (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

Softwaretechnik ISoftware Engineering I (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures

2018/2019 Reverse-EngineeringReverse Engineering (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

SoftwarearchitekturSoftware Architecture (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

Einführung in die Programmiertechnik IIntroduction to Programming Technology I (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

2018 Reaktives ProgrammierenReactive Programming (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

Programming Experience / ProgrammierumgebungenProgramming Experience (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Machine Learning on Code RepositoriesMachine Learning on Code Repositories (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Softwaretechnik ISoftware Engineering I (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures

2017/2018 Kontextorientiertes ProgrammierenContext-oriented Programming (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

Web-based Development Environments (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

Code Repository Mining (Seminar/MasterProject Seminar/Master)

StudierendenbetreuungStudent supervision

Programming Languages: Design and Implementation (Seminar/BachelorProject Seminar/Bachelor)

StudierendenbetreuungStudent supervision

SoftwarearchitekturSoftware Architecture (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

2017 Programmiersprachen: Konzepte, Werkzeuge und UmgebungenProgramming Language Concepts, Tools, and Environments (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

Softwaretechnik ISoftware Engineering I (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures

2016/2017 Live Programming Systems (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

Software Design (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

SoftwaremodularitätSoftware Modularity (Seminar/BachelorProject Seminar/Bachelor)

StudierendenbetreuungStudent supervision

SoftwarearchitekturSoftware Architecture (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

2016 Web-based Development Environments (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

Softwaretechnik ISoftware Engineering I (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures

2015/2016 Software Design (Seminar/MasterProject Seminar/Master)

ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision

SoftwarearchitekturSoftware Architecture (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

Einführung in die Programmiertechnik I (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

2010/11–2014 Modellierung I und Modellierung II (Vorlesung/BachelorLecture/Bachelor)

StudierendenbetreuungStudent supervision

ZeitschriftenartikelJournal Articles

J6
Extensible Tooling for Reactive Programming Based on Active Expressions
Stefan Ramson, Markus Brand, Jens Lincke, Robert Hirschfeld. JOT, 2024.
J2
Group-Based Behavior Adaptation Mechanisms in Object-Oriented Systems
Patrick Rein, Stefan Ramson, Jens Lincke, Tim Felgentreff, Robert Hirschfeld. IEEE Software, 2017.

Konferenzbeiträge (begutachtet)Conference Papers (reviewed)

C3
Shortening Feedback Loops in a Live Game Development Environment
Tom Beckmann, Eva Krebs, Patrick Rein, Stefan Ramson, Robert Hirschfeld. VL/HCC, 2021.
C1
Tracking Visitor Engagement in the Blogosphere for Leveraging Rankings
Patrick Hennig, Philipp Berger, Christoph Meinel, Maria Graber, Jens Hildebrandt, Stefan Lehmann, Cathleen Ramson. Veröffentlichung der Datenanalyse- und Visualisierungstechniken, die wir im Masterseminar Social Media Analysis entwickelten.Publication of data analysis and visualization techniques we developed for the master seminar Social Media Analysis. SocialCom, 2013.

Workshop-Beiträge (begutachtet)Workshop Papers (reviewed)

W16
Pronto: Prototyping a Prototyping Tool for Game Mechanic Prototyping
Eva Krebs, Tom Beckmann, Leonard Geier, Stefan Ramson, Robert Hirschfeld. PPIG, 2023.
W15
Explicit Tool Support for Implicit Layer Activation
Markus Brand, Stefan Ramson, Jens Lincke, Robert Hirschfeld. COP, 2022.
W12
An Exploratory Literature Study on Live-Tooling in the Game Industry
Tom Beckmann, Christian Flach, Eva Krebs, Stefan Ramson, Patrick Rein, Robert Hirschfeld. LIVE, 2019.
W10
Piggyback Profiling: Enhancing Query Results with Metadata
Claudia Exeler, Maria Graber, Tino Junge, Stefan Ramson, Cathleen Ramson, Fabian Tschirschnitz, Felix Naumann. LWDA, 2018.
W8
Designing a Live Development Experience for Web-Components
Jens Lincke, Patrick Rein, Stefan Ramson, Robert Hirschfeld, Marcel Taeumel, Tim Felgentreff. PX, 2017.
W6
The Declarative Nature of Implicit Layer Activation
Stefan Ramson, Jens Lincke, Robert Hirschfeld. COP, 2017.
W4
Multi-level Debugging for Interpreter Developers
Bastian Kruck, Stefan Lehmann, Christoph Kessler, Jakob Reschke, Tim Felgentreff, Jens Lincke, Robert Hirschfeld. LaMOD, 2016.
W3
Reactive Object Queries: Consistent Views in Object-oriented Languages
Stefan Lehmann, Tim Felgentreff, Jens Lincke, Patrick Rein, Robert Hirschfeld. CROW, 2016.
W2
Automatically Selecting and Optimizing Constraint Solver Procedures for Object-Constraint Languages
Tim Felgentreff, Stefan Lehmann, Robert Hirschfeld, Sebastian Gerstenberg, Jakob Reschke, Lars Rückert, Patrick Siegler, Jan Graichen, Christian Nicolai, Malte Swart. CROW, 2016.

AbschlussarbeitenTheses

HerausgeberschaftEditorship

Technische BerichteTechnical Reports

TR3
SandBlocks: Integration visueller und textueller Elemente in Live-Programmiersysteme
Leon Bein, Tom Braun, Björn Daase, Elina Emsbach, Leon Matthes, Maximilian Stiede, Marcel Taeumel, Toni Mattis, Stefan Ramson, Patrick Rein, Robert Hirschfeld, Jens Mönig. HPI Technical Reports (vol. 132), 2020.