Johann Jacobsohn
- Signal
- +49157 7426 1852
Aktuelle Projekte

Everymail myAccount
- Zeitraum
- März 2024
- Status
- active
- Technologien
- YAML, A11Y
MyAccount ist eine relativ große interne Typescript/React-Anwendung, die im internen Kubernetes-Cluster bereitgestellt wird. Sie wird es potenziell Hunderttausenden von Nutzern ermöglichen, E-Mail-Postfächer zu verwalten und ist ein wichtiger Bestandteil bei der Einführung von Open-Xchange in das Endkundengeschäft.

OX App Suite
- Zeitraum
- 2021 - jetzt
- Status
- active
- Technologien
- A11Y, Vue, Backbone
- Link
App Suite ist eine umfangreiche Software-Suite, die täglich von Hunderten Millionen Nutzern verwendet wird. Während meiner Arbeit an App Suite war ich dafür verantwortlich, den bestehenden Code zu warten und zu verbessern, neue Funktionen zu entwickeln, Unit-Tests und End-to-End-Tests zu schreiben und Anfragen von internen und externen Kunden zu bearbeiten. Um die langfristige Lebensfähigkeit unseres Produkts zu gewährleisten, habe ich die Initiative zur Transformation unseres Legacy-Backbones in Vue.js geleitet. Ich war auch einer der führenden Entwickler, um die Barrierefreiheit von App Suite und bei Open-Xchange sicherzustellen.
SpaßprojekteNach Technologie filtern...
Neben den vielen vielen kleinen und großen Projekt die ich für verschiedene Arbeitgeber umgesetzt habe, habe ich über die Jahre auch an einer Unmenge private Spaß- und Forschungsprojekte gearbeitet, von denen ich eine kleine Auswahl hier vorstellen möchte. Alle Projekte sind open source und in der Regel auf github, bitbucket oder gitlab gehostet.

Papersurfer
- Zeitraum
- Since August 2020
- Status
- Abgeschlossen
- Technologien
- Python
- Link
Papersurfer nutzt Mattermost (wie Slack) als gemeinsame Datenbank um wissenschaftliche Paper zu teilen und zu organisieren und stellt dafür (zusätzlich zu Mattermost) eine Text-UI zur Verfügung. Die Anwendung kann direkt vom Python Packaging Index (pip) installiert werden.

SlideSurfer
- Zeitraum
- Oktober 2020
- Status
- auf die lange Bank geschoben
- Technologien
- NextJS, TypeScript, React, SWR, SASS, Material UI
Eine Plattform zum gemeinsamen erstellen, betrachten, teilen und sozial-distanziertem halten von Slide basierten Vorträgen. Ein Experiment um zu testen ob sich in der Praxis mit SWR Websocket-ähnliche Performance mit einfachen REST-Schnittstellen erreichen lässt, und ein weiterer Vorwand um mit NextJS und TypeScript zu spielen. Im Moment erst mal auf der langen Bank.

TicketSurfer
- Zeitraum
- Oktober 2020
- Status
- aufgegeben
- Technologien
- Javascript, CSS3, Typescript, NextJS, React, REST, SWR
Es wurde mir zu anstrengend drei Browserfenster mit Ticket, Pull Request und Slack-Chat offen, aktuell und synchron zu halten und habe deswegen eine Anwendung geschrieben die alles drei in einer vereinten synchronen Ansicht darstellt. Nutzt die REST-Schnittstellen von Bitbucket, Redmine und Slack (über eine eigene Slack-App) um die Inhalte lokal und serverseitig zu rendern und bleibt dabei dank SWR automatisch aktuell.

Coding & Review Tipps
- Zeitraum
- Juni 2019 bis Februar 2020
- Status
- Abgeschlossen
- Technologien
- Jupyter Notebook
- Link
Im Rahmen des "JUNOSOL - Jupyter-notebooks for self-organized learning"-Projektes habe ich Studierende betreut, Screencasts produziert und auch Dokumente über Code und Review-Prozesse produziert, unter anderem zwei Dokumente mit Tipps zu gutem Code (englisch) und Tipps zu Review-Prozessen (englisch) im Zusammenhang mit wissenschaftlichen Jupyter Notebooks.

git-fix
- Zeitraum
- Juli 2019
- Status
- Abgeschlossen
- Technologien
- git, bash, bitbucket api, gitlab api, redmine api
- Link
Ein ein kleines Projekt um einen git-Unterbefehl zu implementieren der Redmine und gitlab/bitbucket synchronisiert und den Umgang mit git flow basierten Projekten ein klein bisschen einfacher macht. git-fix interagiert mit den REST-APIs von Redmine, bitbucket und gitlab um automatisch Pull-Requests aus Tickets zu erstellen, wobei Zugangsdaten durch git-config verwaltet hat. Dies hat sich als sehr nützlicher Ansatz erwiesen den ich in vielen anderen Projekten wieder verwenden konnte.

