import type { NextPage } from "next"; import Link from "next/link"; import Image from "next/image"; import { useEffect } from "react"; import { Discord, Github, Instagram, Steam, Linkedin } from "@icons-pack/react-simple-icons"; import Layout from "../components/Blog/Layout"; import styles from "../styles/Blog/AboutMe.module.scss"; import pic from "../public/img/me.png"; import skills, { AdditionalSkill, Skill, SkillCard } from "../data/skills"; import achievements from "../data/achievements"; import socials from "../data/socials"; const Badge: NextPage<{ additional: AdditionalSkill }> = ({ additional }) => { return
{additional.icon || null}{additional.name}
; }; const SkillBar: NextPage<{ skill: Skill }> = ({ skill }) => { return
{skill.icon || null}
{skill.name}
; }; const SkillCard: NextPage<{ card: SkillCard }> = ({ card }) => { const cardStyle = { background: card.colors?.background, "--ch-color": card.colors?.heading, "--bar-color": card.colors?.bars, color: card.colors?.useDarkColor === undefined ? undefined : (card.colors?.useDarkColor ? "#222" : "#ddd"), "--badge-bg": card.colors?.badges?.background, "--badge-color": card.colors?.badges?.useDarkColor === undefined ? undefined : (card.colors?.badges?.useDarkColor ? "#222" : "#ddd"), } as React.CSSProperties; return

{card.title}

{card.skillBars.sort((bar1, bar2) => bar2.pct - bar1.pct).map((skill, i) => )}
{card.additional && card.additional.length > 0 ?
{card.additional?.map((skill, i) => )}
: null}
; }; const Me: NextPage = () => { useEffect(() => { const handleScrollAnimation = () => { document.querySelectorAll(".vpAnimated").forEach((element) => { const rect = element.getBoundingClientRect(); const inVp = ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth) ); if (inVp) (element as HTMLElement).style.animationPlayState = "running"; else (element as HTMLElement).style.animationPlayState = "paused"; }); }; handleScrollAnimation(); // First time so we don't _need_ scrolling window.addEventListener("scroll", handleScrollAnimation); }, []); const age = new Date().getFullYear() - 1998 - (new Date().getMonth() <= 10 ? 1 : 0); return

This is me.

Me

My name is Daniel and I'm a prospective automation engineer, hardware enthusiast, and software developer from Germany.
I'm {age} years old and studying Information Systems Engineering at TU Dresden.

To be honest, I don't really know what to write here. What could you - some visitor of my website - possibly want to know about me?

Maybe you are an employer and want to know what I can do for you? Then see below - I tried to list all my skills and achievements. If your company is doing anything related to software development (even low-level ones like embedded controllers), I'm probably suited for it.

But maybe you are just another guy on the internet browsing through my website? Well then have fun! I hope you find what you are looking for. If you haven't seen it already, you should check out the command line I made. Otherwise, have fun poking around in my projects.

Do you want to know more about my personal life? Well, I like to play video games, and watch anime, I love cats and sharks. So just your ordinary nerdy student.
If you want to be even more invested in my personal life, check out my socials below.

Any questions I did not cover, but you are interested in? Just contact me via email or any of the socials below!

Social Media

{socials("2em").filter((social) => social.name !== "PGP Key").map((social, i) => {social.icon} )}

Achievements

{achievements().map((achievement, i) =>
{achievement.icon}{achievement.description}
)}

Skills

{skills().cards.map((card, i) => )}
; }; export default Me;