Ich bin Daniel Clausmeyer

Wer ich bin

Portrait von mir, männliche Person, weiß, 1.8m groß

Mein Name ist Daniel Clausmeyer, geboren 1994 in Lengerich und heute wohnhaft in der malerischen Stadt Tecklenburg, Deutschland. Als ausgebildeter Fachinformatiker für Anwendungsentwicklung und begeisterter Technologieenthusiast bringe ich sowohl eine solide Grundlage in der Programmierung als auch eine Leidenschaft für kontinuierliches Lernen in die Arbeit ein.

Vom ersten HTML-Code, den ich mit einem WYSIWYG-Editor in der Realschule erstellt habe, bis hin zu komplexen Projekten in meiner beruflichen Laufbahn, hat mich die Welt der Softwareentwicklung immer fasziniert. Ich genieße die Herausforderung, neue Technologien zu erlernen und kreative Lösungen für komplexe Probleme zu finden.

Was ich kann

Software Entwicklung

HTML, CSS und JavaScript

  • Seitenstrukturierung und Textstrukturierung nach semantischen Gesichtspunkten
  • Formulare und Eingabe-Validierung
  • Responsive Design mit Flexbox und Grid
  • Erstellen und Manipulieren von Elementen
  • Asynchrone Übertragung von Daten
  • Objektorientierte Programmierung

Vue & React

  • Kommunikation zwischen Komponenten via Properties, Callbacks, Contexts, Hooks oder andere State-Management Methoden
  • Komplexe Einzel- oder Mehrseitige-Webanwendungen (MPA / SPA) mit serverseitigem Rendern (SSR)
  • Asynchrones Laden (Lazy Loading) von Komponenten

Node.js

  • Installation und Erstellen von npm Paketen
  • Web und API Server mit Frameworks wie Express und Fastify
  • Cluster von mehreren Node.js Instanzen für eine hohe Verfügbarkeit
  • Echtzeit Kommunikation über Sockets

TypeScript

  • Umfangreiche Verwendung von Data Types und Interfaces, um Fehler zu finden, bevor das Programm ausgeführt wird
  • Flexible und wiederverwendbare Funktionen mit Hilfe von Generics
  • Komplexe Funktionen mit Function Overloading die je nach Parameter unterschiedliche Implementierungen einer Funktion aufrufen

PHP

  • Verbindung zu Datenbanken wie MySQL oder PostgreSQL
  • Verarbeitung von HTML Formular Daten
  • Lesen und Schreiben von Daten in Datenbanken
  • Hochladen und Abspeichern von Dateien
  • Erstellen von einem Benutzer System mit Registrierungsformular, Benutzer Profil etc.

MySQL, PostgreSQL & Redis

  • Effiziente Datenbanken durch Normalisierung, also Strukturierung eines Datenbankschemas
  • Konsistente Daten durch Isolieren von Operationen mit Transactions
  • Auswerten und Aggregieren von Daten mit GROUP BY oder anderen Aggregat-Funktionen
  • Redis als Session-Storage oder Cache für hochperformante Applikationen

Webpack, Vite & Babel

  • Konfigurieren von einfachen bis komplexen Projekten mit Features wie Hot Module Replacement, Server-Side Rendering oder Static Site Generation
  • Bündeln und Optimieren von Anwendungen und statischen Assets
  • Transformieren von Programm-Code mit Tools wie Babel Traverse

GraphQL, Apollo & Mercurius

  • Verwendung von GraphQL zur Erstellung von flexiblen, effizienten APIs
  • Einrichten und Verwalten von Apollo Server zur Bearbeitung von GraphQL-Anfragen
  • Nutzung von Apollo Client zur nahtlosen Integration von GraphQL-Daten in Client-Anwendungen
  • Verwendung von Fastify und Mercurius zur Implementierung von performanten GraphQL-Servern

Software Verwaltung und Bereitstellung

