Stefan Ramson
- PhD Student
- Fachgebiet Softwarearchitekturen Software Architecture Group Hasso-Plattner-Institut Hasso Plattner Institute
- Kleinmachnow, Germany
- https://www.onsetsu.github.io [email protected]
- @onsetsu
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
- Research on programming languages and tools, with a focus on reactive programming, live and self-sustaining programming environments, and dynamic analyses
- Seminar lead and lecturer in undergraduate and graduate courses on software architecture (object-oriented design, idioms, design patterns), software engineering (agile processes, XP, Kanban, CI/CD), programming languages, environments, programming paradigms, reactive programming, and program analysis tools (multiple seminars at various abstraction levels) with excellent student evaluations
- Conceptualized, implemented, and maintained a syntax extension for a complex JavaScript Web application
- Extended compilation workflows for the extension
- Developed mechanisms to handle reactive and asynchronous content in a declarative manner
- Verarbeitung und Visualisierung von Software-Repository-Daten Processing and visualization of massive software repository data
- Kollaboration mit dem SAP Innovation Center, Potsdam Collaboration with the SAP Innovation Center, Potsdam
Ausgewählte Projekte [Interaktive Version] Selected Projects [Interactive Version]
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
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
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
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
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
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
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
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”
Johann-Wolfgang-von-Goethe-Gymnasium Pritzwalk
Leistungskurse: Mathematik, PhysikAdvanced Courses in Mathematics and Physics
Note: 1,0 (sehr gut)Grade: 1.0 (distinction)
Technologies
JavaScript (Expert), Smalltalk (Advanced), Python (Intermediate), GDScript (Intermediate), Java (Intermediate), SQL (Intermediate), C++ (Intermediate), Ruby (Basic)
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)
Git (Advanced), Travis CI (Intermediate), GitHub Actions (Intermediate)
Stipendien / AuszeichnungenAwards / Scholarships
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”
Gremientätigkeit Academic Community Service
Proceedings of the 2020 Joint Workshop of the German Research Training Groups in Computer Science
2020 Joint Meeting of the German Research Training Groups
ACM International Workshop on Context-Oriented Programming and Advanced Modularity (COP)
13. HPI Symposium on Future Trends in Service-oriented Computing
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
Hasso-Plattner-Institut, Potsdam
Johann-Wolfgang-von-Goethe-Gymnasium, Pritzwalk
LehrerfahrungTeaching
Co-supervised Master's Theses
Luc Prestin
Lina Urban
Markus Brand
Christian Maximilian Flach
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.
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision, ThemenstellungTopic preparation
StudierendenbetreuungStudent supervision, ThemenstellungTopic preparation
StudierendenbetreuungStudent supervision
Lectures and Project Seminars
StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures, ThemenstellungTopic preparation
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision, Halten ausgewählter VorlesungenSelected lectures
StudierendenbetreuungStudent supervision
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision, Halten mehrerer VorlesungenMultiple lectures
ThemenstellungTopic preparation, StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision
StudierendenbetreuungStudent supervision