212 lines
9.8 KiB
Swift
212 lines
9.8 KiB
Swift
import Foundation
|
|
import SwiftUI
|
|
|
|
let cvStyle = CVStyle(
|
|
pageWidth: 600,
|
|
accentColor: .init(244, 144, 0),
|
|
header: HeaderStyle(
|
|
height: 100,
|
|
lineWidth: 1,
|
|
iconHeight: 20,
|
|
imageShadowSize: 5,
|
|
imageBorderWidth: 2),
|
|
columnSpacing: 10,
|
|
section: .init(
|
|
titleSpacing: 10,
|
|
borderSpacing: 5,
|
|
borderWidth: 3,
|
|
bottomSpacing: 10,
|
|
paragraphSpacing: 5),
|
|
skillStyle: SkillStyle(
|
|
iconSize: 20,
|
|
rowSpacing: 3,
|
|
verticalTagSpacing: 3,
|
|
horizontalGap: 3,
|
|
tagBackground: .gray.opacity(0.1),
|
|
tagRounding: 8)
|
|
)
|
|
|
|
let cvInfoEnglish = CVInfo(
|
|
language: "English",
|
|
top: TopInfo(
|
|
imageName: "Cover",
|
|
name: "Christoph Hagen",
|
|
tagLine: "Problem solver and creative mind with a favour for interdisciplinary work.",
|
|
place: "Würzburg, Germany",
|
|
ageText: "Age 32",
|
|
web: "christophhagen.de",
|
|
email: "jobs@christophhagen.de",
|
|
phone: "Upon Request",
|
|
github: "github.com/christophhagen"),
|
|
work: .init(title: "Work experience", items: [
|
|
CareerStation(
|
|
time: "Jul 2020 - Jul 2023",
|
|
location: "Braunschweig, Germany",
|
|
title: "German Aerospace Center",
|
|
subtitle: "Systems engineer",
|
|
text: "Responsible for aircraft systems and avionics of a high-altitude solar drone, safety, and software."),
|
|
CareerStation(
|
|
time: "Mar 2018 - Dec 2019",
|
|
location: "Würzburg, Germany",
|
|
title: "Julius-Maximilians-Universität",
|
|
subtitle: "Research Assistant",
|
|
text: "Working on privacy and security technologies in the Secure Software Systems group."),
|
|
CareerStation(
|
|
time: "Jul 2017 - Oct 2017",
|
|
location: "Tokyo, Japan",
|
|
title: "National Institute of Informatics",
|
|
subtitle: "Research Intern (Intelligent Robotics)",
|
|
text: "Topic: Concept Acquisition through interactions between Humans and Robots"),
|
|
CareerStation(
|
|
time: "Sep 2014 - Nov 2016",
|
|
location: "Würzburg, Germany",
|
|
title: "Julius-Maximilians-Universität",
|
|
subtitle: "Research & Teaching Assistant",
|
|
text: "Teaching exercises and robotics workshops, design of a modular robot arm connector.")
|
|
]),
|
|
education: .init(title: "Education", items: [
|
|
CareerStation(
|
|
time: "Oct 2015 - Sep 2017",
|
|
location: "Kiruna, Sweden",
|
|
title: "Luleå University of Technology",
|
|
subtitle: "M. Sc. in Space Technology",
|
|
text: "Erasmus Mundus Double Degree Master with courses on robotics, satellite design and control, atmosphere and space physics."),
|
|
CareerStation(
|
|
time: "Oct 2015 - Sep 2017",
|
|
location: "Espoo, Finland",
|
|
title: "Aalto University of Electrical Engineering",
|
|
subtitle: "M. Sc. in Space Robotics and Automation",
|
|
text: "Thesis topic: A Bluetooth based intra-satellite communication system"),
|
|
CareerStation(
|
|
time: "Oct 2013 - Aug 2015",
|
|
location: "Würzburg, Germany",
|
|
title: "Julius-Maximilians-Universität",
|
|
subtitle: "B. Sc. in Aerospace Computer Science",
|
|
text: "Mobile robotics, satellite subsystems, real-time systems, mathematics and physics.")
|
|
]),
|
|
publications: .init(title: "Publications", items: [
|
|
Publication(
|
|
venue: "33rd Anual INCOSE International Symposium 2023",
|
|
title: "Model Based Verification and Validation Planning for a Solar Powered High-Altitude Platform"),
|
|
Publication(
|
|
venue: "ACM Transactions on Privacy and Security 2022",
|
|
title: "Contact Discovery in Mobile Messengers: Low-cost Attacks, Quantitative Analyses, and Efficient Mitigations"),
|
|
Publication(
|
|
venue: "Network and Distributed Systems Symposium 2021",
|
|
title: "All the Numbers are US: Large-scale Abuse of Contact Discovery in Mobile Messengers")
|
|
]),
|
|
skills: .init(title: "Skills", items: [
|
|
SkillsSet(
|
|
systemSymbol: .characterBubble,
|
|
entries: ["German", "English"]),
|
|
SkillsSet(
|
|
systemSymbol: .keyboard,
|
|
entries: ["Swift", "C", "C++", "Python"]),
|
|
SkillsSet(
|
|
systemSymbol: .display2,
|
|
entries: ["iOS", "Embedded", "macOS", "Linux"]),
|
|
SkillsSet(
|
|
systemSymbol: .theatermaskAndPaintbrush,
|
|
entries: ["UI design", "CAD", "Woodworking", "Electronics", "Photo/Video editing"]),
|
|
SkillsSet(
|
|
systemSymbol: .personFillCheckmark,
|
|
entries: ["Problem solving", "Decision making", "Analytical thinking", "Optimizing"])
|
|
]),
|
|
about: .init(title: "About", items: [
|
|
"I'm interested in acquiring knowledge and new skills, developing cutting-edge technologies, and finding efficient solutions.",
|
|
"I usually work on various creative projects, including woodworking, electronics, sewing, and programming. I also love being active in nature."
|
|
]),
|
|
footer: "Design by Christoph Hagen, 2023.")
|
|
|
|
let cvInfoGerman = CVInfo(
|
|
language: "German",
|
|
top: TopInfo(
|
|
imageName: "Cover",
|
|
name: "Christoph Hagen",
|
|
tagLine: "Problemlöser und kreativer Kopf mit einer Vorliebe für interdisziplinäre Arbeit.",
|
|
place: "Würzburg",
|
|
ageText: "32 Jahre",
|
|
web: "christophhagen.de",
|
|
email: "jobs@christophhagen.de",
|
|
phone: "Auf Anfrage",
|
|
github: "github.com/christophhagen"),
|
|
work: .init(title: "Berufserfahrung", items: [
|
|
CareerStation(
|
|
time: "Jul 2020 - Jul 2023",
|
|
location: "Braunschweig",
|
|
title: "Deutsches Zentrum für Luft- und Raumfahrt",
|
|
subtitle: "Systemingenieur",
|
|
text: "Leitung Flugzeugsysteme und Avionik, Software, und Sicherheitsanalysen einer hochfliegenden Solardrohne."),
|
|
CareerStation(
|
|
time: "Mär 2018 - Dez 2019",
|
|
location: "Würzburg",
|
|
title: "Julius-Maximilians-Universität",
|
|
subtitle: "Wissenschaftlicher Mitarbeiter",
|
|
text: "Forschung zu Privatsphäre und IT-Sicherheit im Bereich Mobile Messenger"),
|
|
CareerStation(
|
|
time: "Jul 2017 - Okt 2017",
|
|
location: "Tokio, Japan",
|
|
title: "National Institute of Informatics",
|
|
subtitle: "Research Intern (Intelligent Robotics)",
|
|
text: "Thema: Concept Acquisition through interactions between Humans and Robots"),
|
|
CareerStation(
|
|
time: "Sep 2014 - Nov 2016",
|
|
location: "Würzburg",
|
|
title: "Julius-Maximilians-Universität",
|
|
subtitle: "Research & Teaching Assistant",
|
|
text: "Leitung von Übungen und Robotikworkshops, Entwurf einer modularen Verbindung für einen Roboterarm.")
|
|
]),
|
|
education: .init(title: "Bildung", items: [
|
|
CareerStation(
|
|
time: "Okt 2015 - Sep 2017",
|
|
location: "Kiruna, Schweden",
|
|
title: "Luleå University of Technology",
|
|
subtitle: "M. Sc. in Space Technology",
|
|
text: "Erasmus Mundus Double Degree Master mit Kursen in Robotik, Satellitenentwicklung und -kontrolle, Atmosphären- und Weltraumphsyik."),
|
|
CareerStation(
|
|
time: "Okt 2015 - Sep 2017",
|
|
location: "Espoo, Finnland",
|
|
title: "Aalto University of Electrical Engineering",
|
|
subtitle: "M. Sc. in Space Robotics and Automation",
|
|
text: "Abschlussarbeit: A Bluetooth based intra-satellite communication system"),
|
|
CareerStation(
|
|
time: "Okt 2013 - Aug 2015",
|
|
location: "Würzburg",
|
|
title: "Julius-Maximilians-Universität",
|
|
subtitle: "B. Sc. in Luft- und Raumfahrtinformatik",
|
|
text: "Mobile Robotik, Satellitensysteme, Echtzeitbetriebssysteme, Mathematik and Physik.")
|
|
]),
|
|
publications: .init(title: "Publikationen", items: [
|
|
Publication(
|
|
venue: "33rd Anual INCOSE International Symposium 2023",
|
|
title: "Model Based Verification and Validation Planning for a Solar Powered High-Altitude Platform"),
|
|
Publication(
|
|
venue: "ACM Transactions on Privacy and Security 2022",
|
|
title: "Contact Discovery in Mobile Messengers: Low-cost Attacks, Quantitative Analyses, and Efficient Mitigations"),
|
|
Publication(
|
|
venue: "Network and Distributed Systems Symposium 2021",
|
|
title: "All the Numbers are US: Large-scale Abuse of Contact Discovery in Mobile Messengers")
|
|
]),
|
|
skills: .init(title: "Fähigkeiten", items: [
|
|
SkillsSet(
|
|
systemSymbol: .characterBubble,
|
|
entries: ["Deutsch", "Englisch"]),
|
|
SkillsSet(
|
|
systemSymbol: .keyboard,
|
|
entries: ["Swift", "C", "C++", "Python"]),
|
|
SkillsSet(
|
|
systemSymbol: .display2,
|
|
entries: ["iOS", "Embedded", "macOS", "Linux"]),
|
|
SkillsSet(
|
|
systemSymbol: .theatermaskAndPaintbrush,
|
|
entries: ["UI Design", "CAD", "Holzverarbeitung", "Elektronik", "Foto/Videobearbeitung"]),
|
|
SkillsSet(
|
|
systemSymbol: .personFillCheckmark,
|
|
entries: ["Problemlösung", "Analytisches Denken", "Entscheidungsfindung", "Optimierung"])
|
|
]),
|
|
about: .init(title: "Über mich", items: [
|
|
"Ich eigne mir gerne neues Wissen und Fähigkeiten an, mag die Arbeit an Zukunftstechnologien, und schätze effizente Lösungen für Probleme.",
|
|
"Ich arbeite oft an verschiedenen Kreativprojekten, unter anderem Möbelbau, Elektronik, Software, oder Näharbeiten. Außerdem bin ich sehr gerne sportlich in der Natur aktiv."
|
|
]),
|
|
footer: "Design by Christoph Hagen, 2023.")
|