Git, GitLab & GitHub

  • Umgang mit Git auf der Command Line oder mit Programmen wie Tower
  • Zusammenführen (Merging oder Rebasing) von Branches
  • Überprüfen von Code-Änderungen von Team-Mitgliedern zur Qualitätssicherung
  • Konfigurieren von CI/CD Pipelines mit GitHub Actions oder GitLab Runner

AWS

  • Einrichten und Verwalten von Datenbank Clustern in RDS
  • Bereitstellung von hochverfügbaren Node.js Applikationen mit Elastic Beanstalk
  • Verwalten von Domains und Netzwerken mit Route 53 und VPC
  • Speichern von Sessions oder Zwischenspeichern von häufig abgerufenen Dateien in Redis mit ElastiCache

Server, Domain & Deploy

  • Installation, Konfiguration und Sichern von Linux (z.B. Debian oder Ubuntu) Instanzen über SSH
  • Einrichten von Webservern wie NGINX oder Datenbanken wie PostgreSQL
  • Bereitstellung von einfachen Webservern bis zu komplexeren Systemen mit mehreren Services

Docker & Container

  • Verwendung von Docker Compose zur Definition und Verwaltung von Multi-Container-Anwendungen
  • Erstellung von Dockerfiles zur Automatisierung der Erstellung von Docker-Images
  • Verwendung von Docker-Netzwerken zur Verbindung von Containern und zur Sicherstellung der Kommunikation zwischen Anwendungen
  • Bereitstellung und Skalierung von Anwendungen mit Kubernetes

Hardware

Zusammenstellen, Bauen & Testen von Hardware

  • Auswahl und Zusammenbau von passenden Computerhardware-Komponenten
  • Installation und Konfiguration von Betriebssystemen und benötigter Software
  • Testen der Stabilität eines Computers mit Burn-In und Stress-Tests

Raspberry Pi, Arduino & Sensoren

  • Zusammenbau und Installation von Einplatinencomputern wie dem Raspberry Pi oder Arduino Boards wie Wemos D1
  • Anschluss von Sensoren über GPIO Pins und Abfragen von Daten über Python oder Node.js
  • Übertragen der Messergebnisse und Fernsteuerung über das Internet

Design

Photoshop & Sketch

  • Retuschieren und Farbkorrektur in Photoshop
  • Vektorgrafiken wie Logos oder Icons in Sketch designen
  • Entwerfen von Webseiten-Layouts mit interaktiven Demos in Sketch

Was ich gemacht hab

Geboren

Juni 1994

Erster Kontakt mit dem Computer

November 1994
Ich als Baby sitze auf dem Schoß meines Vaters vor dem Computer

Grundschule

Juli 2000 -Juli 2004
Mit 6 Jahren wurde ich in der Friedrich-Adolf-Krummacher-Schule (heute Teuteburger-Wald-Schule) in meiner Heimatstadt Tecklenburg eingeschult. In der 4. Klasse gab es den ersten "Informatik" Unterricht.

Realschule

März 2004 -Juli 2011
Roncalli-Realschule in Ibbenbüren. In der 7. Klasse zeigte mir ein Freund den WYSIWYG HTML-Editor "Microsoft FrontPage". Damit fing meine Begeisterung für die Software-Entwicklung, insbesondere Web-Entwicklung, an.

Berufsfachschule Elektrotechnik

September 2011 -Februar 2012

Bundesfreiwilligendienst

August 2012 -Juli 2013
Beim krankenhauseigenen Fernsehsender "Kanal-4" des Klinikums Ibbenbüren habe ich den Bundesfreiwilligendienst absolviert. Dort habe ich z.B. gelernt wie man Video-Projekte plant und strukturiert, Interviews, B-Roll und Live-Aufnahmen filmt oder Videos schneidet und den Ton abmischt.

Aushilfe in einer Hydraulik-Werkstatt

Juli 2013 -September 2014
Neben dem Aufräumen der Werkstatt, der Einlagerung von Waren, den Auslieferungsfahrten zum Kunden oder der Reparatur von Hydraulik-Zylindern habe ich auch eine Netzwerk und Telefonanlage eingerichtet. Dafür habe ich im Verkaufsraum, dem Büro und der Werkstatt Netzwerk- und Telefon-Kabel verlegt und in einem zentralen Netzwerk-Schrank zusammengeführt.

Ausbildung zum Fachinformatiker für Anwendungsentwicklung

Dezember 2014 -August 2017
Bei der creations media GmbH in Münster habe ich als Späteinsteiger die Ausbildung zu meinem Traumberuf angefangen. Dort habe ich viele wichtige Fähigkeiten erlernt, zum Beispiel wie man PHP und SQL richtig und sicher anwendet oder wie man mit Elasticsearch Produkte für Cross-selling findet. Aber auch essentielle Dinge wie der effiziente Umgang mit einer IDE wie z.B. JetBrains PhpStorm, die Versions-Verwaltung mit Git, oder wie man Fehlerberichte in GitLab schreibt und Code-Reviews durchführt wurden mir hier beigebracht. Die wichtigsten Erfahrungen waren aber die Zusammenarbeit im Team, das Ausarbeiten von Lösungen und das Planen und Koordinieren von Aufgaben.

Start als Kleinunternehmer

November 2018

Erstes Projekt als Selbständiger Entwickler

Februar 2019
Screenshot der Webseite kundk-event.de
K & K Event ist eine wunderschöne Event Location zwischen Köln und Bonn. Ich wurde beauftragt eine Internetpräsenz zu entwerfen und erstellen die das edle Ambiente der oft für Hochzeiten oder Familienfesten genutzten Location widerspiegelt. Das Design habe ich erst mit Sketch erstellt und dann mit dem Kunden abgesprochen. Umgesetzt habe ich das Projekt dann mit einem Node.js Webserver der HTML ausliefert und die Termin-Anfragen vom Kontaktformular entgegen nimmt und per E-Mail weiterleitet. Die Webseite wurde dann von mir auf einem Server unter der vom Kunden bereitgestellten Domain eingerichtet und läuft bis heute.

Kundenprojekt Firmen-Webseite

März 2020
Screenshot der Webseite adler-paletten.de
Die Firma Adler-Paletten, ein Paletten Handel aus Rheine, hat mich beauftragt ihre Firmen-Webseite zu gestalten und zu entwickeln. Auch für dieses Projekt habe ich erst mit Sketch ein Design erstellt und dann, nach Absprache mit dem Kunden, auf der gleichen Basis wie meine Kunden-Projekte davor, die Webseite entwickelt. Die Webseite erhielt neben einem Kontaktformular auch eine Sprach-Auswahl mit der, ohne neuladen der Webseite, die Sprache zwischen Deutsch und Englisch gewählt werden kann. Außerdem wurde ein "Dark-Mode" entworfen der automatisch oder manuell gewählt wird.

parkcheap Buchungssystem

Mai 2020 -Oktober 2022
Screenshot der Webseite parkcheap.de

Mitte 2020 wurde ich beauftragt ein Buchungssystem für die Vermietung von Parkplätzen zu entwickeln. Aufgrund der Größe des Projekts wurde ich von der ParkCheap IT System GmbH als Software Entwickler eingestellt und habe an dem Projekt bis Oktober 2022 gearbeitet. Das Projekt besteht aus parkcheap.de, der Webseite für den Endkunden, dem parkcheap Dashboard für Mitarbeiter und Partner und der parkcheap API die alle Daten verarbeitet.

