Ruben Bakker, Senior Software Engineer
Ihr Software Entwickler für alle Fälle
Benötigen Sie für Ihr Projekt einen erfahrenen Softwareentwickler, der vom Konzept über das Backend bis zum
Frontend überall mit anpackt? Der sich vor CI/CD, Docker und Kubernetes nicht scheut? Der zuhört und mitdenkt, um
optimale Lösungen zu finden?
Dann sind Sie hier richtig.
Kontaktieren Sie mich, ich bin gespannt auf Ihr Projekt.
Über mich
Grüezi!
Darf ich mich vorstellen: Ruben Bakker, Senior Software Engineer.
Ich liebe es, Softwareprodukte zu entwickeln, die Menschen bei der Arbeit unterstützen und produktiver machen, damit sie mehr Zeit für das Wesentliche haben. Mir liegen schnelle, tragfähige und kundennah entwickelte Produkte am Herzen, die im Alltag funktionieren.
Ich bin offen und lerne gerne dazu. Es macht mir Freude mitzudenken um die optimale Lösung zu finden. Dabei sollen die für das Projekt passenden Sprachen und Technologien eingesetzt werden.
Arbeitserfahrung
Gründer & Senior Software Engineer
uncomplex gmbh, Roggwil
2017 - heute
Neu-Entwicklung und Vertrieb von Mailplane v4.0, die beliebte macOS Applikation für Gmail.
Sowie verschiedene Freelancing Software Kunden Projekte.
Senior Software Engineer
myneva Schweiz AG, Sursee
2020 - 2024
Konzeption, Entwicklung und Integration von mobilen Lösungen, welche die Prozesse der in Spitex- und Pflegeheim-Institutionen automatisieren oder vereinfachen. Implementation von mehreren zentralen Kubernetes Diensten in Kotlin sowie C#.
Senior Software Engineer
Evernote Corp, Redwood City, USA
2017 - 2018
Ich war "remote" Teil des Evernote macOS Team in Kalifornien.
Projekte waren z.B. das neue Evernote Business Feature "Spaces" sowie die Trennung zwischen persönlichen und Business Accounts.
Director of Products
Evernote GmbH, Zürich
2012 - 2017
Ich habe das Evernote Development Studio in Zürich eröffnet und dazu Entwickler, UI/UX Designer sowie QA Ingenieure rekrutiert. Über die Zeit wuchs das Team auf zehn Personen an. Das Studio war Teil der Software Produkte Abteilung in den USA (Redwood City, Kalifornien sowie Austin, Texas) und hat wichtige Innovationen und Patente hervorgebracht. Einige davon wurden in Evernote Produkte für Mac und iOS integriert.
Gründer & Senior Software Engineer
uncomplex gmbh, Sursee
2007 - 2012
Konzeption, Entwicklung, Design, Vermarktung der Mailplane app für macOS sowie der Replies app. Beide Apps wurden mit Objective-C entwickelt. Daneben einige Freelancing Projekte.
Senior Software Engineer R & D
BISON Schweiz AG, Sempach-Station
2004 - 2009
Meine Aufgabe war es Ideen, Prototypen sowie erste Implementierungen von Produkt-Innovationen und Verbesserungen für Bison Solution (Java) zu entwickeln. Zusätzlich habe ich die verschiedenen Entwicklungs-Teams unterstützt.
Technical Lead
BISON Schweiz AG, Sempach-Station
1997 - 2004
Ich entwickelte die technische Infrastruktur von Bison Solution, eine flexible ERP Software. Dazu baute ich ein Team von 12 Java Entwicklern auf, welches die Grundlagen für die Applikations-Entwicklung bereitstellte.
Tech Stacks
Mit diesen Technologien habe ich praktische Projekt Erfahrungen
Datenbanken
SQL for Postgres, MariaDB/MySQL, SQLite and Oracle
JVM Backend Entwicklung
Kotlin, Java, Spring Boot, Apache Camel, Clojure
.NET Backend Entwicklung
C#, Asp.net, EntityFramework
Python Backend Entwicklung
python, Django, pytest
Full-stack Entwicklung
React, next.js, Remix, Prisma, HTML5/CSS, Tailwind CSS, Astro, ClojureScript
Server Betrieb
Docker & Kubernetes
Betriebssysteme
Linux: Arch-Linux, Fedora and Ubuntu; macOS; Windows; Android; iOS
macOS Entwicklung
Objective-C/C++, Foundation, Cocoa
Mobile Android Entwicklung
Kotlin, Jetpack Compose, RxJava, SQLite, Retrofit
Mobile iOS Entwicklung
Objective-C and UIKit
Rust Entwicklung
Rust, Axum, Rocket, Tokio
Scripting und Automation
bash, python, ruby, Powershell
CI/CD
Github Actions, Bitbucket Pipelines, Gitlab, CodeMagic, Jenkins
Metriken
Prometheus & Grafana
Projekt Portfolio
Auswahl von Projekten, welche einen Einblick in meine Arbeit geben.
Angehörige Pflege Web App
Mobile Erfassung von Pflege Leistungen durch Angehörige
Konzeption und Entwicklung einer responsiven Web-Applikation für pflegende Angehörige, die die Planung, Ausführung und Abrechnung von Pflegeleistungen ermöglicht:
- Spring Boot Dienst: REST APIs sowie Datenhaltung mit JPA/MariaDB
- Typescript/React.js Ant Design UI für Pflegende Angehörige
- Synchronisation der Einsätze, Patienten etc. sowie Rückimport der Leistungen
- Integration mit myneva’s iDP Service für Single-Sign-On
eMediplan
Integration eMediplan für Mobile Geräte
Integration des eMediplan Standard und API, damit Desktop und Mobile Applikationen Medikationspläne mit Ärzten und Spitäter effizient austauschen können:
- Ein Spring Boot Dienst für die Datenzuordnung, und APIs Desktop- und Mobile Applikationen
- Erweiterung der Android App: Scannen, generieren sowie speichern von PDF Mediplänen
- Synchronisation der Medikamenten-Verordnungen mit den on-prem Spitex Systemen
Aufleben Natur
Biodiversität Plattform mit next.js
Diese Platform dient der Förderung der Biodiversität in der Schweiz. Mit dem Trittstein-Designer können Biodiversitäts-Projekte erstellt und durchgeführt werden. Das Portal bringt sowohl Anbieter, Organisationen und Benuterinnen zusammen und stellt eine umfrangreich Wissendatenbank zur Verfügung.
Die Platform besteht aus:
- next.js mit React und Typescript für das Frontend
- python und Django für das Backend, Authetifizierung sowie Angebote
- DatoCMS als headless CMS für Content wie Blog, Filter u.v.m
- Brevo für Transaktionale Emails und Kommunikation
- Volltext Suche sowie Teile der Navigation
- Mehrsprachigkeit mit lokalisierten Domänen und URLs
Ich habe zusammen mit dem Team die Architektur definiert und durfte dabei u wichtige Teile der Platform implementieren:
- Implementierung des “Trittstein-Designers” mit Typescript, React und next.js
- Registrierung, Authentifizierung von Partner, Anbieter und Benutzerinnen mit auth.js
- Angebotsdatenbank mit Typescript, React, next.js
- Synchronisation der Daten zwischen Backend und Brevo
- Umsetzung Mehrsprachigkeit in next.js
Spitex Rechnungen
Leistungsabrechnungen und eBill
Konzeption, Entwicklung und Integration von Kubernetes Services, um Leistungsabrechnungen von Pflegeorganisationen zu digitalisieren.
- Ein Spring Boot Dienst, um Rechnungen an Krakenkassen über das MediData Netz zu übermitteln.
- Ein Spring Boot Dienst, um Rechnungen über eBill, Email Portal sowie externe Druckdienstleister auszuliefern.
- Eine React.js/Remix Web Applikation, um eBill Ab- und Anmeldungen sowie Ūbermittlungsfehler darzustellen.
Integration Service
FHIR und APIs für Software Partner und Android Tablets
Dieser Dienst ermöglicht das Entwickeln von Konnektoren, welcher APIs für Partner Systeme oder Mobile Geräte zur Verfügung stellt. Ich habe dieses Produkt von Grund auf konzipiert und entwickelt:
- Ein Spring Boot Dienst, der eine Plattform für Konnektoren implementiert
- Eine React/Remix Web App, um Integrationspartnern eine Self-Service-Oberfläche zur Verfügung zu stellen
- Erweiterung des bestehenden Windows Services mit C# für das myneva.swing System, welches GraphQL Queries und Mutationen zur Verfügung stellt
- Prometheus Schnittstelle, welche auf Basis Micrometer Metriken für Grafana Boards und Alerts zur Verfügung stellt
Als Erstes habe ich einen Logistik-Konnektor entwickelt, der heute von verschiedenen Partner Firmen eingesetzt wird:
- FHIR Schnittstelle für diverse Ressourcen wie z.B. Patient, Coverage, CarePlan, Practitioner mit HAPI FHIR für Java
- Integration in die myneva SWING2Go Android App mit Kotlin, RxJava, Retrofit
SHIP Konnektor
Digitalisierung Bedarfsmeldungen für Ambulante Dienste
Um den grossen administrativen Aufwand für die Bearbeitung von Bedarfsmeldungen zu reduzieren, wurde dieser Prozess durch den eCH Standard 0237 standardisiert. Durch den SHIP Konnektor konnte die Kommunikation zwischen Spitex, Arzt sowie Krankenkasse vollständig digitalisiert werden.
Dazu habe ich dazu konzipiert und implementiert:
- Neuer Integration Service Konnektor mit Spring Boot und Kotlin
- Datenmodell in MariaDB und der Synchronisation mit GraphQL
- Web App mit React, Remix, TypeScript und Tailwind CSS, um Rückfragen der Krankenkassen zu beantworten sowie den Status der Bedarfsmeldungen einzusehen
- Single-Sign-On, damit die Web App direkt in der SWING Windows App eingebunden werden kann
FileSync und FormSync
Patienten Dokumente mit Android Geräten synchronisieren
Dieses Produkt-Feature durfte ich konzipieren und komplett entwickeln: Die Patienten Dokumente wie PDF, PDF-Formulare, sowie Fotos mit den mobilen Geräten synchronisieren, damit diese offline zur Verfügung stehen und von ambulanten oder stationären Pflegerinnen genutzt werden können. Mit Hilfe der myneva Scanner App erstellt man mehrseitige PDF Dateien und mit der myneva Forms App werden Formulare ausgefüllt.
- Implementierung eines Konnektors für den Integration Server mittels Kotlin und Spring Boot, welcher eine REST Api für mobile Geräte zur Verfügung stellt
- Definierung und Implementierung von GraphQL Queries und Mutation in C#
- Implementierung der Android Synchronisation mit Kotlin, Retrofit und RxJava
- Design und Implementierung des UIs mit Kotlin und Jetpack Compose
- Zur Verfügung stellen von Grafana Boards and Alerts, welche auf Prometheus Metriken zurückgreifen
SWING2Go SyncServer
Neue Daten Synchronisation für Android Pflege App
Wir arbeiteten zu zweit an diesem Projekt, um einen neue Synchronisations-Infrastruktur zu implementieren. Dabei wurde die alte Windows-Server basierte Lösung durch eine Neu-Implementierung ersetzt. Diese Infrastruktur wird von knapp 10’000 Android Tablets täglich genutzt und steht 24/7 zur Verfügung.
- Implementieren des Sync Servers mit C#, Entity Framework und asp.net mit REST APIs für Geräte, für Windows Server der Einrichtungen sowie für die Management Oberfläche.
- Erstellen von Docker Images mit CI/CD
- Erstellen von Kubernetes Definitionen mit automatischen Deployments in drei Umgebungen: dev, staging, prod
- Erstellen eines Sync Dienstes für die Windows Server, welcher mit C# auf die SAP Anywhere Datenbank zugreift
- Neu-Erstellung der Android Sync Library mit Kotlin und RxJava
- Automatische Überwachung der Sync Infrastruktur:
- Erstellen von Incidents auf der öffentlichen Status Seite
- Automatische Benachrichtigung der IT Bereitschaft PRTG
Nach Fertigstellung konnten wir innerhalb weniger Monate sämtliche Kunden und Geräte auf die neue Sync Umgebung migrieren.