Files
framit/content/en/resume.typ
T

129 lines
4.0 KiB
Typst
Raw Normal View History

2026-07-08 07:31:03 +02:00
// Based on https://github.com/stuxf/basic-typst-resume-template
#import "@preview/basic-resume:0.2.9": *
#let resumeData = json("resume.json")
#let i18nData = json("../../i18n/locales/en.json")
#let privateData = json("../../private/data.json")
#let projects = json("projects.json");
#let tool-chip(t) = link(t.link)[#t.name]
#let tool-list(tools) = tools.map(tool-chip).join(", ")
#let name = i18nData.website.name
#let location = privateData.location
#let email = privateData.email
#let github = "github.com/phundrak"
#let gitea = "labs.phundrak.com/phundrak"
#let linkedin = "linkedin.com/in/lucien-cartier-tilet/"
#let phone = privateData.phone
#let personal-site = "phundrak.com"
// dates: dates-helper(start-date: "Jan 2021", end-date: "Present"),
#let time-period(dates) = {
let end = dates.at("end", default: none);
if end == none {
[Since #dates.start]
} else {
dates-helper(start-date: dates.start, end-date: end)
}
}
#show: resume.with(
author: name,
location: location,
email: email,
github: github,
linkedin: linkedin,
phone: phone,
personal-site: personal-site,
accent-color: "#5e81ac",
font: "New Computer Modern",
paper: "a4",
author-position: left,
personal-info-position: left,
)
/*
* Lines that start with == are formatted into section headings
* You can use the specific formatting functions if needed
* The following formatting functions are listed below
* #edu(dates: "", degree: "", gpa: "", institution: "", location: "", consistent: false)
* #work(company: "", dates: "", location: "", title: "")
* #project(dates: "", name: "", role: "", url: "")
* certificates(name: "", issuer: "", url: "", date: "")
* #extracurriculars(activity: "", dates: "")
* There are also the following generic functions that don't apply any formatting
* #generic-two-by-two(top-left: "", top-right: "", bottom-left: "", bottom-right: "")
* #generic-one-by-two(left: "", right: "")
*/
== Work Experience
#for e in resumeData.experience [
#work(
title: e.title,
company: e.company,
dates: time-period(e.dates)
)
#if e.description != "" [
#par(e.description)
]
#if "tools" in e and e.tools.len() > 0 [
#par(text(size: 9pt, fill: gray)[#tool-list(e.tools)])
]
]
== Technical Skills
- *Programming Languages*: #tool-list(resumeData.programmingLanguages)
- *Frameworks*: #tool-list(resumeData.frameworks)
- *Operating Systems*: #tool-list(resumeData.os)
- *Devops Technologies*: #tool-list(resumeData.devops)
- *Other Tools*: #tool-list(resumeData.otherTools)
== Education
#for e in resumeData.education [
#edu(
institution: e.institution,
location: e.location,
dates: time-period(e.dates),
degree: e.degree,
)
#if e.description != "" [
#par(e.description)
]
]
== Projects
#for p in projects.projects [
#project(
name: p.name,
role: p.role,
url: p.links.at(0).url,
dates: time-period(p.dates)
)
#par(p.description)
]
== Extracurricular Activities
#extracurriculars(
activity: "Conlanging",
dates: time-period((start: "2016")),
)
Artificial language creation
/ Eittlandic: a sister language to the Nordic languages like Norwegian or Icelandic.
- #link("https://conlang.phundrak.com/eittlandic")[conlang.phundrak.com/eittlandic]
- Naturalistic language
- Evolved from theorized Early Old Norse (an in-between of Proto-Norse and Old Norse)
/ Proto-Ñyqy: a language made as the root language of the Ñyqy language family in a fictional setting.
- #link("https://conlang.phundrak.com/proto-nyqy")[conlang.phundrak.com/proto-nyqy]
- Relatively simple grammar
- Base for several related languages and sub-families, like the Mojhal languages (currently under construction)
/ Zikãti: Experimental language focused on vocabulary generation
- #link("https://conlang.phundrak.com/zik%C3%A3ti")[conlang.phundrak.com/zikãti]
- Vocabulary based on few root words for generic concepts, expanded with prefixes and suffixes