Die Webseite wurde als Node.js Webserver entwickelt. Dieser holt die aktuellsten Daten aus der parkcheap API und erzeugt dann HTML aus einem React Frontend. Die Webseite und das Dashboard basieren beide auf einem eigens entwickelten Design und Komponenten System mit über 100 Komponenten. Nach dem DRY Prinzip wurden alle nützlichen Funktionen als Module oder Komponenten gebaut um sie einfach testen und wiederverwenden zu können.

Screenshot von der Parkplatz Auswahl auf der parkcheap Webseite

Neben der interaktiven Suche oder dem Kundenbereich wurde viel Wert auf das Buchungsformular gelegt. Dies bietet eine simple Oberfläche mit allen wichtigen Informationen um den Kunden schnell zum Kaufabschluss zu bringen.

Screenshot vom Buchungsformular auf der parkcheap Webseite

Das parkcheap Dashboard ist in jeder Hinsicht komplexer als die Webseite und nutzt so ziemlich jede Komponente die zur Verfügung steht. Mit der übersichtlichen und dynamischen Oberfläche, die auf jedem Gerät von Smartwatch bis TV benutzt werden kann, können viele wichtige Aufgaben erledigt werden. Über 10 verschiedene Bereiche bieten mehrere dynamische Formulare mit Eingabevalidierung. Zum Beispiel zum Verwalten von Benutzern und deren Rechte, zum Einsehen und Bearbeiten von Buchungen, zum Anlegen von Standorten mit Verfügbarkeit und Preisen, zum Erstellen von Gutscheinen und Rabatten oder zum Erstellen von Rechnung als Excel und PDF Datei.

Screenshot vom parkcheap Dashboard

Alles wird von der zentralen parkcheap API verarbeitet. Ein Node.js Webserver der das Fastify Framework benutzt. Über 250 Endpunkte mit Eingabevalidierung überprüfen Buchungen, senden E-Mails oder erstellen neue Rechnungen.

Der Quellcode für das parkcheap Projekt wird in einer eigens verwalteten GitLab Instanz gespeichert. Mit GitLab CI/CD werden über 500 Tests ausgeführt, der Code gebaut und gebündelt und auf die AWS Server ausgeliefert. Mit AWS Elastic Beanstalk wird das Projekt zuverlässig und hoch-verfügbar bereitgestellt.

Fullstack Software Developer bei Incedo Services GmbH

Januar 2023 -Juli 2023

Bei Incedo hatte ich die großartige Gelegenheit, an dem Projekt „Incedo Lead Generator“ zu arbeiten. Dieses umfangreiche Projekt bestand aus verschiedenen Micro-Services, die auf einer Kubernetes-Plattform laufen. Jeder Service spielte eine spezifische Rolle in einem komplexen, gut orchestrierten System, das eine effiziente und nahtlose Funktionalität gewährleistete. Darüber hinaus wurde das Frontend in React entwickelt, einer leistungsstarken und flexiblen JavaScript-Bibliothek für den Aufbau von Benutzeroberflächen.

Ein weiterer wichtiger Teil des Projekts war das Backend, das Nest.js und Apollo Server für GraphQL verwendete. Diese Technologien ermöglichten es uns, eine effiziente API zu erstellen, die die Bedürfnisse der Benutzer und die Anforderungen des Projekts erfüllte.

Während meiner Zeit bei Incedo habe ich maßgeblich an der Entwicklung eines neuen Micro-Service gearbeitet. Dieser Service erweiterte den Funktionsumfang des „Incedo Lead Generators“ und erhöhte seine Robustheit. Ich setzte diesen Service mit Fastify und Mercurius um, zwei leistungsfähigen Technologien für die Erstellung von schnellen und effizienten Servern.

Die Zusammenarbeit im Team bei Incedo hat mir besonders gefallen. Es war ein Austausch von Wissen und Erfahrungen, der mich sowohl persönlich als auch beruflich bereichert hat. Ich konnte mein Wissen und meine Fähigkeiten an meine Teamkollegen weitergeben und gleichzeitig von ihrer Expertise lernen.