SO2 Control
- Zeitraum
- 2013 bis 2019
- Status
- Im Einsatz
- Technologien
- C, C++
Ein langjähriges und umfangreiches Hard- und Software Projekt zum betreiben von wissenschaftlichen UV-Kameras. Betreibt gleichzeitig Kameras, Spektrometer, Motoren und Thermosensoren. Eingebettet in ein größeres Ökosystem aus verschiedenen anderen Hardware-, Software- und Datenprojekten. Im Einsatz in verschiedenen Messkampagnen auf mehreren Vulkanen.
Is Johann Dead Yet?
- Zeitraum
- Juni bis Oktober 2016
- Status
- beendet (war eh komisch)
- Technologien
- C, Javascript, Espruino
- Link
Weil die Temperaturen in meinem Uni-Büro sehr hoch sein können habe ich im Sommer 2016 diese kleine Anwendung gebaut die die Temperatur in meinem Büro kontinuierlich überwacht und Vermutungen darüber anstellt ob ich noch am Leben bin. Die Zimmertemperatur wird von einem Espruino durch eine Temperatursonde gemessen und an meinen Arbeitsrechner geschickt, der daraus eine statische Dropbox-Webseite erstellt. Die Anwendung ist starb als Dropbox diesen Dienst einstellte.

SystemdTray
- Zeitraum
- Februar bis März 2016
- Status
- Abgeschlossen
- Technologien
- C++, QT5, dBus
- Link
Ich brauchte für ein anderes Projekt ein kleines Programm um einen systemd-Dienst zu überwachen und als farbigen Indikator darzustellen. Ich konnte damit meine ersten Erfahrungen mit dBus und QT5 machen.

Arduino Motorcontroller
- Zeitraum
- May bis September 2015
- Status
- Abgeschlossen
- Technologien
- C, Arduino, Hardware, Elektrotechnik
- Link
Für ein anderes Projekt benötigte ich einen günstigen integrierten Schrittmotorcontroller der sowohl manuell als auch serielle Inputs verarbeiten und dabei einen Unterbrechungssensor überwacht. Mein erstes Projekt mit CAD gedruckten Leiterbahnen.
Kaffeesatz
- Zeitraum
- Februar 2013 bis August 2014
- Status
- Abgeschlossen
- Technologien
- HTML5, CSS3, NodeJS, Websockets, Express, MongoDB
- Link
Ein weiteres Spaßprojekt für alle, die Kaffeestrichlisten (oder jede andere Art von Strichliste) führen und verwalten. Erspart den Kontakt mit Zetteln, Stiften und Kopfrechnen. Die mobile Touch-Strichlisten-App aktualisiert sich selbst und ist installierbar auf iOS und Firefox. Zudem erlaubt eine einfach zu bedienende Administrations-Oberfläche jederzeitiges das Abrechnen, Verwalten von Nutzern und Getränken sowie clevere nachträgliche Preissteigerungen. Alles wird in Echtzeit durch einen Websocket-Server synchronisiert, der Code ist auf github.
Mensa App
- Zeitraum
- 2011 - 2014
- Status
- Nicht mehr aktiv
- Technologien
- NodeJS, Phonegap, Javascript, CSS3, EnyoJS, Mocha, React, VueJS, Mojo, MongoDB
- Link
Eines meiner langfristigsten und größten Spaßprojekte bisher. Eine App zum Anzeigen, Filtern und Organisieren von wöchentlichen und täglichen Speiseplänen der Universität Hamburg und anderen Unis. Aber nicht nur eine App, sondern ein Dutzend, auf fast allen Plattformen, in allen App Stores: Es gab Varianten für Palm/HP Mojo, Enyo, Android Tablet (auf Android 3), Android Phone (Android 2+), iPhone, iPad, Blackberry Playbook, Nokia N40, Win7 Phone FirefoxOS, Chrome Webstore, und sogar als Win7 Web Slice. In seiner Blüte hatte die App tausende Nutzer und eine eigene kleine Community. Geschrieben in JS/CSS mit verschiedensten Frameworks und beliefert von einem NodeJS Backend Service.

Enyo-BBUI
- Zeitraum
- Juli bis November 2013
- Status
- aufgegeben
- Technologien
- Javascript, CSS3, EnyoJS, bbui.js
- Link
Enyo ist eine Framework von HP für native HTML5-Anwendungen, bbui.js eine Bibliothek für die Oberfläche von HTML5 Anwendungen auf Blackberry 10. Enyo-BBUI verbindet beide Bibliotheken zur Erstellung von nativ-anmutenden HTML5-Anwendungen auf Blackberry 10 Geräten und wurde u.A. auf dem offiziellen Enyo-Blog vorgestellt.

HTML Quine
- Zeitraum
- September 2008
- Status
- abgeschlosen
- Technologien
- HTML5, CSS3
- Link
Ein Quine ist ein Programm das seinen eigenen Quelltext ausgibt. In 2008 habe ich entdeckt dass sich dies sogar mit HTML+CSS umsetzen lässt und schrieb deswegen einen "Source"-CSS und einen HTML-Quine. Ich war wahrscheinlich nicht der erste der auf diese Idee gekommen ist, aber ich bilde es mir trotzdem ein, ich habe sogar einen Blog-Post darüber geschrieben.









