Johann Jacobsohn

BerufserfahrungUnwichtige einblenden

2025 — jetzt
Senior Fullstack Entwickler bei aiomatic
2021 — 2025
Fullstack JavaScript-Entwickler bei Open-Xchange
2020 — 2021
Softwareentwickler bei customQuake
2020 — 2021
Projekt "Entwicklung einer minifizierten SO₂-Kamera" bei Hamburg Innovation
2019 — 2020
Wissenschaftliche Mitarbeiter an der UHH im Rahmen des Junosol-Projekts
2018 — 2019
Wissenschaftliche Mitarbeiter am Institut für Geophysik an der Uni Hamburg
2008 — 2019
Softwareentwickler bei Satzmedia
2006 — 2008
Softwareentwickler bei Internet Products
2006 — jetzt
Freiberufliche Tätigkeit als Softwareentwickler

AusbildungUnwichtige einblenden

2016 — 2021
Mitglied der School of integrated Climate System Sciences (SICSS) des Exzellenzclusters »Integrierte Klimasystem-Analyse und Vorhersage« (CliSAP) Hamburg
2014 — 2021
Doktorand der Erdsystemwissenschaften am Institut für Geophysik, Uni Hamburg
2015 — 2017
Promotionsstipendiat an der Universität Hamburg
2014
Diplom der Geophysik, Thema der Abschlussarbeit: »Intraplate volcanism and mantle plume dynamics: results from analogue experiments«, PDF
2011
Industriepraktikum bei RWE Dea im Department »Geo Data & Applications / Geo Databases«, in enger Zusammenarbeit mit Contractors von Halleyburton/Landmark.
2010
Forschungspraktikum in der »Section 2.3, Earths Magnetic Field« mit Dr. Vincent Lesur am Deutschen Geoforschungszentrum, Potsdam
2011 — jetzt
Mitglied der Arbeitsgruppe »Physics of magmatic Systems« von Prof. Dr. Matthias Hort am Institut für Geophysik an der Uni Hamburg
2008 — 2014
Studium der Geophysik am Institut für Geophysik, Uni Hamburg
2005 — 2008
Studium der Physik am Department für Physik, Uni Hamburg

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

https://www.open-xchange.com/products/ox-app-suite

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ßprojekte
Nach 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

Python Packaging Index (pip)

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

coding-tipps.pdf, review-tipps.pdf

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

bitbucket-Snippet

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

github

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

github

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

github

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

Projektseite, github

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

Webseite

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

Webseite

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

"Source"-CSS, HTML-Quine, Blog-Post

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.