Backend
In einer Vielzahl persönlicher Projekte habe ich nicht nur Server mithilfe von Node.js eingerichtet, sondern auch komplexe Datenbanken durch die geschickte Anwendung von Object-Relational Mapping (ORM) nahtlos integriert. Diese praktischen Erfahrungen sind ein Beweis für meine Fähigkeit, diese Technologie nicht nur zu verstehen, sondern sie effektiv einzusetzen, um reibungslose und leistungsstarke Lösungen zu schaffen.
In meiner Freizeit habe ich intensiv mit der Programmiersprache Golang gearbeitet. Besonders beeindruckt hat mich ihre Einfachheit und ihre Stärke im Bereich der Parallelverarbeitung. Gemeinsam mit dem Gin-Framework habe ich Webserver entwickelt, weshalb Golang aktuell meine bevorzugte Wahl für Backend-Anwendungen ist. Ich hoffe, dass zukünftig Verbesserungen in der Fehlerbehandlung umgesetzt werden, um die Entwicklererfahrung weiter zu optimieren.
Während meiner Tätigkeit im Java-Bereich habe ich umfassende Erfahrungen in der Erstellung von REST-APIs gesammelt. In meinen verschiedenen beruflichen Positionen habe ich immer wieder REST-APIs im Frontend angebunden, einschließlich der Nutzung von OData. Parallel dazu habe ich in meiner Freizeit begonnen, mit GraphQL im Node.js-Bereich zu arbeiten und bin nach wie vor von dieser Technologie begeistert. GraphQL eröffnet die Möglichkeit, APIs äußerst effizient zu gestalten und gleichzeitig im Frontend gezielt zu steuern, welche Daten für die jeweilige Abfrage wirklich benötigt werden. Dieser Ansatz steht im Kontrast zu meiner bisherigen Praxis, in der ich REST-APIs im Frontend genutzt habe. Die Faszination für GraphQL wächst dadurch noch weiter und unterstreicht die Flexibilität und Effizienz, die diese Technologie in der heutigen Webentwicklung bieten kann.
Ich habe bereits während meiner Ausbildung an der Universität und der Oberschule mit Java gearbeitet. In meinem Studium hatte ich Fächer von den Grundlagen, über Algorithmen und Datenstrukturen, bis hin zu fortgeschrittenen Technologien, wie JavaFX. In meinem ersten Nebenjob lernte ich dann die Datenverwaltung mit MySQL und Hibernate kennen. Außerdem kenne ich mich mit Spring und Lombok aus.
Bei meiner Tätigkeit bei Bookwire nutzte ich regelmäßig SQL, insbesondere PostgreSQL. Ich extrahierte Buchverkaufsdaten für Analysen und wandte komplexe Abfragen an, um Fehler in der Datenverarbeitung zu identifizieren. Die Optimierung von Abfragen mithilfe von Execution Plans gehörte ebenfalls dazu. Diese Fähigkeiten ermöglichten fundierte Entscheidungen und stetige Verbesserungen der Datenqualität.
Ich habe mich mit der Programmiersprache Elixir beschäftigt, als ich mich mit der Erstellung von sprachbasierten Chat-Anwendungen wie Discord beschäftigt habe. Discord verwendet Elixir für diese Funktionalität. Elixir hat eine sehr interessante Fehlerbehandlung, die entweder durch Werfen oder durch Rückgabetypen funktioniert, aber die fehlende Typisierung gefiel mir nicht besonders.
Ich habe kürzlich das Kotlin-Tutorial erfolgreich absolviert und mir in meiner Freizeit die Zeit genommen, einen Ktor-Server einzurichten, der sowohl für REST als auch für GraphQL genutzt wird. Diese praktische Umsetzung hat mir geholfen, ein tieferes Verständnis für Kotlin zu entwickeln und meine Fähigkeiten im Bereich der serverseitigen Entwicklung zu erweitern.
Während meiner beruflichen Laufbahn habe ich grundlegende Erfahrungen in der Programmiersprache C# gesammelt, insbesondere im Kontext von WebAPIs. Dabei habe ich Asp.Net Core in Verbindung mit Entity Framework und OData kennengelernt und die Möglichkeiten dieser Technologien für den Aufbau einfacher, schneller und robuster WebAPI-Server zu schätzen gelernt. Diese Erfahrungen haben meine Fähigkeiten im Bereich der Webentwicklung erweitert und mir eine Grundlage geschaffen, um praktische Lösungen in C# umzusetzen.
Cloud- und Self Hosting
In meiner Freizeit betreibe ich eine eigene Nextcloud-Instanz, um persönliche Daten, Dokumente und Medien zentral zu verwalten und sicher zu synchronisieren. Dabei beschäftige ich mich mit der Einrichtung, Konfiguration und Aktualisierung der Plattform sowie mit der Integration zusätzlicher Module wie Kalender-, Kontakt- und Kollaborationstools. Durch den selbstständigen Betrieb von Nextcloud vertiefe ich mein Verständnis für Webserver-Technologien, Benutzer- und Rechteverwaltung, Datensicherheit und Backup-Strategien. Dieses praktische Know-how stärkt meine Fähigkeiten im Umgang mit modernen Self-Hosting- und Cloud-Lösungen.
In meiner privaten Serverumgebung betreibe ich außerdem Paperless-NGX, um mein Dokumentenmanagement vollständig zu digitalisieren. Die Plattform nutze ich, um eingescannte Unterlagen automatisiert zu importieren, per OCR auszulesen und mithilfe intelligenter Regeln übersichtlich zu strukturieren. Durch den Self-Hosting-Betrieb habe ich fundierte Erfahrung im Einrichten, Aktualisieren und Optimieren containerisierter Anwendungen gesammelt und mein Verständnis für effiziente Workflows und moderne Dokumentenarchivierung weiter vertieft.
In meiner Freizeit betreibe ich einen kleinen Server mit TrueNAS Scale, um meine Daten sicher zu verwalten und eigene Dienste zu hosten. Dank ZFS, Snapshots und automatischen Backups habe ich meine Dateien zuverlässig geschützt. Gleichzeitig nutze ich die integrierte Appumgebung, um Anwendungen wie Nextcloud oder einen Medienserver zu betreiben und sie über einen abgesicherten Zugang auch von unterwegs erreichbar zu machen. Besonders Spaß macht mir, neue Dienste auszuprobieren, eigene Container zu testen und mein Setup stetig zu optimieren, so wird mein Server zu meinem persönlichen kleinen Rechenzentrum.
In meiner privaten Automatisierungsumgebung nutze ich n8n, um wiederkehrende Aufgaben effizient zu digitalisieren. Ein zentrales Beispiel ist die automatische Archivierung von Rechnungen externer Anbieter, etwa von Amazon. Über individuell konfigurierte Workflows kombiniere ich n8n mit Playwright, um Rechnungsdokumente strukturiert abzurufen und aufzubereiten. Anschließend werden die Dateien über einen eigenen Telegram-Bot sicher an meinen Server übertragen und dort archiviert. Durch diese automatisierten Abläufe optimiere ich meinen Dokumentenprozess und sammle gleichzeitig wertvolle Erfahrung im Zusammenspiel von Workflow-Automatisierung, Web-Interaktionen und sicherer Datenverarbeitung im Self-Hosting-Umfeld.
Durch einen Kurs bei der Brockhaus AG erwarb ich umfangreiche AWS-Kenntnisse. Ich besitze einen gründlichen Überblick über die AWS-Services, insbesondere jene, die für die Softwareentwicklung relevant sind. Meine Kenntnisse ermöglichen es mir, potenzielle Anwendungsgebiete zu erkennen und Teams bei der Integration von AWS-Services zu unterstützen. Dieser Kurs vermittelte mir nicht nur ein tiefes Verständnis für AWS, sondern befähigt mich auch dazu, mein Wissen gezielt einzusetzen, um innovative Lösungen zu gestalten.
Bei EMP habe ich die bestehenden Build-Prozesse in Jenkins weiterentwickelt, optimiert und für das Team nutzbar gemacht. Ich analysierte die vorhandenen Pipelines, vereinfachte komplexe Schritte und sorgte dafür, dass Builds schneller, stabiler und zuverlässiger liefen. Zudem strukturierte ich die Prozesse klarer, automatisierte wiederkehrende Aufgaben und stellte sicher, dass die Teams die optimierten Pipelines effizient in ihrem täglichen Entwicklungsworkflow einsetzen konnten. Dadurch wurden Fehler reduziert und die Continuous-Integration-Abläufe insgesamt deutlich verbessert.
Bei EMP habe ich GitLab sowohl als zentrales Git-Tool als auch für die CI/CD-Pipelines genutzt. Ich habe die bestehenden Pipelines optimiert, vereinfacht und stabiler gemacht, sodass Builds und Deployments schneller und zuverlässiger ablaufen konnten. Durch diese Verbesserungen konnten die Teams GitLab effizienter in ihrem täglichen Entwicklungsprozess einsetzen.
Während meiner Zeit bei TEDI nutzte ich Azure erfolgreich zum Deployment meiner entwickelten Logistik-Anwendung. Dadurch erwarb ich grundlegende Azure-Kenntnisse. Das Bereitstellen meiner Anwendung in der Cloud verlieh mir Verständnis für Ressourcen-Management, Skalierbarkeit und Dienste wie Azure App Service. Diese Erfahrung verschaffte mir solide Einsteigerkenntnisse in der Azure-Plattform, die für zukünftige Projekte wertvoll sind.
Design
In meiner Freizeit benutze ich ausschließlich Figma, um neue Oberflächen für Webanwendungen zu entwerfen. Daher bin ich mittlerweile sehr vertraut mit diesem Tool und kann UI/UX-Designs darin realisieren.
In meinen Freizeitprojekten benutze ich Affinity, um Fotos zu bearbeiten und Vektorgrafiken für meine Webanwendungen zu modifizieren. Außerdem kann ich auch Elemente aus Fotos zuschneiden, um sie zum Beispiel ohne Hintergrund zu verwenden.
Seit geraumer Zeit hege ich ein starkes Interesse daran, die Kunst der Gestaltung funktionaler und ästhetischer Webanwendungen zu erlernen. Bevor ich mich mit dem Inhalt dieses Buches auseinandersetzte, basierte mein Vorgehen oft auf Intuition, was zu gemischten Ergebnissen führte. Das Werk zweier angesehener UI/UX-Designer hat dieser Thematik nun eine klare Struktur verliehen, der ich systematisch folgen kann. Die Anwendung dieser Prinzipien hat meine Fähigkeiten auf diesem Gebiet deutlich gesteigert. Obgleich ich bisher noch nicht die Möglichkeit hatte, diese Fertigkeiten in einer beruflichen Tätigkeit einzusetzen, hege ich großes Interesse daran, dies in naher Zukunft zu tun.
In einem umfangreichen Frontend-Projekt, in dem ich als Frontend-Entwicklerin agierte, wurde Adobe XD als primäres Tool für die Design-Entwürfe des individuellen Design Systems verwendet. Aufgrund dessen bin ich mit der Benutzeroberfläche dieses Instruments vertraut und habe mich mit seinen Funktionalitäten intensiv auseinandergesetzt. Trotz gelegentlicher Herausforderungen bezüglich der optimalen Ausgabe von Stilen konnte ich dennoch effektiv mit Adobe XD arbeiten.
E-Commerce
Als Senior Frontend Developer bei EMP erweiterte ich mein Wissen über Salesforce Commerce Cloud durch praktische Anwendung auf einem internationalen Marktplatz. Tägliche Herausforderungen, wie Frontend-Implementierung und Schnittstellenoptimierung, schärften meine Kenntnisse. Die Internationalität stärkte meine Anpassungsfähigkeit an diverse Anforderungen und Kulturen. Die praxisorientierte Auseinandersetzung förderte nicht nur meine fachliche Kompetenz, sondern auch agiles Projektmanagement. Diese Erfahrungen erweiterten meine beruflichen Perspektiven und stärkten meine Leidenschaft für kontinuierliche E-Commerce-Entwicklung.
Bei der Bookwire GmbH implementierte ich erfolgreich Strapi CMS, um einen innovativen Marktplatz zu schaffen. Die Nutzung von Strapi ermöglichte eine schnelle und effiziente Contentpflege. Durch die benutzerfreundliche Oberfläche konnte das Team mühelos Inhalte aktualisieren, was die Flexibilität des Marktplatzes erhöhte. Diese Implementierung trug maßgeblich dazu bei, einen reaktionsschnellen und dynamischen Marktplatz mit stets aktuellem Content zu etablieren.
Expertise
Durch meine Arbeit bei EMP habe ich umfassendes Wissen über den Kauf und Verkauf im E-Commerce aufgebaut. Dabei konnte ich nicht nur die Prozesse von Angebot bis Verkauf kennenlernen, sondern auch Einblicke in Marketingstrategien, Kundenverhalten und die Optimierung von Online-Vertriebswegen gewinnen. Dieses breite Verständnis ermöglicht es mir, E-Commerce-Projekte ganzheitlich zu betrachten und sowohl operative als auch strategische Aspekte erfolgreich umzusetzen.
Bei meiner Zeit bei der Brockhaus AG gewann ich fundiertes Einsteigerwissen über Versicherungen, inklusive BiPro-Einblicke. Schulungen und Praxisprojekte ermöglichten mir, BiPro als Kommunikationsstandard in Versicherungen zu verstehen und anzuwenden. Eine wertvolle Erfahrung, um Fachkenntnisse zu erweitern.
Bei der Bookwire GmbH entwickelte ich im Dienstleistungssegment zwei Anwendungen mit React. Diese Aufgabe ermöglichte es mir, praxisnahes Wissen in der Verlagsbranche zu erwerben, während ich gleichzeitig meine Fähigkeiten in der Anwendungsentwicklung mit React ausbaute. Die Anwendungen trugen zur effizienteren Verlagsunterstützung und digitalen Vermarktung bei, wodurch ich nicht nur technisches Know-how erlangte, sondern auch das Verständnis für die Schnittstelle zwischen Technologie und Verlagswesen vertiefte.
Frontend
In meiner beruflichen Praxis nutze ich sowohl den npm- als auch den yarn-Paketmanager, um externe Abhängigkeiten zu integrieren. Zudem habe ich in umfangreicheren Projekten erfolgreich den Nrwl Nx Monorepo-Manager eingesetzt.
Durch meine praktische Tätigkeit habe ich umfassende Expertise in der React-Bibliothek erworben. Mein Ansatz umfasst ausschließlich zeitgemäße Methoden wie Hooks und funktionale Komponenten. Zusätzlich besitze ich profunde Kenntnisse gängiger Bibliotheken im erweiterten React-Umfeld.
Aufgrund meiner Vorliebe für typisierte Sprachen habe ich mich intensiv mit TypeScript auseinandergesetzt. TypeScript, das auf JavaScript basiert, ermöglichte mir eine vielseitige Anwendung in verschiedenen privaten und beruflichen Webanwendungen. Meine umfangreiche Erfahrung prädestiniert TypeScript für mich als bevorzugte Programmiersprache im Frontend-Bereich.
HTML ist die essenzielle Sprache für die Strukturierung von Webanwendungen. Daher setze ich konsequent auf HTML für all meine Projekte und bevorzuge den zeitgemäßen HTML5-Standard. Darüber hinaus verfüge ich über Expertise in verschiedenen Template-Engines.
Zur präzisen Umsetzung von Designvorgaben nutze ich CSS, insbesondere die Möglichkeiten von CSS3. Dies ermöglicht eine akkurate Umsetzung verschiedenster Benutzeroberflächendesigns. Darüber hinaus beherrsche ich verschiedene Tools zur effizienten Strukturierung von Stilvorgaben.
Neben meinen umfassenden Kenntnissen in React habe ich mich intensiv mit dem Angular-Framework auseinandergesetzt, sowohl aus persönlichem Interesse als auch in beruflichen Zusammenhängen. Diese Kenntnisse habe ich aktiv in Projekten angewendet, einschließlich einer kurzen Tätigkeit bei der praktischen Entwicklung.
Project Management
Seit meiner Zeit bei Bookwire konnte ich in jedem Projekt von meinen fortgeschrittenen Git-Kenntnissen profitieren und diese kontinuierlich erweitern. Die Anwendung des vertieften Verständnisses für Versionskontrolle ermöglichte mir eine effiziente Zusammenarbeit im Team, das reibungslose Management von Codeänderungen und das schnelle Auffinden von Fehlern. Die tägliche Nutzung von Git brachte mir nicht nur Sicherheit im Umgang mit Branches, Merges und Commits, sondern auch das Verständnis für bewährte Entwicklungspraktiken. Diese fortwährende praktische Anwendung hat es mir ermöglicht, meine Fähigkeiten im Umgang mit Git stetig zu verbessern und zu einem verlässlichen Teammitglied für jedes Projekt zu werden.
Ich bin vertraut mit Scrum und agilen Arbeitsmethoden. Ich verstehe die Prinzipien von Iteration, Zusammenarbeit im Team und kontinuierlichem Feedback. Meine Erfahrung ermöglicht es mir, Anforderungen in userzentrierten Stories zu formulieren, den Backlog zu verwalten und in Sprints effektiv zu liefern. Ich kann in flexiblen, sich ändernden Umgebungen arbeiten und Werte wie Transparenz und kontinuierliche Verbesserung schätzen. Meine agile Kompetenz unterstützt mich dabei, Projekte zielgerichtet und kundenorientiert umzusetzen.
In meiner beruflichen Tätigkeit habe ich die Messaging-Plattform Slack genutzt, um eine nahtlose Kommunikation mit meinem Team und dem Unternehmen sicherzustellen. Dabei erwarb ich umfassende Kenntnisse über die Funktionalitäten der Anwendung und erlernte deren effektive Nutzung zur Förderung der Teamkommunikation und Zusammenarbeit.
Ich verfüge über praktische Erfahrung in der Anwendung der Atlassian Suite zur strukturierten Verwaltung meiner Entwicklungsprojekte. Hierbei nutzte ich Jira zur Aufgabenverteilung, Bitbucket zur Quellcode-Versionierung und Confluence zur Dokumentation von Notizen und relevanten Informationen. Dies ermöglichte eine effiziente und übersichtliche Gestaltung meiner Entwicklungsarbeiten.
In all meinen beruflichen Phasen und in der Freizeit schätze ich die JetBrains IDEs für Softwareentwicklung, Git-Integration und Datenbankprüfung. Mit fortgeschrittenem Know-how nutze ich sie effektiv. Von Code-Vervollständigung bis zu Git-Merging bietet die IDE nahtlose Tools. Die Datenbankintegration erlaubt SQL-Abfragen direkt in der IDE, was die Effizienz steigert. JetBrains IDEs sind ein kontinuierlicher Begleiter, der mir in jedem Projekt dient, von der Arbeit bis zu persönlichen Unternehmungen.
Ich nutzte die Microsoft Office Suite in meiner praktischen Arbeit, um Videokonferenzen abzuhalten und mit meinem Team über Teams zu kommunizieren. Außerdem musste ich meinen Stundenzettel in Excel ausfüllen. Im Laufe meines Studiums habe ich außerdem verschiedene Präsentationen und Dokumente in PowerPoint und Word erstellt, mit denen ich mich ebenfalls gut auskenne.
Software Testing
Cypress habe ich mit Begeisterung sowohl in meinem persönlichen Projektumfeld als auch im Rahmen meiner akademischen Arbeit zur Anwendungstestung eingesetzt. Die klare Dokumentation, die benutzerfreundliche Oberfläche und die Echtzeit-Visualisierung haben mir geholfen, effiziente und zuverlässige Tests durchzuführen. Die Möglichkeit, End-to-End-Tests in verschiedenen Browsern auszuführen und Mocking-Optionen zu nutzen, hat meine Teststrategien erweitert. Cypress erwies sich als kraftvolles Instrument, um praktische und wissenschaftliche Anforderungen gleichermaßen zu erfüllen.
Während meiner Bachelorarbeit und in meiner Freizeit habe ich Playwright intensiv genutzt, um Anwendungen zu testen. Die Stärken von Playwright, wie seine plattformübergreifende Unterstützung, erstklassige Performance und benutzerfreundliche API, haben mich überzeugt. Die Fähigkeit, Tests in verschiedenen Browserumgebungen durchzuführen und komplexe Szenarien abzudecken, hat meine Testprozesse erheblich verbessert. Playwright erwies sich als zuverlässiges Werkzeug, das mir half, sowohl akademische als auch praktische Anforderungen erfolgreich zu bewältigen.
Die Testing Library habe ich sowohl in meiner Freizeit als auch beruflich, wie bei meiner Tätigkeit bei Bookwire, erfolgreich für Anwendungstests genutzt. Ihre klare Philosophie, die Fokussierung auf benutzerzentrierte Tests und barrierefreie Anwendungen haben mich überzeugt. Trotz meiner begrenzten Erfahrung bei Bookwire erwies sich die Testing Library als anpassungsfähig und leistungsstark, um die Qualität der Anwendungen sicherzustellen. Die einfache Integration, die klare API und die umfangreiche Dokumentation haben mir dabei geholfen, effiziente Tests zu gestalten.
Jest habe ich sowohl privat als auch beruflich, unter anderem während meiner Zeit bei Bookwire, mit großer Zufriedenheit für Anwendungstests verwendet. Die Kombination aus einfachem Setup, schneller Ausführung und aussagekräftigen Testberichten hat mich beeindruckt. Trotz meiner begrenzten Erfahrung bei Bookwire erwies sich Jest als äußerst nützlich und leistungsstark, um die Qualität der Anwendungen sicherzustellen. Die klare Dokumentation, die vielfältigen Erweiterungsmöglichkeiten und die Unterstützung von modernen JavaScript-Features haben meine Teststrategien effektiv ergänzt.
Durch mein Studium und meine privaten Projekte habe ich solide Kenntnisse in JUnit aufgebaut. Ich kann Testklassen erstellen, Testmethoden schreiben und Assertions verwenden. Zudem verstehe ich die Grundlagen von Parameterized Tests, Mocking und Test Suites. Ich bin in der Lage, grundlegende Tests für unterschiedliche Szenarien zu erstellen und einfache CI-Pipelines einzurichten. Diese Fähigkeiten ermöglichen es mir, qualitätsbewussten Code zu entwickeln und sicherzustellen, dass meine Software zuverlässig funktioniert.