xenua
1 year ago
commit
6d4a579209
10 changed files with 259 additions and 0 deletions
@ -0,0 +1,3 @@ |
|||||||
|
[submodule "typst-fontawesome"] |
||||||
|
path = typst-fontawesome |
||||||
|
url = https://github.com/duskmoon314/typst-fontawesome.git |
@ -0,0 +1,35 @@ |
|||||||
|
#import "@preview/fontawesome:0.1.0" |
||||||
|
|
||||||
|
#let process_colors(colors) = { |
||||||
|
if colors.at("base", none) == none { |
||||||
|
colors.insert("base", rgb(#b00b69)) |
||||||
|
} |
||||||
|
if colors.at("light", none) == none { |
||||||
|
colors.insert("light", colors.base.lighten(35%)) |
||||||
|
} |
||||||
|
if colors.at("lighter", none) == none { |
||||||
|
colors.insert("lighter", colors.base.lighten(70%)) |
||||||
|
} |
||||||
|
if colors.at("dark", none) == none { |
||||||
|
colors.insert("dark", colors.base.darken(35%)) |
||||||
|
} |
||||||
|
if colors.at("darker", none) == none { |
||||||
|
colors.insert("darker", colors.base.darken(70%)) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#let cv( |
||||||
|
colors: {}, |
||||||
|
self, |
||||||
|
left_col, |
||||||
|
right_col, |
||||||
|
|
||||||
|
) = { |
||||||
|
process_colors(colors) |
||||||
|
set page("a4", margin: 1cm) |
||||||
|
set text( |
||||||
|
font: "Inter", |
||||||
|
size: 10pt |
||||||
|
) |
||||||
|
|
||||||
|
} |
Binary file not shown.
@ -0,0 +1,182 @@ |
|||||||
|
#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 |
||||||
|
] |
||||||
|
) |
||||||
|
|
@ -0,0 +1,5 @@ |
|||||||
|
#let name = [Julia Luna] |
||||||
|
|
||||||
|
#let tagline = [Software engineer, embedded developer] |
||||||
|
|
||||||
|
#let email = link("mailto:me@julialuna.dev") |
Binary file not shown.
@ -0,0 +1,33 @@ |
|||||||
|
#let base_color = rgb("#b00b69") |
||||||
|
|
||||||
|
#let bc_dark = base_color.darken(35%) |
||||||
|
#let bc_darker = base_color.darken(70%) |
||||||
|
#let bc_light = base_color.lighten(35%) |
||||||
|
#let bc_lighter = base_color.lighten(70%) |
||||||
|
|
||||||
|
#let vis(color) = { |
||||||
|
rect(width: 3cm, height: 3cm, fill: color, stroke: 8pt + white, radius: 8pt) |
||||||
|
} |
||||||
|
|
||||||
|
#let process_colors(colors) = { |
||||||
|
if colors.at("base", none) == none { |
||||||
|
colors.insert("base", rgb("#b00b69")) |
||||||
|
} |
||||||
|
if colors.at("light", none) == none { |
||||||
|
colors.insert("light", colors.base.lighten(35%)) |
||||||
|
} |
||||||
|
if colors.at("lighter", none) == none { |
||||||
|
colors.insert("lighter", colors.base.lighten(70%)) |
||||||
|
} |
||||||
|
if colors.at("dark", none) == none { |
||||||
|
colors.insert("dark", colors.base.darken(35%)) |
||||||
|
} |
||||||
|
if colors.at("darker", none) == none { |
||||||
|
colors.insert("darker", colors.base.darken(70%)) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#let colors = (:) |
||||||
|
#process_colors(colors) |
||||||
|
|
||||||
|
|
Loading…
Reference in new issue