Open Source
SWE-agent
SWE-agent enables your language model of choice (e.g. GPT-4o or Claude Sonnet 4.0) to autonomously use tools to fix issues in real GitHub repositories, find cybersecurity vulnerabilities, or perform any custom task.
- ✅ State of the art on SWE-bench among open-source projects
- ✅ Free-flowing & generalizable: Leaves maximal agency to the LM
- ✅ Configurable & fully documented: Governed by a single yaml file
- ✅ Made for research: Simple & hackable by design
SWE-ReX
SWE-ReX is a runtime interface for interacting with sandboxed shell environments, allowing you to effortlessly let your AI agent run any command on any environment.
SWE-ReX came out of our experiences with SWE-agent and SWE-agent EnIGMA. Using SWE-ReX, we- 🦖 Support fast, massively parallel agent runs (which made evaluating on large benchmarks a breeze).
- 🦖 Support a broad range of platforms, including non-Linux machines without Docker.
- 🦖 Disentangle agent logic from infrastructure concerns, making SWE-agent more stable and easier to maintain.

SWE-smith
SWE-smith is a toolkit for training software engineering (SWE) agents. With SWE-smith, you can:
- Create an unlimited number of SWE-bench style task instances for any Python repository.
- Generate trajectories of SWE-agent solving those task instances.
- Train local LMs on these trajectories to improve their software engineering capabilities (SWE-agent-LM-32B).

Graph Neural Network Tracking
This open source project uses graph neural networks to reconstruct charged particle trajectories in particle detectors ("tracking"). Batteries are included: The package implements the whole processing pipeline, several models and approaches, and the evaluation of the final performance metrics. Built around pytorch lightning, the models are easy to train and to restore. By using hooks and callbacks, everything remains modular and maintainable.
Teaching Material
- Paradigms & Patterns: Lecture slides (both as LaTeX source code and as rendered pdfs) and exercises for a course taught originally at iCSC 2020 to more than 500 participants.
- Everything you didn't know you needed: A collection of tips and tricks for python, the command line and more.
- Collaborative Programming with GitHub
- HEP Fitting Tutorial: Jupyter notebooks for tutorials on fitting for high energy physics.
Old projects
Various projects
-
Sunburst (2016):
sunburst
is a python package formatplotlib
that creates sunburst plots ("hierarchical pie charts" similar to disk space visualizations). - RandomFileTree (2019): Create a random file/directory tree/structure in python for testing purposes.
-
jekyll-relative-url-check (2021): Enforce that all URLs in your Jekyll setup are relative to
site.baseurl
- Verzettler (2020): Non-linear, non-hierarchical knowledge management: Helper scripts for your Zettelkasten.
- video-frame-merger (2018): Overlay the moving elements of video frames to condense a whole motion into one still image.
Electronics
- Piezo Puzzle (2021): An interactive birthday puzzle with a piezo buzzer operated by an atmega8 MCU. Different values can be selected on a rotary dial. For each selected value, letter combinations are communicated with morse code. Once their meaning is understood, they can be brought in the right order to get a code. After this code has been entered, three dial values play different birthday songs.
View of the main board before packaging.
Anki Plug-ins
Anki is a spaced repetition flashcard program that boasts high customizability with Add-ons. Writing Anki add-ons was my first serious foray into open-source software development.
-
Template tester (2017): The styling of Anki's flashcards is governed by templates written in
HTML
andCSS
. This is a small tool to batch generate previews of templates for different user input cases, which comes in handy when maintaining multiple and complicated templates. - Ignore duplicates (2015): Customize how and when Anki flags cards as duplicates.
- Sync fields (2015): Add-on to synchronize information/field values between different cards/notes, e.g. including information/mnemonics about the kanji used in Japanese words also on the cards of Japanese words that use them (and add these as exemplary use cases to the kanji cards). Requires substantial configuration.
- Merge notes (2015): Plug-in to merge a set of notes (flashcards) into another set of notes. Rudimentary Add-on intended for one time use!
- cbcImport (2015): Adds a new toolbar to Anki's Add Card dialog to load .csv files and then cycle through them, adding cards/vocabulary items step by step.
- Readings Audio (2016): Add Kunyomi/Onyomi audio to Kanji readings flashcards in Anki. Currently not completely functional.
- Reset Fields (2015): Adds a button to reset all fields in the editor window in Anki.
-
Templates (2015):
HTML
/CSS
templates for Anki flashcards that used for learning Japanese.
Other tools for learning Japanese
- RTK Lookup (2014): For people who learn kanji with the books from James Heisig (Remembering The Kanji). A little command line interface that allows to look up multiple kanji by keyword (or parts of it), by parts of the story/mnemonic or by frame number.
- rtk-table-tools (2019): Generates beautiful posters of all JLPT kanji! Also includes a web scraper to get additional information for that purpose.