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.
182 lines
4.7 KiB
182 lines
4.7 KiB
#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 |
|
] |
|
) |
|
|
|
|