dev_1

Software-Engineering

Als Softwareentwickler mit einem Schwerpunkt auf Webservices biete ich die Entwicklung von APIs, gRPC Services, CLI Tools und mehr an. Hier eine Übersicht über Dienstleistungen aus dem Bereich der Softwareentwicklung, die ich Ihnen bieten kann.

RESTful APIs

Nach Ihren Ideen, oder auch nach Ihren bereits bestehenden Spezifikationen (OAS3), entstehen RESTful APIs, welche exakt Ihren Anforderungen entsprechen. Beim Aufbau sämtlicher Dienste wird auf Sicherheit, Stabilität, Schnelligkeit und Effizienz geachtet.

Die Dienste können mittels OAuth2 und Java Web Tokens (JWT) absichert werden. Auch die Integration eines eigenen OAuth2-Servers ist möglich. Custom-Authorisierungen nach Ihren Vorgaben können ebenfalls implementiert werden.

Neben der regulären Dokumentation (README) können auch OAS3 Spezifikationen erstellt werden. Mit diesen Specs können entsprechende API-Clients schnell und einfach generiert werden.

gRPC Services

Ebenso wie reguläre APIs werden auch gRPC-Services umgesetzt. Entweder nach expliziten Vorgaben oder auch nach einer bereits bestehenden Proto-Definition. Oft werden APIs mit gRPC-Services kombiniert, um beides unter einem Dach zu haben. Somit liefert ein Dienst sowohl RESTful APIs als auch gRPC Schnittstellen an.

Headless Services

Dienste, welche lediglich im Hintergrund arbeiten und keinerlei Interaktion benötigen, sind ebenso möglich. Damit ist die Entwicklung von Workern möglich, die zum Beispiel lediglich auf AMQP/MQTT Nachrichten reagieren und persistente Nachrichten aus Message Queues abarbeiten. Auch die Entwicklung von klassischen Cronjobs ist somit möglich.

CLI Tools & Scripts

Vom Docker Entrypoint Shell Script bis zum komplexen Deployment Helfer werden CLI Tools und Skripte immer wieder benötigt. Meist im Bereich der Automation und CI/CD, aber mitunter auch ganz einfach als kleine Helfer auf der lokalen Maschine. Die Anwendungsbereiche sind vielfältig und wohl jeder hatte schon einen gewissen Bedarf an solch spezifischen Helfern.

Ressourcen

Eine Anbindung der entwickelten Software an Ressourcen wie Datenbanken, Caches, Message Queues, 3rd-Party APIs etc. sind dabei selbstverständlich. Die Dienste bedienen sich zur Konfiguration, je nach Wunsch, entweder über Konfigurationsdateien oder über Umgebungsvariablen (.dotenv). Vor allem bei der Verwendung als Docker Container bietet sich die Verwendung von Umgebungsvariablen besonders an.

Delivery

Meist werden die Dienste für Linux auf Basis von amd64 Architektur entwickelt. Somit kann Software als Binary, Debian Installer oder auch als Docker Container geliefert werden. Per Cross-Compiling können aber auch andere OS (windows/darwin) und Architekturen (arm64, arm, amd) angesprochen werden. Die Zielsysteme reichen somit vom 32-Bit Raspberry Pi bis zum 64-Bit ARM für Apple Systeme (und alles dazwischen).