4 Commits

Author SHA1 Message Date
Tuan-Dat Tran
94ad506ce6 feat(cv): Updated CV to 2025
Some checks failed
Build Docker Image / Build (push) Has been cancelled
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-01-24 17:09:58 +01:00
Tuan-Dat Tran
541fd5297c fix(cv): Fixed random badges to only display on hot-reload
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2025-01-12 18:34:18 +01:00
Tuan-Dat Tran
67243080b1 fix(fluent): Fixed labels for ftl file
Some checks failed
Build Docker Image / Build (push) Has been cancelled
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
2024-12-12 22:32:37 +01:00
9c43e89f29 Merge pull request 'dioxus_upgrade' (#14) from dioxus_upgrade into dev
Some checks are pending
Build Docker Image / Build (push) Waiting to run
Reviewed-on: #14
2024-12-12 00:04:03 +01:00
9 changed files with 703 additions and 436 deletions

993
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
serde = { version = "1.0.197", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
dioxus = { version = "0.6", features = ["fullstack", "router"] }
# Debug

View File

@@ -1,20 +1,21 @@
FROM rust:1.80.1 AS dioxus
RUN cargo install dioxus-cli@^0.5
FROM rust:1.84.0 AS dioxus
RUN cargo install dioxus-cli@^0.6
FROM dioxus AS builder
WORKDIR /athome/
RUN apt-get update && apt-get install nodejs npm libssl-dev musl-tools -y && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt install libwebkit2gtk-4.1-dev build-essential curl npm \
wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev -y\
&& rm -rf /var/lib/apt/lists/*
RUN npm install -D tailwindcss
COPY ./Cargo.toml ./Cargo.toml
COPY ./Dioxus.toml ./Dioxus.toml
COPY ./input.css ./input.css
COPY ./tailwind.config.js ./tailwind.config.js
COPY ./src/ ./src/
COPY ./assets/ ./assets/
COPY ./Cargo.toml ./Cargo.toml
COPY ./input.css ./input.css
COPY ./Dioxus.toml ./Dioxus.toml
COPY ./tailwind.config.js ./tailwind.config.js
RUN npx tailwindcss -i ./input.css -o ./assets/tailwind.css
RUN dx build --platform fullstack --release
RUN dx bundle --platform web
FROM dioxus AS runner
WORKDIR /app/
COPY --from=builder /athome/docs/ ./docs/
CMD [ "./docs/athome" ]
COPY --from=builder /athome/target/dx/athome/release/web/ ./
CMD [ "./server" ]

View File

@@ -9,7 +9,7 @@ npx tailwindcss -i ./input.css -o ./assets/tailwind.css --watch
```
```sh
dx serve --platform fullstack
dx serve --platform web
```
## Screenshot

View File

@@ -2,25 +2,19 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.tudattr.dev/</loc>
<lastmod>2024-07-25</lastmod>
<lastmod>2025-01-12</lastmod>
<changefreq>monthly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.tudattr.dev/resume</loc>
<lastmod>2024-07-25</lastmod>
<lastmod>2025-01-12</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.tudattr.dev/publications</loc>
<lastmod>2024-07-25</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.tudattr.dev/consulting</loc>
<lastmod>2024-07-25</lastmod>
<lastmod>2025-01-12</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>

View File

@@ -46,6 +46,10 @@ fn WorkExperience() -> Element {
H4 { { t!("cv_workexperience_title") } },
ol {
class:"relative border-s border-gray-200 dark:border-gray-700",
CVEntry {time: t!("cv_workexperience_dd_devops_time"), title: t!("cv_workexperience_dd_devops_title"),
technologies: vec!["Kubenertes".to_string(), "Ansible".to_string(), "Jenkins".to_string(), "Azure".to_string(), "Networking".to_string()],
description: t!("cv_workexperience_dd_devops_description")
},
CVEntry {time: t!("cv_workexperience_ra_ude_time"), title: t!("cv_workexperience_ra_ude_title"),
technologies: vec!["Rust".to_string(), "Python".to_string(), "P4".to_string(), "Linux".to_string(), "Docker".to_string(), "Kubernetes".to_string()],
description: t!("cv_workexperience_ra_ude_description")
@@ -104,7 +108,8 @@ fn Skills() -> Element {
P { { t!("cv_skills_devops_ansible") } },
P { { t!("cv_skills_devops_kubernetes") } },
P { { t!("cv_skills_devops_gitops") } },
}Entry {
}
Entry {
title: t!("cv_skills_software_engineering_title"),
P { { t!("cv_skills_software_engineering_rust") } },
P { { t!("cv_skills_software_engineering_python") } },
@@ -198,8 +203,7 @@ fn RandomBadge(text: String) -> Element {
let badge_color = random_badge_color(text.len());
rsx! {
span {
class:"text-xs font-medium me-2 px-2.5 py-0.5 rounded ",
class: "{badge_color}",
class:"text-xs font-medium me-2 px-2.5 py-0.5 rounded {badge_color}",
"{text}"
}
}

View File

@@ -6,14 +6,17 @@ headers_about = Impressum
headers_language_buttons_english = 🇬🇧 Englisch
headers_language_buttons_german = 🇩🇪 Deutsch
home_card_name = Tuan-Dat Tran
home_card_gender = ""
home_card_gender = {""}
home_card_text =
Hallihallo! 👋🏻👋🏼👋🏽👋🏾👋🏿
Willkommen auf meiner kleinen Webseite im World Wide Web.
Mein Name ist Tuan und ich bin Linux-Bastler, IT-Security Nerd und Automatisierer aus Leidenschaft.
Während du hier bist, schau dir doch meine Projekte auf Gitea an.
home_card_contact_button = Get in touch.
cv_introduction_0 = Während meines Bachelorstudiums habe ich viele Erfahrungen in der Industrie und im Studium gesammelt. Meine beruflichen und persönlichen Interessen sind DevOps/IaC, Systems/Software Security und Computer Networking. All diese Interessen vertiefe ich in persönlichen Projekten wie meinem Homelab und CTF-Challenges.
cv_introduction_0 =
Während meines Bachelorstudiums habe ich viele Erfahrungen in der Industrie und im Studium gesammelt.
Meine beruflichen und persönlichen Interessen sind DevOps/IaC, Systems/Software Security und Computer Networking.
All diese Interessen vertiefe ich in persönlichen Projekten wie meinem Homelab und CTF-Challenges.
cv_workexperience_title = Berufserfahrung
cv_workexperience_se1_gefeba_title = Software Entwickler @ gefeba Engineering GmbH
cv_workexperience_se1_gefeba_time = 2013 - 2015
@@ -28,8 +31,11 @@ cv_workexperience_mentoring_ude_title = Mentoring @ UDE
cv_workexperience_mentoring_ude_time = 2021 - 2022
cv_workexperience_mentoring_ude_description = Als Mentor für Studienanfänger im Studiengang Informatik der Universität Duisburg-Essen habe ich zu Beginn jedes Semesters Gruppen von ~20 Studienanfängern in ihr neues akademisches Umfeld eingeführt. Ich bot zusätzliche organisatorische und technische Unterstützung für das erste Jahr an der Universität an.
cv_workexperience_ra_ude_title = Studentische Hilfskraft @ UDE
cv_workexperience_ra_ude_time = 2021 - jetzt
cv_workexperience_ra_ude_time = 2021 - 2024
cv_workexperience_ra_ude_description = Während meiner Tätigkeit als wissenschaftlicher Mitarbeiter in der Network Communication System Research Group an der Universität Duisburg-Essen habe ich an der Forschung rund um Software Defined Networking, 5G, Staukontrollalgorithmen und föderiertes maschinelles Lernen mitgearbeitet. Ich habe die On-Premise- und Cloud-Infrastruktur, das Inventarsystem und die Online-Präsenz der Forschungsgruppe aufgebaut und verwaltet.
cv_workexperience_dd_devops_title = Junior DevOps Engineer @ DextraData
cv_workexperience_dd_devops_time = 2025 - Jetzt
cv_workexperience_dd_devops_description = Bei Dextra Data, einem führenden SaaS-Anbieter im Bereich Governance, Risk und Compliance (GRC), sorge ich für die Verfügbarkeit und Gesundheit der Software Deployments für unsere Kunden. Im zentralen DevOps-Team manage ich Deployments über alle Produkte hinweg mit Tools wie Azure, Ansible, Docker, Kubernetes, Jenkins und Bitbucket. In enger Zusammenarbeit mit Entwicklern und dem Management über die Atlassian Suite betreue ich alle Umgebungen von der Vorentwicklung bis zur Produktion. Mein Ziel ist es, meine technischen Fähigkeiten weiter auszubauen, relevante Zertifizierungen zu erwerben und mein berufliches Netzwerk zu erweitern, um unsere DevOps-Prozesse kontinuierlich zu verbessern.
cv_socials_title = Profile
cv_education_title = Bildungsweg
cv_education_bachelor_title = BSc Angewandte Informatik - Systems Engineering
@@ -54,33 +60,33 @@ cv_interests_coffee = Kaffee
cv_interests_tech_it = Tech/IT
cv_interests_guitar = Gitarre
cv_interests_mechanical_keyboards = Mechanische Tastaturen
publication_projects_publications_title = Veröffentlichungen
publication_projects_publications_rpm_title = RPM: Reverse Path Congestion Marking on P4 Programmable Switches
publication_projects_publications_rpm_authors = N. Baganal-Krishna, T.-D. Tran, R. Kundel and A. Rizk
publication_projects_publications_rpm_conference = IEEE LCN 2023
publication_projects_publications_rpm_url = https://doi.org/10.48550/arXiv.2307.09639
publication_projects_publications_rpm_description = In diesem Artikel stellen wir Reverse Path Congestion Marking (RPM) vor, um die Reaktion auf Netzwerküberlastungen zu beschleunigen, ohne den End-Host-Stack zu verändern. RPM entkoppelt das Stausignal vom nachgelagerten Pfad nach dem Engpass, während die Stabilität der Staukontrollschleife erhalten bleibt. Wir zeigen, dass RPM die Durchsatzfairness für RTT bei heterogenen TCP-Flüssen sowie die Flussabwicklungszeit verbessert, insbesondere für kleine Data Center TCP (DCTCP)-Flows um P4 programmierbare ASIC-Switches.
publication_projects_publications_iot_fuzzers_title = Overview of IoT Fuzzing Techniques
publication_projects_publications_iot_fuzzers_authors = Tuan-Dat Tran
publication_projects_publications_iot_fuzzers_conference = Seminar
publication_projects_publications_iot_fuzzers_url = https://git.tudattr.dev/AISE/seminar/src/branch/main/paper.pdf
publication_projects_publications_iot_fuzzers_description = In dieser Arbeit vergleichen wir Methoden, die speziell von IoT Fuzzern genutzt werden um die von IoT Geräten stammenden Herausforderungen und Einschränkungen zu umgehen.
publication_projects_projects_title = Projekte
publication_projects_projects_bachelorproject_title = Unbenannter Ethereum Smart Contract Fuzzer
publication_projects_projects_bachelorproject_authors = Tuan-Dat Tran
publication_projects_projects_bachelorproject_kind = Bachelorprojekt
publication_projects_projects_bachelorproject_url = https://git.ude-syssec.de/uni-due-syssec/students/2022_tuan-dat_tran_libAFLEVMFuzzer/ethfuzz/
publication_projects_projects_bachelorproject_description = In diesem aktuell laufendem Projekt entwickle ich einen Ethereum Smart Contract Fuzzer. Mehr Infos folgen...
publication_projects_projects_dotfiles_title = .dotfiles
publication_projects_projects_dotfiles_authors = Tuan-Dat Tran
publication_projects_projects_dotfiles_kind = Personal
publication_projects_projects_dotfiles_url = https://git.tudattr.dev/tudattr/dotfiles
publication_projects_projects_dotfiles_description = dotfiles ist ein umgangssprachlicher Begriff, der normalerweise für Konfigurationsdateien in Linux-basierten Systemen verwendet wird. Meine Dotfiles enthalten Konfigurationen für Tools, die ich häufig verwende, sowie eine Dokumentation zur Einrichtung meines täglich genutzten Notebooks. Sie bieten eine Grundlage für jedes persönliche Linux-System, das ich einrichte, und ermöglichen Wiederholbarkeit, was den Prozess der Einrichtung eines ArchLinux-basierten Systems vereinfacht.
publication_projects_projects_homelab_title = Homelab
publication_projects_projects_homelab_authors = Tuan-Dat Tran
publication_projects_projects_homelab_kind = Personal
publication_projects_projects_homelab_url = https://git.tudattr.dev/tudattr/ansible
publication_projects_projects_homelab_description = Ansible ist eine Automatisierungs-Engine, die eine automatische Bereitstellung, Konfigurationsverwaltung und Anwendungsbereitstellung ermöglicht. Ich verwende Ansible, um mein Homelab einzurichten, das mir als Plattform zum Ausprobieren und Lernen neuer Technologien dient.
publications_projects_publications_title = Veröffentlichungen
publications_projects_publications_rpm_title = RPM: Reverse Path Congestion Marking on P4 Programmable Switches
publications_projects_publications_rpm_authors = N. Baganal-Krishna, T.-D. Tran, R. Kundel and A. Rizk
publications_projects_publications_rpm_conference = IEEE LCN 2023
publications_projects_publications_rpm_url = https://doi.org/10.48550/arXiv.2307.09639
publications_projects_publications_rpm_description = In diesem Artikel stellen wir Reverse Path Congestion Marking (RPM) vor, um die Reaktion auf Netzwerküberlastungen zu beschleunigen, ohne den End-Host-Stack zu verändern. RPM entkoppelt das Stausignal vom nachgelagerten Pfad nach dem Engpass, während die Stabilität der Staukontrollschleife erhalten bleibt. Wir zeigen, dass RPM die Durchsatzfairness für RTT bei heterogenen TCP-Flüssen sowie die Flussabwicklungszeit verbessert, insbesondere für kleine Data Center TCP (DCTCP)-Flows um P4 programmierbare ASIC-Switches.
publications_projects_publications_iot_fuzzers_title = Overview of IoT Fuzzing Techniques
publications_projects_publications_iot_fuzzers_authors = Tuan-Dat Tran
publications_projects_publications_iot_fuzzers_conference = Seminar
publications_projects_publications_iot_fuzzers_url = https://git.tudattr.dev/AISE/seminar/src/branch/main/paper.pdf
publications_projects_publications_iot_fuzzers_description = In dieser Arbeit vergleichen wir Methoden, die speziell von IoT Fuzzern genutzt werden um die von IoT Geräten stammenden Herausforderungen und Einschränkungen zu umgehen.
publications_projects_projects_title = Projekte
publications_projects_projects_bpba_title = Unbenannter Ethereum Smart Contract Fuzzer
publications_projects_projects_bpba_authors = Tuan-Dat Tran
publications_projects_projects_bpba_kind = Bachelorprojekt/Bachelorarbeit
publications_projects_projects_bpba_url = https://git.ude-syssec.de/uni-due-syssec/students/2022_tuan-dat_tran_libAFLEVMFuzzer/ethfuzz/
publications_projects_projects_bpba_description = In diesem aktuell laufendem Projekt entwickle ich einen Ethereum Smart Contract Fuzzer. Mehr Infos folgen...
publications_projects_projects_dotfiles_title = .dotfiles
publications_projects_projects_dotfiles_authors = Tuan-Dat Tran
publications_projects_projects_dotfiles_kind = Personal
publications_projects_projects_dotfiles_url = https://git.tudattr.dev/tudattr/dotfiles
publications_projects_projects_dotfiles_description = dotfiles ist ein umgangssprachlicher Begriff, der normalerweise für Konfigurationsdateien in Linux-basierten Systemen verwendet wird. Meine Dotfiles enthalten Konfigurationen für Tools, die ich häufig verwende, sowie eine Dokumentation zur Einrichtung meines täglich genutzten Notebooks. Sie bieten eine Grundlage für jedes persönliche Linux-System, das ich einrichte, und ermöglichen Wiederholbarkeit, was den Prozess der Einrichtung eines ArchLinux-basierten Systems vereinfacht.
publications_projects_projects_homelab_title = Homelab
publications_projects_projects_homelab_authors = Tuan-Dat Tran
publications_projects_projects_homelab_kind = Personal
publications_projects_projects_homelab_url = https://git.tudattr.dev/tudattr/ansible
publications_projects_projects_homelab_description = Ansible ist eine Automatisierungs-Engine, die eine automatische Bereitstellung, Konfigurationsverwaltung und Anwendungsbereitstellung ermöglicht. Ich verwende Ansible, um mein Homelab einzurichten, das mir als Plattform zum Ausprobieren und Lernen neuer Technologien dient.
impressum_off = Impressum anzeigen
impressum_on = Impressum
component_under_construction = Diese Seite befindet sich gerade im Aufbau

View File

@@ -13,7 +13,10 @@ home_card_text =
My name is Tuan and I'm passionate about Linux, system security, automation, network performance tweaking and all things tech.
While you're here, why don't you check out my projects over on Gitea?
home_card_contact_button = Get in touch.
cv_introduction_0 = While studying for my bachelors degree I accumulated a lot of industry and academic experience. My professional and personal intererests are DevOps/IaC, Systems/Software Security and Computer Networking. All of which I deepen in personal projects such as my homelab and CTF challenges.
cv_introduction_0 =
While studying for my bachelors degree I accumulated a lot of industry and academic experience.
My professional and personal intererests are DevOps/IaC, Systems/Software Security and Computer Networking.
All of which I deepen in personal projects such as my homelab and CTF challenges.
cv_workexperience_title = Work Experience
cv_workexperience_se1_gefeba_title = Software Engineer @ gefeba Engineering GmbH
cv_workexperience_se1_gefeba_time = 2013 - 2015
@@ -28,8 +31,11 @@ cv_workexperience_mentoring_ude_title = Mentoring @ UDE
cv_workexperience_mentoring_ude_time = 2021 - 2022
cv_workexperience_mentoring_ude_description = As a mentor for students enrolling into the computer science program of the University Duisburg-Essen I introduced groups of ~20 freshmen to their new academic environment at the beginning of each semester. Offering additional organizational and technical guidance for their first year in university.
cv_workexperience_ra_ude_title = Research Assistant @ UDE
cv_workexperience_ra_ude_time = 2021 - now
cv_workexperience_ra_ude_time = 2021 - 2024
cv_workexperience_ra_ude_description = While working for the Network Communication System Research Group at the University Duisburg-Essen as a research assistant I've assisted in research around software defined networking, 5G, congestion control algorithms and federated machine learning. I've established and managed the research groups on-premise and cloud infractructure, inventory system and online presence.
cv_workexperience_dd_devops_title = Junior DevOps Engineer @ UDE
cv_workexperience_dd_devops_time = 2025 - now
cv_workexperience_dd_devops_description = At Dextra Data, a leading SaaS provider in the Governance, Risk, and Compliance (GRC) sector, I ensure the availability and health of software deployments for our customers. Within the central DevOps team, I manage deployments across all products using tools such as Azure, Ansible, Docker, Kubernetes, Jenkins, and Bitbucket. In close cooperation with developers and management through the Atlassian Suite, I oversee all environments from pre-development to production. My goal is to further develop my technical skills, obtain relevant certifications, and expand my professional network to continuously improve our DevOps processes.
cv_socials_title = Socials
cv_education_title = Education
cv_education_bachelor_title = BSc Systems Engineering
@@ -66,11 +72,11 @@ publications_projects_publications_iot_fuzzers_conference = Seminar
publications_projects_publications_iot_fuzzers_url = https://git.tudattr.dev/AISE/seminar/src/branch/main/paper.pdf
publications_projects_publications_iot_fuzzers_description = In this paper, we are comparing techniques used by IoT fuzzers to circumvent the challenges presented by IoT devices and the constraints of the solutions proposed by the IoT fuzzers.
publications_projects_projects_title = Projects
publications_projects_projects_bachelorproject_title = Undisclosed Ethereum Smart Contract Fuzzer
publications_projects_projects_bachelorproject_authors = Tuan-Dat Tran
publications_projects_projects_bachelorproject_kind = Bachelorproject
publications_projects_projects_bachelorproject_url = https://git.ude-syssec.de/uni-due-syssec/students/2022_tuan-dat_tran_libAFLEVMFuzzer/ethfuzz/
publications_projects_projects_bachelorproject_description = In this ongoing project I am building an Ethereum Smart Contract Fuzzer. More info will follow.
publications_projects_projects_bpba_title = Undisclosed Ethereum Smart Contract Fuzzer
publications_projects_projects_bpba_authors = Tuan-Dat Tran
publications_projects_projects_bpba_kind = Bachelor Project/Bachelor Thesis
publications_projects_projects_bpba_url = https://git.ude-syssec.de/uni-due-syssec/students/2022_tuan-dat_tran_libAFLEVMFuzzer/ethfuzz/
publications_projects_projects_bpba_description = In this ongoing project I am building an Ethereum Smart Contract Fuzzer. More info will follow.
publications_projects_projects_dotfiles_title = .dotfiles
publications_projects_projects_dotfiles_authors = Tuan-Dat Tran
publications_projects_projects_dotfiles_kind = Personal

View File

@@ -8,7 +8,6 @@ pub fn PublicationsProjects() -> Element {
rsx! {
div {
class: "flex flex-col ",
UnderConstruction { },
div {
H1 { { t!("publications_projects_publications_title") } }
Publications { },
@@ -87,11 +86,11 @@ fn Projects() -> Element {
div {
class: "flex gap-4 items-center flex-wrap",
Project {
title: t!("publications_projects_projects_bachelorproject_title"),
authors: t!("publications_projects_projects_bachelorproject_authors"),
kind: t!("publications_projects_projects_bachelorproject_kind"),
url: t!("publications_projects_projects_bachelorproject_url"),
description: t!("publications_projects_projects_bachelorproject_description")
title: t!("publications_projects_projects_bpba_title"),
authors: t!("publications_projects_projects_bpba_authors"),
kind: t!("publications_projects_projects_bpba_kind"),
url: t!("publications_projects_projects_bpba_url"),
description: t!("publications_projects_projects_bpba_description")
},
Project {
title: t!("publications_projects_projects_dotfiles_title"),