{"$schema":"https://raw.githubusercontent.com/jsonresume/resume-schema/v1.2.1/schema.json","basics":{"name":"Robert Schäfer","label":"Full-Stack-Entwickler","image":"https://avatars.githubusercontent.com/u/2110676","email":"hello@roschaefer.de","url":"https://roschaefer.de/","signal":"https://signal.me/#eu/DI0Crg8ktbRKrFyKqMRVJeMO-ecjH3Xa9I6wu8QWkQRUUzGBm-lPwJh0xlrvFb00","summary":"Freiberuflicher Full-Stack-Entwickler für remote umgesetzte Webanwendungen, Produktentwicklung und Infrastruktur. Schwerpunkte sind wartbare Software, hohe Testabdeckung und einfache Systeme. Teams profitieren von strukturierten Code Reviews, Pair Programming, technischem Mentoring und langjähriger Open-Source-Erfahrung.","location":{"city":"Köln","region":"NRW","countryCode":"DE"},"profiles":[{"network":"LinkedIn","username":"Robert Schäfer","url":"https://www.linkedin.com/in/roschaefer/"},{"id":"11444f76-fbdb-4461-8f30-54bfbcf452df","url":"https://github.com/roschaefer","network":"Github","username":"roschaefer"},{"id":"19f445bb-b77e-4a45-9be3-15d905a99e6e","url":"https://www.youtube.com/channel/UCyrLYmvmLzWxnPHxt4n5aPw","network":"YouTube","username":"Robert Schäfer"},{"id":"eefa7b2c-5246-41d1-a344-5ee600f55d92","url":"https://twitter.com/roschaeferDE","network":"Twitter","username":"roschaeferDE"},{"id":"mastodon-roschaefer","url":"https://mastodon.social/@roschaefer","network":"Mastodon","username":"roschaefer"},{"id":"fcb53294-762d-4d77-881b-e379bf574407","url":"https://www.codementor.io/@roschaefer","network":"CodeMentor","username":"roschaefer"}]},"awards":[{"title":"Grimme Online Award (nominiert)","date":"2020-06-25","summary":"Sensorstories: Bienen","awarder":"Grimme-Institut","url":"https://www.grimme-online-award.de/archiv/2020/nominierte/n/d/bienenlive-folge-den-koeniginnen"},{"title":"Deutscher Reporterpreis 2019","date":"2019-12-02","summary":"Sensorstories: Bienen","awarder":"Reporter-Forum e. V.","url":"https://de.wikipedia.org/wiki/Deutscher_Reporter:innenpreis#Deutscher_Reporterpreis_2019"},{"title":"Deutscher Reporterpreis 2017 (nominiert)","date":"2017-12-11","summary":"Sensorstories: Milchkühe","awarder":"Reporter-Forum e. V.","url":"https://archiv.reporter-forum.de/index.php%3Fid=231.html#c2904"},{"title":"Gewinner des MIZ Formatfestivals 2015","summary":"#ursuppe","date":"2015-11-12","awarder":"MIZ Babelsberg","url":"https://www.mabb.de/uber-die-mabb/aktuelles/veranstaltungen-details/miz-formatfestival-2015-preisverleihung-im-miz-babelsberg"}],"languages":[{"language":"Deutsch","fluency":"Muttersprache"},{"language":"Englisch","fluency":"Verhandlungssicher"},{"language":"Spanisch","fluency":"Fließend"}],"education":[{"id":"hpi-msc","institution":"Hasso Plattner Institute","url":"https://hpi.de/","area":"IT-Systems Engineering","studyType":"Master of Science","startDate":"2014-10-01","endDate":"2018-03-31","score":"1.6","courses":[]},{"id":"hpi-bsc","institution":"Hasso Plattner Institute","url":"https://hpi.de/","area":"IT-Systems Engineering","studyType":"Bachelor of Science","startDate":"2009-09-01","endDate":"2012-07-01","score":"1.7","courses":[]},{"id":"gymnasium-lohmar-abitur","institution":"Gymnasium Lohmar","area":"","studyType":"Abitur","startDate":"1999-08-01","endDate":"2008-06-30","courses":[]}],"projects":[{"id":"git-subtrees","name":"git-subtrees","entity":"Robert Schäfer","codeVisibility":"open-source","roles":["Entwicklung"],"startDate":"2026-09-11","keywords":["Bash","Bats","Nix"],"description":"Eine Git-Erweiterung, die mehrere Git-Subtrees in einem Monorepo mit ihren eigenen Repositories synchron hält. Sie kommt ohne Konfigurationsdatei aus: Jedes Remote, das wie ein Ordnerpfad heißt, ist ein Subtree. Die Dokumentation besteht aus getesteten Beispielszenarien.","url":"https://github.com/roschaefer/git-subtrees","type":"volunteering"},{"id":"remote-telescope-platform","name":"Remote-Sternwarte","roles":["Full-Stack-Entwickler"],"startDate":"2026-03-25","keywords":["TypeScript","Nuxt","Vue","Fly.io","Docker","AWS","Terraform","Playwright","Cucumber","Tailwind","NINA","Tailscale"],"description":"Mit dieser Plattform zur Fernsteuerung von Teleskopen über die Astrofotografie-Software NINA wird Astrofotografie für alle zugänglich, ohne eigenes Equipment oder Fachwissen. Nutzerinnen und Nutzer wählen ein Himmelsobjekt und buchen Beobachtungszeit; die Anwendung überträgt Aufnahmesequenzen per Tailscale an NINA, die diese in der Nacht autonom ausführt und die Ergebnisse bereitstellt. Die zentrale Herausforderung besteht darin, eine primär interaktive Windows-Software in eine vollständig autonome Pipeline zu überführen.","type":"experience","entity":"Bo***bH","redacted":true},{"id":"ai-interview-platform","name":"KI-Interviewplattform","codeVisibility":"open-source","roles":["Full-Stack-Entwickler"],"startDate":"2026-03-23","keywords":["TypeScript","Svelte","SvelteKit","Tailwind","Better Auth","Drizzle ORM","Neon DB","PostgreSQL","Playwright","Vitest","Netlify","Sentry","Serverless","Infisical","ElevenLabs"],"description":"Diese SvelteKit-Anwendung für KI-gestützte Interviews und redaktionelle Veröffentlichung ersetzt eine fragile, auf Airtable, Voiceflow und weitere eigene Dienste verteilte Infrastruktur durch eine einheitliche serverlose Anwendung. Die Nutzung der integrierten Workflows von ElevenLabs AI Agents senkt Wartungsaufwand und Komplexität deutlich und verbessert die Antwortzeit des Telefonagenten um mehrere Sekunden, was für eine gute Nutzererfahrung entscheidend ist.","type":"experience","entity":"ta***bH","redacted":true},{"id":"hledger-document-check","name":"hledger-document-check","entity":"Robert Schäfer","codeVisibility":"open-source","roles":["Entwicklung"],"startDate":"2026-03-19","keywords":["Rust","hledger","Cucumber"],"description":"Ein Plain-Text-Accounting-Kommandozeilenwerkzeug für die Belegprüfung mit hledger. Es gleicht buchungspflichtige Transaktionen mit Belegen auf der Festplatte ab, erkennt fehlende oder ungebuchte Dokumente, prüft die Plausibilität von Beträgen und erzeugt ein abgeleitetes Journal für die Belegansicht in Fava.","url":"https://github.com/roschaefer/hledger-document-check","type":"volunteering"},{"id":"hledger-elster","name":"hledger-elster","entity":"Robert Schäfer","codeVisibility":"open-source","roles":["Entwicklung"],"startDate":"2026-03-19","keywords":["Rust","hledger","Cucumber"],"description":"Ein Plain-Text-Accounting-Kommandozeilenwerkzeug für hledger, um die deutsche Steuererklärung zu automatisieren. Es liest Umsätze aus dem Journal und erzeugt daraus nachvollziehbare Exporte für die entsprechenden Formulare auf ELSTER.de. Die Exporte liegen im CSV- und XLSX-Format vor und enthalten Herleitungen zur Nachprüfung durch die Steuerbehörden.","url":"https://github.com/roschaefer/hledger-elster","type":"volunteering"},{"id":"roschaefer-portfolio","name":"roschaefer.de","entity":"Robert Schäfer","codeVisibility":"open-source","roles":["Entwicklung und Design"],"startDate":"2026-03-16","keywords":["TypeScript","Svelte","SvelteKit","Tailwind","Paraglide","Typst","Vitest","Playwright","Netlify"],"description":"Persönliche Portfolio-Website und druckoptimierter Lebenslauf aus einer gemeinsamen Datenquelle. Das Projekt verbindet eine zweisprachige SvelteKit-Oberfläche, PDF-Erzeugung mit Typst und standardkonformes `resume.json` zu einer zugänglichen, datensparsamen Darstellung für Web und Druck.","url":"https://roschaefer.de/","type":"volunteering"},{"id":"foss-social-network-infra-migration","name":"FOSS Soziales Netzwerk","codeVisibility":"open-source","roles":["Infrastruktur-Ingenieur"],"startDate":"2024-10-01","endDate":"2025-11-30","keywords":["TypeScript","Vue","Nuxt","Terraform","sops","Kubernetes","Hetzner","S3","Digital Ocean","Docker"],"description":"Migration der Assets von einem Kubernetes-Volume zu S3-kompatiblem Object Storage, um Komplexität und Kosten des Deployments zu senken. Die Infrastruktur wurde mit Terraform und sops neu aufgesetzt; der Wechsel von einem verwalteten Kubernetes-Cluster auf Digital Ocean zu selbst betriebenem Kubernetes-Cluster auf Hetzner senkte die monatlichen Kosten um 80 %.","type":"experience","entity":"bu***V.","redacted":true},{"id":"entrepreneur-social-platform","name":"Gründungsnetzwerk","codeVisibility":"open-source","roles":["Full-Stack-Entwickler"],"startDate":"2024-06-21","endDate":"2025-06-09","keywords":["TypeScript","Docker","Vue","Vike","Vuetify","Jest","Authentik","Apollo GraphQL","Terraform","Helm","Kubernetes","Hetzner","PostgreSQL"],"description":"Für diese freie und quelloffene Social-Media-Plattform für Unternehmerinnen und Unternehmer wurde die Auslieferungs- und Infrastrukturarchitektur grundlegend überarbeitet, nachdem Deployments zuvor manuell über einen Remote-Desktop auf dem Zielserver durchgeführt wurden und regelmäßig zu Ausfällen führten. Die Umstellung auf ein selbst betriebenes Kubernetes-Setup auf Hetzner mit Terraform ermöglichte produktionsnahe Testumgebungen für eigene Branches aller Teammitglieder, während die Betriebskosten mit unter 20 Euro pro Monat sehr niedrig blieben.","type":"experience","entity":"***","redacted":true},{"id":"audience-engagement-platform","name":"Newsroom-Dialog","codeVisibility":"open-source","roles":["Full-Stack-Entwickler"],"startDate":"2020-03-30","endDate":"2025-04-16","keywords":["Ruby","TypeScript","Ruby on Rails","RSpec","Stimulus","Docker","Ansible","Digital Ocean","Sentry","Postmark"],"description":"Für diese Plattform für Publikumsdialog und crowd-basierte Recherche im Journalismus entstand eine Ruby-on-Rails-Anwendung, die Messenger wie WhatsApp, Telegram, Signal, Threema und E-Mail integriert, damit Redaktionen Menschen in den Kanälen erreichen können, die sie bereits nutzen. Das zentrale Alleinstellungsmerkmal ist die direkte 1:1-Kommunikation zwischen Journalistinnen oder Journalisten und ihrem Publikum, wodurch die eigene Community zu einer belastbaren Quelle für Recherche und Berichterstattung wird.","type":"experience","entity":"ta***bH","redacted":true},{"id":"automotive-price-comparison","name":"Kfz-Preisvergleich","codeVisibility":"closed-source","roles":["Full-Stack-Entwickler"],"startDate":"2021-06-30","endDate":"2023-09-01","keywords":["TypeScript","Docker","Vue","Tailwind","Jest","Testing-Library","Auth0","Apollo GraphQL","Hasura","Google Cloud","Vercel"],"description":"Bei dieser Software für den Automotive Aftermarket, mit der Werkstätten Preise verschiedener Großhändler vergleichen können, wurde eine Electron-Desktop-Anwendung in eine cloudbasierte Plattform auf Google Cloud, Auth0 und Hasura überführt. Das verbesserte die Softwarequalität deutlich und erhöhte die Zahl angebundener Großhändler von drei auf 240.","type":"experience","entity":"au***bH","redacted":true},{"id":"retail-website-relaunch","name":"SvelteKit-Relaunch","codeVisibility":"closed-source","roles":["Full-Stack-Entwickler"],"startDate":"2021-12-09","endDate":"2023-06-28","keywords":["TypeScript","Svelte","SvelteKit","HyGraph","Netlify","Serverless"],"description":"Website-Relaunch für einen Einzelhandelskunden mit SvelteKit und Hygraph, statisch ausgerollt auf Netlify. Serverseitige Logik läuft in Serverless Functions, Inhalte werden per GraphQL aus dem Headless CMS geladen. Der Relaunch verbesserte Performance, SEO und Pflegbarkeit.","type":"experience","entity":"Jo***er","redacted":true},{"id":"course-booking-system","name":"Buchungssystem für Kursanbieter","codeVisibility":"closed-source","roles":["Full-Stack-Entwickler"],"startDate":"2020-08-11","endDate":"2023-05-02","keywords":["TypeScript","Netlify","Vue","Nuxt","HyGraph"],"description":"Individuelles Buchungssystem für die Nähkurse eines Kursanbieters, integriert in die bestehende Website. Kurse für Erwachsene, Jugendliche und Kinder lassen sich online verwalten, inklusive Anmeldung und Warteliste.","type":"experience","entity":"Jo***er","redacted":true},{"id":"continuing-education-booking-system","name":"Buchungssystem für Weiterbildungsanbieter","codeVisibility":"closed-source","roles":["Full-Stack-Entwickler"],"startDate":"2021-05-12","endDate":"2022-12-10","keywords":["TypeScript","Netlify","Svelte","SvelteKit","Tailwind"],"description":"Individuelles Buchungssystem für einen Anbieter berufsbegleitender Weiterbildungen. Die Lösung umfasst E-Mail-Bestätigungen, Wartelisten und eine Umsetzung mit SvelteKit und Hygraph als Headless CMS.","type":"experience","entity":"Jo***er","redacted":true},{"id":"holiday-apartment-booking-site","name":"Buchungswebsite für eine Ferienwohnung","codeVisibility":"closed-source","roles":["Full-Stack-Entwickler"],"startDate":"2022-01-28","endDate":"2022-08-09","keywords":["TypeScript","Netlify","Svelte","SvelteKit","Tailwind"],"description":"Buchungswebsite mit Kalenderintegration für eine Ferienwohnung auf Norderney. Die Verfügbarkeit einzelner Tage wird in Google Calendar gepflegt und per Google APIs auf der Website synchronisiert.","type":"experience","entity":"Jo***er","redacted":true},{"id":"systems-development-and-framework","entity":"Hochschule für Technik und Wirtschaft Berlin","name":"Systems-Development and Framework","codeVisibility":"open-source","roles":["Lehrbeauftragter"],"startDate":"2019-10-31","endDate":"2021-03-31","keywords":["JavaScript","Vue","Apollo GraphQL","Neo4J","Nuxt","Vuetify","Tailwind"],"description":"Vollständige Leitung einer Master-Vorlesung zur Full-Stack-Entwicklung mit rund 40 Studierenden, inklusive Curriculum, Lehre und Benotung. Inhalte waren unter anderem funktionale Programmierung, fortgeschrittenes Git, testgetriebene Entwicklung und Code Reviews auf GitHub. Alle Vorlesungen sind öffentlich auf YouTube verfügbar.","url":"https://www.youtube.com/watch?v=-cuzwDjdowo&list=PL1CiawkXA01PO_39DnKSrxWw99mU7mwWs","location":"Berlin, Germany","type":"mentoring"},{"id":"open-source-social-network","name":"FOSS Soziales Netzwerk","codeVisibility":"open-source","roles":["Technischer Leiter"],"startDate":"2018-11-30","endDate":"2020-04-30","keywords":["JavaScript","Jest","Vue","Nuxt","Storybook","Cypress","Apollo GraphQL","Neo4J","Docker","Digital Ocean","Kubernetes"],"description":"Technical-Lead-Arbeit an Produktarchitektur, GraphQL-APIs, produktivem Neo4J-Einsatz und Kubernetes-Betrieb für ein gemeinschaftlich entwickeltes Open-Source-Sozialnetzwerk, das Communities eine datenschutzfreundliche Alternative zu großen Plattformen bietet. Das Projekt wuchs auf rund 80 Code-Contributors auf GitHub; neue Mitwirkende wurden über GitHub, Discord und Online-Pair-Programming onboardet, direkt betreut und der Großteil der Beiträge reviewed. Neo4J lief produktiv als Primärdatenbank, um den sozialen Graphen des Netzwerks direkt im Datenmodell abzubilden.","type":"experience","entity":"Hu***bH","redacted":true},{"id":"find-open-source-contributors-vuejs-berlin","name":"Find open-source contributors in online learner communities","entity":"Vue.js Berlin Meetup","startDate":"2020-01-14","endDate":"2020-01-14","roles":["Referent"],"url":"https://www.youtube.com/watch?v=p5iMjfVCXBY","type":"presentation"},{"id":"neo4j-graphql-human-connection","name":"Using Neo4J and GraphQL to build Human Connection","entity":"Neo4J Online Meetup","startDate":"2019-06-20","endDate":"2019-06-20","roles":["Referent"],"url":"https://www.youtube.com/watch?v=kGwGX6R70H4","type":"presentation"},{"id":"sensor-storytelling-bees","name":"Sensorstories: Bienen","codeVisibility":"closed-source","roles":["Full-Stack-Entwickler"],"startDate":"2019-03-31","endDate":"2019-05-31","keywords":["Ruby","Ruby on Rails","RSpec","Cucumber"],"description":"Aufbauend auf einem früheren journalistischen Sensor-Projekt wurde die Plattform für ein neues Format wiederverwendet und erweitert. Berichte wurden automatisiert aus Sensordaten von drei Bienenvölkern erzeugt. Das Projekt wurde für den Grimme Online Award nominiert und mit dem Deutschen Reporterpreis ausgezeichnet.","type":"experience","entity":"ta***bH","redacted":true},{"id":"rundfunk-mitbestimmen-project","name":"Rundfunk mitbestimmen","entity":"Rundfunk mitbestimmen e.V.","roles":["Gründer"],"startDate":"2016-08-31","endDate":"2019-03-31","keywords":["Ember","Ruby on Rails","Auth0","D3","Highcharts","Uberspace","PostgreSQL"],"description":"\"Rundfunk mitbestimmen\" ist ein Civic-Tech-Projekt zur symbolischen Mitbestimmung über die Verwendung des Rundfunkbeitrags. Nutzerinnen und Nutzer können Beiträge einzelnen Programmen zuordnen. Das Projekt wurde unter anderem von Zeit Online, Netzpolitik.org, Deutschlandfunk und RBB aufgegriffen.","links":[{"label":"Zeit Online","url":"https://www.zeit.de/campus/2017-09/z2x-festival-zehn-beste-projekte/seite-2","kind":"press"},{"label":"Netzpolitik.org","url":"https://netzpolitik.org/2017/neues-aus-dem-fernsehrat-6-ein-gespraech-ueber-rundfunk-mitbestimmen-de/","kind":"press"},{"label":"Deutschlandfunk","url":"https://www.deutschlandfunk.de/oeffentlich-rechtlicher-rundfunk-mehr-direkte-demokratie-100.html","kind":"press"},{"label":"RBB","url":"https://www.wwwagner.tv/?p=36200","kind":"press"}],"type":"volunteering"},{"id":"find-open-source-contributors-35c3","name":"Find open-source contributors in online learner communities","entity":"35th Chaos Communication Congress","startDate":"2018-12-30","endDate":"2018-12-30","roles":["Referent"],"url":"https://media.ccc.de/v/35c3-9568-lightning_talks_day_4#t=1147","type":"presentation"},{"id":"human-connection-35c3","name":"Human Connection","entity":"35th Chaos Communication Congress","startDate":"2018-12-29","endDate":"2018-12-29","roles":["Referent"],"url":"https://media.ccc.de/v/35c3-9567-lightning_talks_day_3#t=5180","type":"presentation"},{"id":"rubies-in-the-woods","name":"Rubies in the woods","entity":"MIZ Babelsberg","roles":["Programmier-Mentor"],"startDate":"2015-09-30","endDate":"2018-11-30","keywords":["Ruby"],"description":"Mentoring einer einsteigerfreundlichen Programmiergruppe mit wöchentlichen Treffen und Fokus auf Diversität und niedrigschwelligen Einstieg ins Programmieren.","url":"https://www.facebook.com/watch?v=1342132595875337","location":"Potsdam, Brandenburg, Germany","type":"mentoring"},{"id":"custom-cms-platform","name":"Individuelle CMS-Entwicklung","roles":["Full-Stack-Entwickler"],"startDate":"2018-04-30","endDate":"2018-06-30","keywords":["Wordpress","PHP","Docker"],"description":"Individuelle CMS-Entwicklung für die Unternehmenswebsite mit Schwerpunkt auf Pflegebarkeit und Suchmaschinenoptimierung.","type":"experience","entity":"So***AG","redacted":true},{"id":"informatikradar-1","name":"Informatikradar #1","entity":"Gesellschaft für Informatik","startDate":"2018-05-04","endDate":"2018-05-04","roles":["Referent"],"url":"https://www.youtube.com/watch?v=fzTmJBo4R5A","type":"presentation"},{"id":"smart-mirror-prototype","name":"Smarter Badezimmerspiegel","roles":["IoT-Entwickler"],"startDate":"2018-01-01","endDate":"2018-01-31","keywords":["Python","JavaScript","MQTT"],"description":"Schneller IoT-Prototyp eines smarten Badezimmerspiegels und Schranks auf Basis von Raspberry Pis, Arduinos und MQTT.","location":"Lunenburg, Lower Saxony, Germany","type":"experience","entity":"ta***bH","redacted":true},{"id":"story-trolley-ember-meets-iot","name":"Story-Trolley: Ember meets the IoT","description":"Wie man mit Ember einen smarten Einkaufswagen baut.","entity":"Ember.js Meetup Berlin","startDate":"2018-01-19","endDate":"2018-01-19","roles":["Referent"],"url":"https://www.youtube.com/watch?v=oWNqLev23AQ&list=PL1CiawkXA01NeLHG2QNHmtACrb_brDodm","type":"presentation"},{"id":"rundfunk-mitbestimmen-34c3","name":"Rundfunk mitbestimmen","entity":"34th Chaos Communication Congress","startDate":"2017-12-30","endDate":"2017-12-30","roles":["Referent"],"url":"https://media.ccc.de/v/34c3-9258-lightning_talks_day_4#t=1352","type":"presentation","description":"\"Rundfunk mitbestimmen\" ist ein Werkzeug, das öffentliche Beteiligung an der Verwendung des Rundfunkbeitrags ermöglichen soll. Beitragszahlende können ihr Geld symbolisch einzelnen Programmen zuweisen. Das Projekt wurde unter anderem von Zeit Online, Netzpolitik.org, Deutschlandfunk und RBB aufgegriffen."},{"id":"gez-scrap-it-or-pay-it","name":"GEZ - scrap it or pay it?","entity":"University Meetup Group \"Bremer Gesellschaft\"","startDate":"2017-12-19","endDate":"2017-12-19","roles":["Referent"],"url":"https://www.facebook.com/events/732304050294246/","type":"presentation"},{"id":"sensor-storytelling-dairy-cows","name":"Sensorstories: Milchkühe","roles":["Full-Stack-Entwickler"],"startDate":"2016-05-31","endDate":"2017-10-31","keywords":["Ruby on Rails","Ruby","RSpec","Cucumber"],"description":"Für WDR und Spiegel Online entstand ein journalistisches Format, das Berichte automatisiert aus Sensordaten von drei Milchkühen erzeugte. Das Projekt erhielt große mediale Aufmerksamkeit mit mehr als 63 Berichten und Features.","entity":"ta***bH","links":[{"label":"Spiegel Online","url":"https://www.spiegel.de/netzwelt/web/superkuehe-sensorjournalismus-mit-milchkuehen-a-1165241.html","kind":"press"}],"type":"experience","redacted":true},{"id":"coding-in-the-woods","name":"Coding In The Woods","description":"Einführung ins Programmieren mit Rails.","entity":"Codemotion Berlin 2017","startDate":"2017-10-12","endDate":"2017-10-12","roles":["Referent"],"url":"https://berlin2017.codemotionworld.com/speaker/3623/","type":"presentation"},{"id":"how-to-enjoy-paying-for-public-broadcasting","name":"How to enjoy paying for public broadcasting","description":"Ask-me-anything-Session auf dem Festival für junge Visionäre.","entity":"Z2X Festival - Die Zeit","startDate":"2017-09-04","endDate":"2017-09-04","roles":["Referent"],"url":"https://www.zeit.de/campus/2017-09/z2x-festival-zehn-beste-projekte/seite-2","type":"presentation"},{"id":"smart-shopping-cart-prototype","name":"Smarter Einkaufswagen","roles":["IoT-Entwickler"],"startDate":"2017-06-01","endDate":"2017-06-30","keywords":["Ember","Python"],"description":"Schneller IoT-Prototyp eines smarten Einkaufswagens.","type":"experience","entity":"ta***bH","redacted":true},{"id":"rundfunk-mitbestimmen-nerd-nite-17","name":"Rundfunk mitbestimmen","entity":"Nerd Nite Berlin #17","startDate":"2017-06-16","endDate":"2017-06-16","roles":["Referent"],"url":"https://www.youtube.com/watch?v=3BmdDEuW-ZA","type":"presentation","description":"\"Rundfunk mitbestimmen\" ist ein Werkzeug, das öffentliche Beteiligung an der Verwendung des Rundfunkbeitrags ermöglichen soll. Beitragszahlende können ihr Geld symbolisch einzelnen Programmen zuweisen. Das Projekt wurde unter anderem von Zeit Online, Netzpolitik.org, Deutschlandfunk und RBB aufgegriffen."},{"id":"why-do-i-have-to-pay-and-dont-get-a-say","name":"Why do I have to pay and don't get a say?","description":"Den öffentlich-rechtlichen Rundfunk demokratisieren.","entity":"OpenTechSummit 2017","startDate":"2017-05-25","endDate":"2017-05-25","roles":["Referent"],"url":"https://www.youtube.com/watch?v=mr_9iNma0pI&list=PL1CiawkXA01PaCTnImLLqbrcbJmf7Xssv","type":"presentation"},{"id":"miz-rapid-fire-pitch","name":"MIZ Rapid Fire Pitch","description":"SensorStory (Best Practices)","entity":"re:publica 2017 - Love Out Loud","startDate":"2017-05-09","endDate":"2017-05-09","roles":["Referent"],"url":"https://www.youtube.com/watch?v=GKKaVHjxJII&t=358s","type":"presentation"},{"id":"ember-rails-capybara","name":"Ember.js + Rails + Capybara = ♥️","entity":"Ember.js Meetup Berlin","startDate":"2017-03-10","endDate":"2017-03-10","roles":["Referent"],"url":"https://www.youtube.com/watch?v=xSukVhdX0DI&list=PL1CiawkXA01N8PRcrZ4UlFJRT8Bx9gDOp","type":"presentation"},{"id":"rundfunk-mitbestimmen-swift-meetup","name":"Rundfunk mitbestimmen","entity":"Swift Meetup Berlin","startDate":"2016-11-14","endDate":"2016-11-14","roles":["Referent"],"url":"https://www.youtube.com/watch?v=8TyViNgmeSQ","type":"presentation","description":"\"Rundfunk mitbestimmen\" ist ein Werkzeug, das öffentliche Beteiligung an der Verwendung des Rundfunkbeitrags ermöglichen soll. Beitragszahlende können ihr Geld symbolisch einzelnen Programmen zuweisen. Das Projekt wurde unter anderem von Zeit Online, Netzpolitik.org, Deutschlandfunk und RBB aufgegriffen."},{"id":"rundfunk-mitbestimmen-hpi-hack-and-tell","name":"Rundfunk mitbestimmen","entity":"HPI Hack'n Tell","startDate":"2016-10-26","endDate":"2016-10-26","roles":["Referent"],"url":"https://www.youtube.com/watch?v=JxnWeyYFwUw","type":"presentation","description":"\"Rundfunk mitbestimmen\" ist ein Werkzeug, das öffentliche Beteiligung an der Verwendung des Rundfunkbeitrags ermöglichen soll. Beitragszahlende können ihr Geld symbolisch einzelnen Programmen zuweisen. Das Projekt wurde unter anderem von Zeit Online, Netzpolitik.org, Deutschlandfunk und RBB aufgegriffen."},{"id":"protothon-podcast","name":"Protothon","entity":"MIZ Babelsberg","roles":["Hackathon-Coach"],"startDate":"2016-09-01","endDate":"2016-09-30","keywords":["JavaScript"],"description":"Coachte ein Team beim Protothon-Hackathon des MIZ Babelsberg, das einen interaktiven, entscheidungsbasierten Podcast-Prototyp entwickelte.","url":"https://www.miz-babelsberg.de/startseite.html","location":"Potsdam, Brandenburg, Germany","type":"mentoring"},{"id":"protothon-music-player","name":"Protothon","entity":"MIZ Babelsberg","roles":["Hackathon-Coach"],"startDate":"2016-08-01","endDate":"2016-08-31","keywords":["JavaScript"],"description":"Coachte ein Team beim Protothon-Hackathon des MIZ Babelsberg, das einen ortsbewussten Musikplayer-Prototyp entwickelte.","url":"https://www.miz-babelsberg.de/startseite.html","location":"Potsdam, Brandenburg, Germany","type":"mentoring"},{"id":"ursuppe","name":"#ursuppe","entity":"MIZ Babelsberg","roles":["Hackathon-Coach"],"startDate":"2015-08-01","endDate":"2015-08-31","description":"Coachte das Team hinter #ursuppe, einem IoT-Prototyp, der automatisiert einen journalistischen Live-Bericht aus einem biologischen Experiment mit Urzeitkrebsen erzeugte. Gewinner des MIZ Formatfestivals 2015.","url":"https://www.youtube.com/watch?v=-H9aFNUXvvA","location":"Potsdam, Brandenburg, Germany","type":"mentoring"},{"id":"supply-chain-risk-research","name":"Automated Risk Analysis in Supply Chains","roles":["Forschungspraktikant"],"startDate":"2013-10-01","endDate":"2013-11-30","description":"Werkzeugentwicklung zur automatisierten Risikoanalyse in Lieferketten auf Basis einer bestehenden Legacy-Codebasis.","location":"Belfast, United Kingdom","type":"experience","entity":"***","redacted":true},{"id":"sports-association-webapp","name":"Webanwendung für Sportverbände","roles":["Full-Stack-Entwickler"],"startDate":"2013-04-01","endDate":"2013-09-30","keywords":["Ruby","Ruby on Rails","RSpec","Cucumber","PostgreSQL"],"description":"Erste Einführung einer automatisierten Testumgebung für diese Webanwendung für Funktionäre, Schiedsrichter und Trainer.","location":"Bern, Switzerland","type":"experience","entity":"OX***AG","redacted":true},{"id":"enterprise-programming-models-in-memory-databases","name":"Enterprise programming models for in-memory databases","entity":"Hasso Plattner Institute","roles":["Wissenschaftlicher Mitarbeiter"],"startDate":"2012-01-31","endDate":"2012-08-31","keywords":["Java"],"description":"Implementierung eines Geschäftsprozesses und einer Webanwendung, die SAP als Use Case für die HANA-In-Memory-Datenbank spezifiziert hat.","url":"https://hpi.de/","type":"experience"}],"skills":[{"name":"TypeScript","level":"Langjährige Erfahrung","keywords":["6½ Jahre","11 Projekte","aktuell im Einsatz"]},{"name":"Docker","level":"Langjährige Erfahrung","keywords":["8 Jahre","7 Projekte","aktuell im Einsatz"]},{"name":"Vue","level":"Langjährige Erfahrung","keywords":["7 Jahre","7 Projekte","aktuell im Einsatz"]},{"name":"Nuxt","level":"Langjährige Erfahrung","keywords":["6½ Jahre","5 Projekte","aktuell im Einsatz"]},{"name":"Ruby","level":"Langjährige Erfahrung","keywords":["9¼ Jahre","5 Projekte","zuletzt Apr. 2025"]},{"name":"Tailwind","level":"Souveräne Nutzung","keywords":["4½ Jahre","7 Projekte","aktuell im Einsatz"]},{"name":"Ruby on Rails","level":"Langjährige Erfahrung","keywords":["8¾ Jahre","5 Projekte","zuletzt Apr. 2025"]},{"name":"PostgreSQL","level":"Souveräne Nutzung","keywords":["5 Jahre","4 Projekte","aktuell im Einsatz"]},{"name":"Netlify","level":"Souveräne Nutzung","keywords":["3½ Jahre","6 Projekte","aktuell im Einsatz"]},{"name":"Digital Ocean","level":"Souveräne Nutzung","keywords":["7 Jahre","3 Projekte","zuletzt vor 11 Monaten"]},{"name":"Sentry","level":"Souveräne Nutzung","keywords":["5¾ Jahre","2 Projekte","aktuell im Einsatz"]},{"name":"RSpec","level":"Langjährige Erfahrung","keywords":["7½ Jahre","4 Projekte","zuletzt Apr. 2025"]},{"name":"Cucumber","level":"Souveräne Nutzung","keywords":["3 Jahre","6 Projekte","aktuell im Einsatz"]},{"name":"Svelte","level":"Souveräne Nutzung","keywords":["2¾ Jahre","5 Projekte","aktuell im Einsatz"]},{"name":"SvelteKit","level":"Souveräne Nutzung","keywords":["2¾ Jahre","5 Projekte","aktuell im Einsatz"]},{"name":"Apollo GraphQL","level":"Langjährige Erfahrung","keywords":["5¾ Jahre","4 Projekte","zuletzt Juni 2025"]},{"name":"Jest","level":"Souveräne Nutzung","keywords":["5 Jahre","3 Projekte","zuletzt Juni 2025"]},{"name":"Terraform","level":"Souveräne Nutzung","keywords":["2¼ Jahre","3 Projekte","aktuell im Einsatz"]},{"name":"Serverless","level":"Souveräne Nutzung","keywords":["2¼ Jahre","2 Projekte","aktuell im Einsatz"]},{"name":"Kubernetes","level":"Souveräne Nutzung","keywords":["3 Jahre","3 Projekte","zuletzt vor 11 Monaten"]},{"name":"Ansible","level":"Praxiserfahrung","keywords":["5¼ Jahre","1 Projekt","zuletzt Apr. 2025"]},{"name":"Postmark","level":"Praxiserfahrung","keywords":["5¼ Jahre","1 Projekt","zuletzt Apr. 2025"]},{"name":"Stimulus","level":"Praxiserfahrung","keywords":["5¼ Jahre","1 Projekt","zuletzt Apr. 2025"]},{"name":"Playwright","level":"Praxiserfahrung","keywords":["8 Monate","3 Projekte","aktuell im Einsatz"]},{"name":"Auth0","level":"Souveräne Nutzung","keywords":["5 Jahre","2 Projekte","zuletzt Sept. 2023"]},{"name":"JavaScript","level":"Grundkenntnisse","keywords":["2¾ Jahre","5 Projekte","zuletzt März 2021"]},{"name":"hledger","level":"Praxiserfahrung","keywords":["8 Monate","2 Projekte","aktuell im Einsatz"]},{"name":"Rust","level":"Praxiserfahrung","keywords":["8 Monate","2 Projekte","aktuell im Einsatz"]},{"name":"Vitest","level":"Praxiserfahrung","keywords":["8 Monate","2 Projekte","aktuell im Einsatz"]},{"name":"AWS","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Better Auth","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Drizzle ORM","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"ElevenLabs","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Fly.io","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Infisical","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Neon DB","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"NINA","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Paraglide","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Tailscale","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Typst","level":"Praxiserfahrung","keywords":["8 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Vuetify","level":"Souveräne Nutzung","keywords":["2½ Jahre","2 Projekte","zuletzt Juni 2025"]},{"name":"Hetzner","level":"Praxiserfahrung","keywords":["1½ Jahre","2 Projekte","zuletzt vor 11 Monaten"]},{"name":"Bash","level":"Praxiserfahrung","keywords":["2 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Bats","level":"Praxiserfahrung","keywords":["2 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"Nix","level":"Praxiserfahrung","keywords":["2 Monate","1 Projekt","aktuell im Einsatz"]},{"name":"HyGraph","level":"Souveräne Nutzung","keywords":["3 Jahre","2 Projekte","zuletzt Juni 2023"]},{"name":"Ember","level":"Grundkenntnisse","keywords":["2¾ Jahre","2 Projekte","zuletzt März 2019"]},{"name":"S3","level":"Praxiserfahrung","keywords":["1¼ Jahre","1 Projekt","zuletzt vor 11 Monaten"]},{"name":"sops","level":"Praxiserfahrung","keywords":["1¼ Jahre","1 Projekt","zuletzt vor 11 Monaten"]},{"name":"Neo4J","level":"Grundkenntnisse","keywords":["2½ Jahre","2 Projekte","zuletzt März 2021"]},{"name":"D3","level":"Grundkenntnisse","keywords":["2¾ Jahre","1 Projekt","zuletzt März 2019"]},{"name":"Highcharts","level":"Grundkenntnisse","keywords":["2¾ Jahre","1 Projekt","zuletzt März 2019"]},{"name":"Uberspace","level":"Grundkenntnisse","keywords":["2¾ Jahre","1 Projekt","zuletzt März 2019"]},{"name":"Authentik","level":"Praxiserfahrung","keywords":["1 Jahr","1 Projekt","zuletzt Juni 2025"]},{"name":"Helm","level":"Praxiserfahrung","keywords":["1 Jahr","1 Projekt","zuletzt Juni 2025"]},{"name":"Vike","level":"Praxiserfahrung","keywords":["1 Jahr","1 Projekt","zuletzt Juni 2025"]},{"name":"Google Cloud","level":"Praxiserfahrung","keywords":["2¼ Jahre","1 Projekt","zuletzt Sept. 2023"]},{"name":"Hasura","level":"Praxiserfahrung","keywords":["2¼ Jahre","1 Projekt","zuletzt Sept. 2023"]},{"name":"Testing-Library","level":"Praxiserfahrung","keywords":["2¼ Jahre","1 Projekt","zuletzt Sept. 2023"]},{"name":"Vercel","level":"Praxiserfahrung","keywords":["2¼ Jahre","1 Projekt","zuletzt Sept. 2023"]},{"name":"Cypress","level":"Grundkenntnisse","keywords":["1½ Jahre","1 Projekt","zuletzt Apr. 2020"]},{"name":"Storybook","level":"Grundkenntnisse","keywords":["1½ Jahre","1 Projekt","zuletzt Apr. 2020"]},{"name":"Python","level":"Grundkenntnisse","keywords":["2 Monate","2 Projekte","zuletzt Jan. 2018"]},{"name":"Java","level":"Grundkenntnisse","keywords":["8 Monate","1 Projekt","zuletzt Aug. 2012"]},{"name":"PHP","level":"Grundkenntnisse","keywords":["3 Monate","1 Projekt","zuletzt Juni 2018"]},{"name":"Wordpress","level":"Grundkenntnisse","keywords":["3 Monate","1 Projekt","zuletzt Juni 2018"]},{"name":"MQTT","level":"Grundkenntnisse","keywords":["1 Monat","1 Projekt","zuletzt Jan. 2018"]}]}