Softwareentwicklung auf Projektbasis

Individualentwicklung

Ich unterstütze Sie gerne bei der Entwicklung von auf Ihre speziellen Anforderungen angefertigte Software. Dabei spezialisiere ich mich auf die folgenden Bereiche.

Data Engineering

Als Data Engineer berate ich bei der Konzeption, Umsetzung und Betrieb einer zentralen Datenplattform, die es durch die zeitnahe Verarbeitung kleiner und großer Datenmengen ermöglicht, Geschäftsprozesse zu digitalisieren und neuartige Dienstleistungen anzubieten.

Ich helfe dabei, in- und externe Quellsysteme anzubinden. Zusammen mit der Fachabteilung modelliere ich die eingehenden Daten, um diese zu strukturieren und aufzubereiten. Ich setze Microservices um, die Geschäftsprozesse abbilden oder überhaupt erst ermöglichen.

Ich arbeite mit Data Scientists zusammen, die explorativ oder prototypisch Algorithmen und Machine Learning-Modelle entwickeln (z.B. mit Python oder R). Teilweise entwickele ich die Algorithmen auch selbst. Ich unterstütze dabei, diese ad-hoc-Auswertungen in produktionsreife Jobs zu überführen, die sich ins Gesamtsystem einfügen, regelmäßig ausgeführt, versioniert, und hinsichtlich Korrektheit und Laufzeit überwacht werden. Im Fehlerfall werden Jobs neu gestartet oder auf eine ältere Version zurückgerollt. Bevor ein neues Modell aktiv geschaltet wird, wird die Performance gegenüber der Vorversion getestet.

Haben Sie noch keine zentrale Datenplattform? Ich helfe gerne dabei, ein solches System vom Grund auf zu konzeptionieren und umzusetzen. Dazu halte ich auch gerne einen Workshop (aktuell bevorzugt remote). Noch einfacher geht es, wenn Sie meine standardisierte Plattform integrieren, entweder in Ihrem eigenen Rechenzentrum oder als Service.

Technologien

Apache Spark ist ein Framework, mit dem man große Datenmengen in relativ kurzer Zeit verarbeiten kann. Geschrieben in Scala bietet es eine einheitliche API für Batch-Verarbeitung, SQL, Machine Learning, und Streaming in den Programmiersprachen Scala, Java, und Python. Zum Aufbau einer zentralen Datenplattform bieten sich Apache Kafka oder Apache Pulsar an.

Softwareentwicklung, Microservices

Microservices passen ideal in eine zentrale Datenplattform, die Event-Streams verarbeitet, aber auch zu einfachen Message Queues. Dies kann mit jeder Programmiersprache geschehen, für die es entsprechende Anbindungen gibt. Ich bevorzuge Scala, Python, Kotlin.

Für Microservices besonders wichtig sind Zuständigkeit des Services, Datenmodellierung und der Austausch mit anderen Services. Dabei unterstütze ich gerne mit Domain Driven Design und Workshops, die zusammen mit der Fachabteilung gehalten werden. Ein Microservice bildet dann eine genau definierte Fachlichkeit ab und ist immer Owner seiner Daten.

Für reine Web Services und RESTful Backends setze ich bevorzugt das Play Framework ein. Play bietet eine skalierende, nicht-blockierende Architektur und erlaubt einen schnellen Entwicklungszyklus. Geschrieben in Scala, basierend auf Netty und Akka, ist es bestens für die moderne Webentwicklung gerüstet. Jedes andere Scala-basierte Framework ist ebenfalls möglich.

Web Frontends

Passend dazu entwickele ich die Front-ends in Scala.js. Scala.js erlaubt es, die vielen Probleme von JavaScript zu umgehen und Code zwischen Front- und Backend zu teilen. Zur Umsetzung des User Interfaces eignet sich React, das Scala.js perfekt ergänzt und im Gegensatz zu Angular kein vollständiges Framework darstellt. React kann mit Scalas unveränderlichen Datenstrukturen umgehen. Scala.js eignet sich für komplexe Webanwendungen und Admin-Interfaces.

Leistungen im Überblick

Wieder für Projekte verfügbar: Derzeit in begrenztem Umfang verfügbar.

Jetzt Kontakt aufnehmen

Kontakt | Impressum | Datenschutz