+ {project.title} + + {/* Duration */} +
+
+ {project.description} +
+ + {/* Tech stack */} +-
+ {project.deliverables.map((item) => (
+
- {item} + ))} +
diff --git a/public/files/alexdaichendt.jpg b/public/files/alexdaichendt.jpg
new file mode 100644
index 0000000..8afc9ec
Binary files /dev/null and b/public/files/alexdaichendt.jpg differ
diff --git a/src/assets/me.jpg b/src/assets/me.jpg
new file mode 100644
index 0000000..8afc9ec
Binary files /dev/null and b/src/assets/me.jpg differ
diff --git a/src/assets/projects/discretizeui/demo.png b/src/assets/projects/discretizeui/demo.png
new file mode 100644
index 0000000..e002d83
Binary files /dev/null and b/src/assets/projects/discretizeui/demo.png differ
diff --git a/src/assets/projects/discretizeui/languages.png b/src/assets/projects/discretizeui/languages.png
new file mode 100644
index 0000000..61c5dc0
Binary files /dev/null and b/src/assets/projects/discretizeui/languages.png differ
diff --git a/src/assets/projects/discretizeui/tooltip.png b/src/assets/projects/discretizeui/tooltip.png
new file mode 100644
index 0000000..620437e
Binary files /dev/null and b/src/assets/projects/discretizeui/tooltip.png differ
diff --git a/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_52_AM.png b/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_52_AM.png
new file mode 100644
index 0000000..6ddfaef
Binary files /dev/null and b/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_52_AM.png differ
diff --git a/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_53_AM.png b/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_53_AM.png
new file mode 100644
index 0000000..7772428
Binary files /dev/null and b/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_53_AM.png differ
diff --git a/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_54_AM.png b/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_54_AM.png
new file mode 100644
index 0000000..67e405f
Binary files /dev/null and b/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_54_AM.png differ
diff --git a/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_55_AM.png b/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_55_AM.png
new file mode 100644
index 0000000..ae93465
Binary files /dev/null and b/src/assets/projects/optimizer/Discretize-Gear-Optimizer-08-05-2025_11_55_AM.png differ
diff --git a/src/assets/projects/videovault/dashboard.png b/src/assets/projects/videovault/dashboard.png
new file mode 100644
index 0000000..a6da330
Binary files /dev/null and b/src/assets/projects/videovault/dashboard.png differ
diff --git a/src/assets/projects/videovault/edit.png b/src/assets/projects/videovault/edit.png
new file mode 100644
index 0000000..5ed0e8b
Binary files /dev/null and b/src/assets/projects/videovault/edit.png differ
diff --git a/src/assets/projects/videovault/frontpage.png b/src/assets/projects/videovault/frontpage.png
new file mode 100644
index 0000000..3ba456c
Binary files /dev/null and b/src/assets/projects/videovault/frontpage.png differ
diff --git a/src/assets/projects/videovault/player.png b/src/assets/projects/videovault/player.png
new file mode 100644
index 0000000..4532b25
Binary files /dev/null and b/src/assets/projects/videovault/player.png differ
diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro
index 9ad5d9b..57bb16b 100644
--- a/src/components/BaseHead.astro
+++ b/src/components/BaseHead.astro
@@ -1,6 +1,4 @@
---
-// Import the global.css file here so that it is included on
-// all pages through the use of the
+ Carousel focused. Use Left and Right Arrow keys to change slides. Press T to
+ toggle wide mode. Press Escape to exit wide mode.
+
+ ))
+ }
+
+ Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf + diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 + bis 10 TMG sind wir als Diensteanbieter jedoch nicht unter der + Verpflichtung, übermittelte oder gespeicherte fremde Informationen zu + überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige + Tätigkeit hinweisen. +
++ Unser Angebot enthält Links zu externen Websites Dritter, auf deren + Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden + Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten + Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten + verantwortlich. +
++ Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen + Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, + Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der + Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des + jeweiligen Autors bzw. Erstellers. +
++ Letzte Aktualisierung: + {new Date().toLocaleDateString("de-DE")} + +
++ {subtitle} +
+ ) + } + +
+
+ {project.description} +
+ + {/* Tech stack */} ++ Im Folgenden möchten wir Sie aufklären, wie Ihre Daten von uns verarbeitet + werden. +
+ +
+ Verantwortlich im Sinne der DSGVO ist:
+ Alexander Daichendt
+ Wiesenweg 10a, 85464 Neufinsing
+ datenschutz@daichendt.one
+
+ Sollten Sie per E-Mail oder über Kontaktformular mit uns Kontakt aufnehmen, + werden die mitgeteilten Daten von uns gespeichert, um Ihr Anliegen zu + bearbeiten. +
+ +Zu den verarbeiteten Daten zählen:
++ Wir werden die Daten löschen, sobald die Speicherung nicht mehr erforderlich + ist oder die Verarbeitung einschränken, falls gesetzliche + Aufbewahrungspflichten bestehen. +
+ ++ Sie haben als betroffene Person, das Recht auf Auskunft, das Recht auf + Berichtigung oder Löschung, das Recht auf Einschränkung der Verarbeitung und + das Recht auf Widerspruch gegen die Verarbeitung Ihrer Daten. Sofern Sie uns + eine Einwilligung erteilt haben, können Sie diese jederzeit mit Wirkung für + die Zukunft widerrufen. +
+ +Bitte richten Sie Ihren Widerspruch formlos an die obige Adresse.
+ ++ Darüber hinaus haben Sie das Recht auf Datenübertragbarkeit. Sie haben + weiter das Recht, sich bei einer Aufsichtsbehörde über die Verarbeitung zu + beschweren. Eine Liste der entsprechenden Behörden finden Sie unter: https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html. +
+ ++ Sollte die Datenverarbeitung nicht auf Einwilligung des Betroffenen + beruhen (siehe Kontaktformular), muss das Widerrufsrecht nicht angegeben + werden (Art. 13 Abs. 2 lit. c DSGVO). +
++ Wir nutzen das Content Delivery Network (CDN) von Cloudflare Germany GmbH, + Rosental 7, c/o Mindspace, 80331 München Deutschland (Cloudflare), um die + Sicherheit und die Auslieferungsgeschwindigkeit unserer Website zu erhöhen. + Dies entspricht unserem berechtigten Interesse (Art. 6 Abs. 1 lit. f DSGVO). + Ein CDN ist ein Netzwerk aus weltweit verteilten Servern, das in der Lage + ist, optimiert Inhalte an den Websitenutzer auszuliefern. Für diesen Zweck + können personenbezogene Daten in Server-Logfiles von Cloudflare verarbeitet + werden. Bitte vergleichen Sie die Ausführungen unter „Hosting". +
+ ++ Cloudflare ist Empfänger Ihrer personenbezogenen Daten und als + Auftragsverarbeiter für uns tätig. Die entspricht unserem berechtigten + Interesse im Sinne des Art. 6 Abs. 1 S. 1 lit. f DSGVO, selbst kein Content + Delivery Network zu betreiben. +
+ ++ Sie haben das Recht der Verarbeitung zu widersprechen. Ob der Widerspruch + erfolgreich ist, ist im Rahmen einer Interessenabwägung zu ermitteln. +
+ ++ Die Verarbeitung der unter diesem Abschnitt angegebenen Daten ist weder + gesetzlich noch vertraglich vorgeschrieben. Die Funktionsfähigkeit der + Website ist ohne die Verarbeitung nicht gewährleistet. +
+ ++ Ihre personenbezogenen Daten werden von Cloudflare so lange gespeichert, wie + es für die beschriebenen Zwecke erforderlich ist. +
+ ++ Weitere Informationen zu Widerspruchs- und Beseitigungsmöglichkeiten + gegenüber Cloudflare finden Sie unter: Cloudflare DPA +
+ ++ Cloudflare hat Compliance-Maßnahmen für internationale Datenübermittlungen + umgesetzt. Diese gelten für alle weltweiten Aktivitäten, bei denen + Cloudflare personenbezogene Daten von natürlichen Personen in der EU + verarbeitet. Diese Maßnahmen basieren auf den EU-Standardvertragsklauseln + (SCCs). Weitere Informationen finden Sie unter: https://www.cloudflare.com/cloudflare_customer_SCCs-German.pdf +
+ ++ Sofern Sie sich als Besucher weder registrieren noch einloggen, erheben wir + in sog. Logfiles folgende Daten, die Ihr Browser übermittelt: +
+ ++ IP-Adresse, Datum und Uhrzeit der Anfrage, Zeitzonendifferenz zur Greenwich + Mean Time, Inhalt der Anforderung, HTTP-Statuscode, übertragene Datenmenge, + Website, von der die Anforderung kommt und Informationen zu Browser und + Betriebssystem. +
+ ++ Das ist erforderlich, um unsere Website anzuzeigen und die Stabilität und + Sicherheit zu gewährleisten. Dies entspricht unserem berechtigten Interesse + im Sinne des Art. 6 Abs. 1 S. 1 lit. f DSGVO. +
+ ++ Wir setzen für die Zurverfügungstellung unserer Website folgenden Hoster + ein: Cloudflare +
+ ++ Dieser ist Empfänger Ihrer personenbezogenen Daten und als + Auftragsverarbeiter für uns tätig. Dies entspricht unserem berechtigten + Interesse im Sinne des Art. 6 Abs. 1 S. 1 lit. f DSGVO, selbst keinen Server + in unseren Räumlichkeiten vorhalten zu müssen. +
+ ++ Sie haben das Recht der Verarbeitung zu widersprechen. Ob der Widerspruch + erfolgreich ist, ist im Rahmen einer Interessenabwägung zu ermitteln. +
+ ++ Die Verarbeitung der unter diesem Abschnitt angegebenen Daten ist weder + gesetzlich noch vertraglich vorgeschrieben. Die Funktionsfähigkeit der + Website ist ohne die Verarbeitung nicht gewährleistet. +
+ ++ Neben den Server-Logfiles können auch von der verwendeten Applikation und + deren Plugins personenbezogene Daten verarbeitet werden. Darunter fallen + u.a. die Protokollierung fehlerhafter Anmeldeversuche, oder Zugriffe auf + nicht existierende Seiten (404). Dies sollte überprüft und entsprechend + ergänzt werden. +
+ ++ Im Falle eine Speicherung, sollte ebenfalls angegeben werden, wie lange + diese erfolgt und ob und ab wann eine Anonymisierung der erhobenen Daten + stattfindet. +
++ Grundsätzlich ist ein Auftragsverarbeitungsvertrag mit dem Hoster + abzuschließen. Das bayerische Landesamt für Datenschutzaufsicht hat für + das Hosting rein statischer Websites eine Ausnahme gemacht. Für den Fall, + dass die Webseite der Selbstdarstellung dient, z.B. von Vereinen oder + Kleinunternehmen, keine personenbezogenen Daten an den Betreiber fließen + und kein Tracking stattfindet, liegt keine Auftragsverarbeitung vor. + Weiter heißt es: „Die Tatsache, dass auch beim Hosting von statischen + Webseiten zwangsläufig IP-Adressen, d.h. personenbezogene Daten, + verarbeitet werden müssen, führt nicht zur Annahme einer + Auftragsverarbeitung. Das wäre nicht sachgerecht. Die (kurzfristige) + IP-Adressenspeicherung ist vielmehr noch der TK-Zugangsvermittlung des + Website-Hosters nach dem TKG zuzurechnen und dient in erster Linie + Sicherheitszwecken des Hosters." (https://www.lda.bayern.de/media/veroeffentlichungen/FAQ_Hosting_keine_Auftragsverarbeitung.pdf) Es sollte deshalb überprüft werden, ob der Hoster Tracking und + Auswertungstools zur Verfügung stellt und ob und wie lange Logfiles + aufbewahrt werden. +
++ Der häufig verwendete Hinweis, dass seitens des Nutzers keine + Widerspruchsmöglichkeit bestehe, entspricht nicht der gesetzlichen + Vorgabe. Wird die Verarbeitung auf das berechtigte Interesse des + Verantwortlichen gestützt (Art. 6 Abs. 1 lit.f DSGVO), so ist das Recht + auf Widerspruch nicht per se ausgeschlossen. Ob dieser jedoch Erfolg hat, + ist im Rahmen einer Interessenabwägung zu ermitteln. Auch wenn in der + Praxis das berechtigte Interesse des Websitebetreibers wohl überwiegen + wird, folgt daraus kein Ausschluss des Widerspruchrechts. Eine solche + Formulierung sollte korrigiert werden, da sie dazu führen kann, dass der + Betroffene an der Ausübung seines Widerspruchrechts gehindert wird. +
+ ++ Gemäß Art. 13. Abs. 1 lit. e DSGVO, besteht die Pflicht „die Empfänger + oder Kategorien von Empfängern der personenbezogenen Daten" anzugeben. + Häufig wird vertreten, dass vorrangig Empfänger namentlich und mit + Anschrift zu benennen sind und nur hilfsweise auf Kategorien + zurückgegriffen werden darf. Eine andere Auffassung vertritt ein Wahlrecht + zwischen der namentlichen Nennung und der Angabe von Kategorien. (Vgl. + Daum: Pflichtangaben auf Webseiten MMR 2020 643 (646) m.w.N.) Demnach wäre + es ausreichend als Kategorie „Hoster" anzugeben. Für diese Auffassung + spricht jedoch, wenn überhaupt, nur die Übersichtlichkeit. Dem Sinn und + Zweck der Vorschrift entspricht es aber vielmehr den Namen und die + Anschrift anzugeben, zumal dieser im Rahmen des Hostings bereits feststeht + (Vgl. Lorenz: Datenschutzrechtliche Informationspflichten (VuR 2019, 213 + (216)). +
+ ++ Für die Feststellung der Speicherdauer sollten die Server- und + Applikationseinstellungen überprüft werden, auch um Widersprüche zwischen + den angebenden Zwecken zu vermeiden. So kann es beispielsweise zu + Unstimmigkeiten kommen, wenn angegeben wird, dass nach jeder Sitzung die + Daten gelöscht werden, diese aber gleichzeitig der Stabilität und + Sicherheit dienen sollen. Eine allgemeine Mitteilung, die Daten würden so + lange gespeichert werden, wie es für die angegebenen Zwecke erforderlich + ist, ist nicht ausreichend (Vgl. Simitis/Hornung/Spiecker gen. Döhmann, + Datenschutzrecht, Art. 13 Rn 15). Ausreichend ist aber gem. Art. 13 Abs. 2 + lit a. DSGVO die Angabe von Kriterien für die Festlegung der + Speicherdauer. +
+- I am a software engineer, Linux enthusiast and a friend of lightweight, - resilient systems. -
-- My journey in the tech world has been a dynamic one. I've immersed myself in - countless projects spanning various video games and, for the past few years, - have been maintaining a small homelab, which ignited a passion for - automating infrastructure. I am a privacy enthusiast and advocate for - non-invasive software. Occasionally, I channel my creativity into building - sleek web applications that prioritize efficiency and usability over visual - clutter, and adhere to web standards and best practices. -
-- Currently, I am available for hire as a freelance Software Engineer, - advising clients in optimizing and creating Web Applications. With a strong - background in various programming languages and frameworks, I specialize in - developing scalable and efficient web solutions tailored to meet the unique - needs of each client. -
-- Contact me here! -
++ I am a privacy-first software engineer passionate about building web + applications that are efficient, user-friendly, and respectful of your + data. +
++ I help clients design and develop sleek, standards-compliant web + solutions, always prioritizing usability over visual clutter. With + hands-on experience in Rust, Node.js and many more, I believe in using + the best tools and technologies for each project, ensuring scalable and + long-term maintainable results. +
++ Ready to collaborate? Get in touch here! +
- Here are some of the projects I have worked on in the past. They are sorted - by my personal rating of relevancy. Projects done for a company are marked - with the company name and have a special border color. -
- { - projects - .sort((a, b) => b.complexity - a.complexity) - .map((project) => ( -- {project.description} -
- -- {pub.authors.join(", ")} -
-- "{pub.title}" -
-- {pub.conference || - pub.journal + - ", Volume " + - pub.volume + - ", " + - pub.date + - ", " + - pub.pages} -
- {pub.location && ( -- {pub.location}, {pub.date} -
- )} - {pub.links && ( -{pub.authors.join(", ")}
++ "{pub.title}" +
++ {pub.conference || + pub.journal + + ", Volume " + + pub.volume + + ", " + + pub.date + + ", " + + pub.pages} +
+ {pub.location && ( ++ {pub.location}, {pub.date} +
+ )} + {pub.links && ( +