Last active
January 24, 2024 12:01
-
-
Save tomasharkema/2bb70bcf98f92a2972d650ee87436362 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Contacts | |
import UIKit | |
// MARK: - Personal data | |
let name = "Tomas Harkema" | |
var address = CNMutablePostalAddress() | |
address.street = "Ebbehout 29 A05" | |
address.postalCode = "1507EA" | |
address.city = "Zaandam" | |
let birthDate = DateComponents(year: 1994, month: 7, day: 2).date | |
let mobilePhone = "+31631946483" | |
let emailAddress = "tomas@harkema.io" | |
// MARK: - Educational data | |
let schools = [ | |
School( | |
name: "Blaise Pascal College", | |
place: "Zaandam", | |
grade: "HAVO", | |
started: DateComponents(year: 2007).date, | |
finished: DateComponents(year: 2012).date, | |
graduation: "Natuur & Techniek + Economie" | |
), | |
School( | |
name: "Communication and Media Design", | |
place: "Amsterdam", | |
grade: "HBO", | |
started: DateComponents(year: 2012).date, | |
finished: nil, | |
graduation: nil | |
), | |
School( | |
name: "Informatica Deeltijd (Computer Science)", | |
place: "Amsterdam", | |
grade: "HBO", | |
started: DateComponents(year: 2018).date, | |
finished: nil, | |
graduation: "de Volkskrant–De Editie iPad app (9,6)" | |
), | |
] | |
let internships = [ | |
Company( | |
name: "Q42", | |
place: "Amsterdam/Den Haag", | |
function: "iOS Developer", | |
started: DateComponents(year: 2014, month: 4).date, | |
finished: DateComponents(year: 2014, month: 9).date, | |
proficiency: [ | |
Proficiency( | |
language: "Objective C", | |
topics: "UIKit, REST, APNS", | |
level: "junior" | |
), | |
] | |
), | |
Company( | |
name: "De Persgroep; de Volkskrant", | |
place: "Amsterdam", | |
function: "Afstudeerder", | |
started: DateComponents(year: 2017, month: 8).date, | |
finished: DateComponents(year: 2018, month: 2).date, | |
proficiency: [ | |
Proficiency( | |
language: "TypeScript", | |
topics: "React Native", | |
level: "medior" | |
), | |
Proficiency( | |
language: "Swift", | |
topics: "React Native", | |
level: "medior" | |
), | |
] | |
), | |
] | |
// MARK: - relevant working experience | |
let companies = [ | |
Company( | |
name: "Tomas Harkema Media", | |
place: "Amsterdam", | |
function: "ZZP", | |
started: DateComponents(year: 2013, month: 2).date, | |
finished: DateComponents(year: 2014, month: 8).date, | |
proficiency: [ | |
Proficiency( | |
language: "PHP", | |
topics: "Wordpress, guest ticket system", | |
level: "medior" | |
), | |
Proficiency( | |
language: "Adobe CC / After Effects / Premiere", | |
topics: "Visual, animation, editing", | |
level: "medior" | |
), | |
] | |
), | |
Company( | |
name: "Q42", | |
place: "Amsterdam/Den Haag", | |
function: "Medior iOS Developer", | |
started: DateComponents(year: 2014, month: 9).date, | |
finished: nil, | |
proficiency: [ | |
Proficiency( | |
language: "Swift (UIKit)", | |
topics: "UIKit, CoreLocation, CoreBluetooth", | |
level: "medior" | |
), | |
Proficiency( | |
language: "Swift (SwiftUI)", | |
topics: "SwiftUI", | |
level: "experienced" | |
), | |
Proficiency( | |
language: "TypeScript", | |
topics: "React Native, NodeJS", | |
level: "medior" | |
), | |
Proficiency( | |
language: "Golang", | |
topics: "Docker, edge computing", | |
level: "junior" | |
), | |
Proficiency( | |
language: "Kotlin", | |
topics: "Android", | |
level: "medior but rusty" | |
), | |
Proficiency( | |
language: "Java", | |
topics: "Android", | |
level: "medior but very rusty" | |
), | |
Proficiency( | |
language: "Adobe CC / After Effects / Premiere / ffmpeg", | |
topics: "Inapp visuals, live streams, HLS livestreaming, encoding/stitching pipelines", | |
level: "medior" | |
), | |
] | |
), | |
Company( | |
name: "EMG", | |
place: "Hilversum", | |
function: "Graphics Engineer", | |
started: DateComponents(year: 2022, month: 12).date, | |
finished: DateComponents(year: 2023, month: 6).date, | |
proficiency: [ | |
Proficiency( | |
language: "C#", | |
topics: ".NET Framework WPF, .NET Core", | |
level: "medior" | |
), | |
Proficiency( | |
language: "TypeScript", | |
topics: "NodeJS, Webpack", | |
level: "medior" | |
), | |
Proficiency( | |
language: "Golang", | |
topics: "Docker, edge computing", | |
level: "junior" | |
), | |
Proficiency( | |
language: "Kotlin", | |
topics: "Android", | |
level: "medior" | |
), | |
Proficiency( | |
language: "Adobe CC / After Effects / Premiere / ffmpeg", | |
topics: "Inapp visuals, live streams, HLS livestreaming, encoding/stitching pipelines", | |
level: "medior" | |
), | |
] | |
), | |
Company( | |
name: "Flitsmeister", | |
place: "Veenendaal", | |
function: "Senior iOS Developer", | |
started: DateComponents(year: 2023, month: 7).date, | |
finished: nil, | |
proficiency: [ | |
Proficiency( | |
language: "Swift", | |
topics: "Swift Package Manager, CoreLocation, CoreBluetooth, async/await", | |
level: "senior" | |
), | |
Proficiency( | |
language: "Swift (SwiftUI)", | |
topics: "SwiftUI", | |
level: "medior" | |
), | |
] | |
), | |
] | |
// MARK: - helper structs | |
struct School { | |
let name: String | |
let place: String | |
let grade: String | |
let started: Date? | |
let finished: Date? | |
let graduation: String? | |
} | |
struct Company { | |
let name: String | |
let place: String | |
let function: String | |
let started: Date? | |
let finished: Date? | |
let proficiency: [Proficiency] | |
} | |
struct Proficiency { | |
let language: String | |
let topics: String | |
let level: String | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment