You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

183 lines
4.3 KiB

1 year ago
#import "typst-fontawesome/fontawesome.typ": *
#import "self.typ"
#set page("a4", margin: 1cm)
#set text(
font: ("Inter", "Noto Color Emoji"),
size: 10pt)
#let accent_color = rgb("#B00B69")
#let colors = (
accent: rgb("#b00b69"),
muted: rgb("#af4682"),
dark: rgb("#353133"),
mid: rgb("#635e61"),
light: rgb("#d8d0d4"),
)
#set text(fill: colors.dark)
#show heading: it => {
set text(fill: black)
it
}
#show heading.where(level: 2): it => {
it
v(-8pt)
line(length: 100%, stroke: 2pt + colors.muted)
}
#let accent(body, fill: accent_color) = {
text(fill)[#body]
}
#let skillbox(percent) = {
v(-2pt)
rect(width: 100%, fill: colors.light, inset: 0pt, height: 10pt, radius: 3pt)[#rect(width: percent, fill: accent_color, radius: 3pt)]
}
#let skill(desc: none, name, percent) = {
grid(
columns: (1fr, 2cm),
[*#name*],
skillbox(percent)
)
if desc != none {
v(-8pt)
text(size: 8pt)[#desc]
}
}
#let work_item(
ref: none,
time: none,
location: none,
title: none,
) = {
[=== #title]
if ref != none {
}
grid(
columns: (1fr, auto),
[=== #title],
ref
)
grid(
columns: (1fr, 1fr),
{
if time != none [
#fa-calendar-alt() #time
]
},
{
if location != none [
#fa-map-marker-alt() #location
]
}
)
}
#let meta_item(icon, body) = {
accent()[#icon]
h(5pt)
text(size: 9pt, baseline: -2pt, fill: colors.mid)[*#body*]
}
#let meta_items = (
(fa-at(), self.email),
(fa-id-card(), [they/them]),
(fa-map-marker-alt(), [Germany])
)
#let machine_reading_keyword_dump = [ // the future we live in... this actually does help and i hate that
// based in part on the stackoverflow dev survey
Rust, Python, Nix, JS, CSS, HTML, Web, Desktop, Embedded, Scalable, Server, Service, SAAS, Network, Administration,
Java, Backend, High performance Async, Serverless, React, NextJS, Scala, Erlang, Haskell, COBOL, Kubernetes, K8s, k3s,
Docker, Podman, Ansible, Terraform, Container, .NET, C\#, PHP, MySQL, Nginx, Apache, Database, SQLite, SQL, NoSQL,
MongoDB, npm, yarn, Unity, Unreal, Elixir, Clojure, TypeScript, Go, Kotlin, Swift, Dart, Bash, Ruby, C++, Lua,
Fortran, Assembly, Redis, Elasticsearch, Firebase, AWS, OVH, GCP, OpenStack, OpenShift, Phoenix, Svelte, Deno,
ASP.NET, FastAPI, Node.js, Django, Laravel, Flask, jQuery, Flutter, Keras, NumPy, Spring, React Native, Electron,
Git, CI/CD, DevOps, Observability, Grafana, Prometheus, OpenTelemetry, OTel, Microservice, debugging, gdb
]
#let section_skills = [
#set text(size: 9pt)
== Skills
//I am confident in my skills with: \
//- *Rust*—my current favorite language, which I picked up in 2020 and used for anything from embedded development to web backends or network proxies
//- *Python*—my first major language which i've used since 2012, sometimes interleaving with C (and recently Rust) for performance critical code
//- *PCB EDA tools*—designing digital circuits from component choice to finished boards, specifically using kicad
//- *Hardware design*—primarily using 3d printing and other maker accessible techniques
//Additionally, I have used and am somewhat fluent with: \
//- *Programming languages:* C, Java
//- *Web languages:* HTML, CSS, JS, Sass
]
#let section_natlang = [
== Natural Languages
#skill("English", 100%, desc: [Native Language])
#skill("German", 100%, desc: [Native Language])
#skill("Spanish", 20%, desc: [
Studied in school \
Self assessment: *A2*
])
]
#let section_competitions = [
== Competitions
#accent[#link("https://codingcontest.org")[*codingcontest.org*]]
#fa-calendar-alt() 2019-11-08
#set text(size: 9pt)
Worldwide level-based coding game.
- University of Salzburg: *1#super[st]* place
- Worldwide: *47#super[th]* place
]
#let section_work = [
== Work
#work_item(
ref: accent[#link("https://rami.io")[rami.io]],
title: "Software Engineer",
time: "2020 - 2021",
location: "Remote"
)
]
#let section_exp = []
// start layouting
#place(top + right, hide[#machine_reading_keyword_dump])
#text(size: 18pt)[= #upper(self.name)]
#v(-4pt)
#accent()[*#self.tagline*]
#meta_items.map(
((icon, body)) => meta_item(icon)[#body]
).join(h(1cm))
#show link: it => [
#fa-link() #it
]
#grid(
columns: (58mm, 1fr),
rows: auto,
gutter: 16pt,
[
#section_skills
#section_natlang
#section_competitions
],
[
#section_work
#section_exp
]
)