diff options
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | developercv.cls | 184 | ||||
| -rw-r--r-- | font/Font Awesome 7 Brands.otf | bin | 0 -> 199352 bytes | |||
| -rw-r--r-- | font/Font Awesome 7 Regular.otf | bin | 0 -> 87332 bytes | |||
| -rw-r--r-- | font/Font Awesome 7 Solid.otf | bin | 0 -> 410580 bytes | |||
| -rw-r--r-- | font/Raleway-Black.ttf | bin | 0 -> 163684 bytes | |||
| -rw-r--r-- | font/Raleway-BlackItalic.ttf | bin | 0 -> 162072 bytes | |||
| -rw-r--r-- | font/Raleway-Bold.ttf | bin | 0 -> 164044 bytes | |||
| -rw-r--r-- | font/Raleway-BoldItalic.ttf | bin | 0 -> 162420 bytes | |||
| -rw-r--r-- | font/Raleway-ExtraBold.ttf | bin | 0 -> 164152 bytes | |||
| -rw-r--r-- | font/Raleway-ExtraBoldItalic.ttf | bin | 0 -> 162668 bytes | |||
| -rw-r--r-- | font/Raleway-ExtraLight.ttf | bin | 0 -> 164188 bytes | |||
| -rw-r--r-- | font/Raleway-ExtraLightItalic.ttf | bin | 0 -> 162368 bytes | |||
| -rw-r--r-- | font/Raleway-Italic-VariableFont_wght.ttf | bin | 0 -> 303956 bytes | |||
| -rw-r--r-- | font/Raleway-Italic.ttf | bin | 0 -> 303956 bytes | |||
| -rw-r--r-- | font/Raleway-Italic_1.ttf | bin | 0 -> 162208 bytes | |||
| -rw-r--r-- | font/Raleway-Light.ttf | bin | 0 -> 164112 bytes | |||
| -rw-r--r-- | font/Raleway-LightItalic.ttf | bin | 0 -> 162424 bytes | |||
| -rw-r--r-- | font/Raleway-Medium.ttf | bin | 0 -> 164128 bytes | |||
| -rw-r--r-- | font/Raleway-MediumItalic.ttf | bin | 0 -> 162328 bytes | |||
| -rw-r--r-- | font/Raleway-Regular.ttf | bin | 0 -> 164116 bytes | |||
| -rw-r--r-- | font/Raleway-SemiBold.ttf | bin | 0 -> 164132 bytes | |||
| -rw-r--r-- | font/Raleway-SemiBoldItalic.ttf | bin | 0 -> 162540 bytes | |||
| -rw-r--r-- | font/Raleway-Thin.ttf | bin | 0 -> 163896 bytes | |||
| -rw-r--r-- | font/Raleway-ThinItalic.ttf | bin | 0 -> 162052 bytes | |||
| -rw-r--r-- | font/Raleway-VariableFont_wght.ttf | bin | 0 -> 309720 bytes | |||
| -rw-r--r-- | font/Raleway.ttf | bin | 0 -> 309720 bytes | |||
| -rw-r--r-- | template.typ | 211 | ||||
| -rw-r--r-- | urbanprah_cv.pdf | bin | 138097 -> 63768 bytes | |||
| -rw-r--r-- | urbanprah_cv.tex | 388 | ||||
| -rw-r--r-- | urbanprah_cv.typ | 351 |
31 files changed, 563 insertions, 573 deletions
@@ -1,6 +1,6 @@ # Urban Prah - CV -This repository contains the source to my cv. It's written in LaTex and can be compiled using ```pdflatex```. For the most part it's a customized a template whose authors are credited below. +This repository contains the source to my cv. It's been rewritten in Typst and can be compiled using `typst compile --font-path ./font urbanprah.typ`. For the most part it's a modification of a LaTex template whose authors are credited below. ##### Credits: * jan@vorisek.me diff --git a/developercv.cls b/developercv.cls deleted file mode 100644 index cf83f69..0000000 --- a/developercv.cls +++ /dev/null @@ -1,184 +0,0 @@ -% TEMPLATE CONFIGURATION -%======================== - -% CLASS CONFIGURATION -%--------------------- -\NeedsTeXFormat{LaTeX2e} -\ProvidesClass{developercv}[2019/01/28 Developer CV class v1.0] - -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}} % Pass through any options to the base class -\ProcessOptions\relax % Process given options - -\LoadClass{extarticle} % Load the base class - -% PACKAGES -%---------- - -\setlength{\parindent}{0mm} % Suppress paragraph indentation - -\usepackage[hidelinks]{hyperref} % Required for links but hide the default boxes around links - -\newcommand{\lorem}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.} % Dummy text - -\pagestyle{empty} % No headers or footers - -\usepackage{moresize} % Provides more font size commands (\HUGE and \ssmall) - -\usepackage{advdate} - -% PAGE LAYOUT -%------------- - -\usepackage{geometry} % Required for adjusting page dimensions and margins - -\geometry{ - paper=a4paper, % Paper size, change to letterpaper for US letter size - top=1.75cm, % Top margin - bottom=1.75cm, % Bottom margin - left=2cm, % Left margin - right=2cm, % Right margin - headheight=0.75cm, % Header height - footskip=1cm, % Space from the bottom margin to the baseline of the footer - headsep=0.5cm, % Space from the top margin to the baseline of the header - %showframe, % Uncomment to show how the type block is set on the page -} - -% FONTS -%------- - -\usepackage[utf8]{inputenc} % Required for inputting international characters -\usepackage[T1]{fontenc} % Output font encoding for international characters - -\usepackage[default]{raleway} -%\usepackage[defaultsans]{droidsans} -%\usepackage{cmbright} -%\usepackage{fetamont} -%\usepackage[default]{gillius} -%\usepackage{roboto} - -\renewcommand*\familydefault{\sfdefault} % Force the sans-serif version of any font used - -%------------------------------------------------ - -\usepackage{fontawesome} % Required for FontAwesome icons - -% Command to output an icon in a black square box with text to the right -\newcommand{\icon}[3]{% The first parameter is the FontAwesome icon name, the second is the box size and the third is the text - \vcenteredhbox{\colorbox{black}{\makebox(#2, #2){\textcolor{white}{\large\csname fa#1\endcsname}}}}% Icon and box - \hspace{0.2cm}% Whitespace - \vcenteredhbox{\textcolor{black}{#3}}% Text -} - -% GRAPHICS DEFINITIONS -%---------------------- - -\usepackage{tikz} % Required for creating the plots -\usetikzlibrary{shapes, backgrounds} -\tikzset{x=1cm, y=1cm} % Default tikz units - -% Command to vertically centre adjacent content -\newcommand{\vcenteredhbox}[1]{% The only parameter is for the content to centre - \begingroup% - \setbox0=\hbox{#1}\parbox{\wd0}{\box0}% - \endgroup% -} - -% CHARTS -%-------- - -\newcounter{barcount} - -% Environment to hold a new bar chart -\newenvironment{barchart}[1]{ % The only parameter is the maximum bar width, in cm - \newcommand{\barwidth}{0.35} - \newcommand{\barsep}{0.2} - - % Command to add a bar to the bar chart - \newcommand{\baritem}[2]{ % The first argument is the bar label and the second is the percentage the current bar should take up of the total width - \pgfmathparse{##2} - \let\perc\pgfmathresult - - \pgfmathparse{#1} - \let\barsize\pgfmathresult - - \pgfmathparse{\barsize*##2/100} - \let\barone\pgfmathresult - - \pgfmathparse{(\barwidth*\thebarcount)+(\barsep*\thebarcount)} - \let\barx\pgfmathresult - - \filldraw[fill=black, draw=none] (0,-\barx) rectangle (\barone,-\barx-\barwidth); - - \node [label=180:\colorbox{black}{\textcolor{white}{##1}}] at (0,-\barx-0.175) {}; - \addtocounter{barcount}{1} - } - \begin{tikzpicture} - \setcounter{barcount}{0} -}{ - \end{tikzpicture} -} - -%------------------------------------------------ - -\newcounter{a} -\newcounter{b} -\newcounter{c} - -% Command to output a number of automatically-sized bubbles from a string in the format of '<size>/<label>', e.g. \bubbles{5/Eclipse, 6/git, 4/Office, 3/Inkscape, 3/Blender} -\newcommand{\bubbles}[1]{ - % Reset counters - \setcounter{a}{0} - \setcounter{c}{150} - - \begin{tikzpicture}[scale=3] - \foreach \p/\t in {#1} { - \addtocounter{a}{1} - \bubble{\thea*2/2}{\theb}{\p/20}{\t}{1\p0} - } - \end{tikzpicture} -} - -% Command to output a bubble at a specific position with a specific size -\newcommand{\bubble}[5]{ - \filldraw[fill=black, draw=none] (#1,0.5) circle (#3); % Bubble - \node[anchor=south, align=center] at (#1,0.0) {\parbox{3.5cm}{\centering \textcolor{black}{#4}}}; % Label -} - -% CUSTOM SECTIONS -%----------------- - -% Command to output section title headings -\newcommand{\cvsect}[1]{% The only parameter is the section text - \vspace{\baselineskip} % Whitespace before the section title - \colorbox{black}{\textcolor{white}{\MakeUppercase{\textbf{#1}}}}\\% Section title -} - -% ENTRY LIST -%------------ - -\usepackage{longtable} % Required for tables that span multiple pages -\setlength{\LTpre}{0pt} % Remove default whitespace before longtable -\setlength{\LTpost}{0pt} % Remove default whitespace after longtable - -\setlength{\tabcolsep}{0pt} % No spacing between table columns - -% Environment to hold a new list of entries -\newenvironment{entrylist}{ - \begin{longtable}[H]{l l} -}{ - \end{longtable} -} - -\newcommand{\entry}[4]{% First argument for the leftmost date(s) text, second is for the bold entry heading, third is for the bold right-aligned entry qualifier and the fourth is for the entry description - \parbox[t]{0.175\textwidth}{% 17.5% of the text width of the page - #1 % Leftmost entry date(s) text - }% - &\parbox[t]{0.825\textwidth}{% 82.5% of the text width of the page - \textbf{#2}% Entry heading text - \hfill% Horizontal whitespace - {\footnotesize \textbf{\textcolor{black}{#3}}}\\% Right-aligned entry qualifier text - #4 % Entry description text - }\\\\} - -% Command to output a separator slash between lists, e.g. ' / ' -\newcommand{\slashsep}{\hspace{3mm}/\hspace{3mm}} diff --git a/font/Font Awesome 7 Brands.otf b/font/Font Awesome 7 Brands.otf Binary files differnew file mode 100644 index 0000000..672a35b --- /dev/null +++ b/font/Font Awesome 7 Brands.otf diff --git a/font/Font Awesome 7 Regular.otf b/font/Font Awesome 7 Regular.otf Binary files differnew file mode 100644 index 0000000..d96d2ea --- /dev/null +++ b/font/Font Awesome 7 Regular.otf diff --git a/font/Font Awesome 7 Solid.otf b/font/Font Awesome 7 Solid.otf Binary files differnew file mode 100644 index 0000000..90d72a6 --- /dev/null +++ b/font/Font Awesome 7 Solid.otf diff --git a/font/Raleway-Black.ttf b/font/Raleway-Black.ttf Binary files differnew file mode 100644 index 0000000..1bd9a3f --- /dev/null +++ b/font/Raleway-Black.ttf diff --git a/font/Raleway-BlackItalic.ttf b/font/Raleway-BlackItalic.ttf Binary files differnew file mode 100644 index 0000000..5468876 --- /dev/null +++ b/font/Raleway-BlackItalic.ttf diff --git a/font/Raleway-Bold.ttf b/font/Raleway-Bold.ttf Binary files differnew file mode 100644 index 0000000..4e1e549 --- /dev/null +++ b/font/Raleway-Bold.ttf diff --git a/font/Raleway-BoldItalic.ttf b/font/Raleway-BoldItalic.ttf Binary files differnew file mode 100644 index 0000000..ab9ef56 --- /dev/null +++ b/font/Raleway-BoldItalic.ttf diff --git a/font/Raleway-ExtraBold.ttf b/font/Raleway-ExtraBold.ttf Binary files differnew file mode 100644 index 0000000..9299c55 --- /dev/null +++ b/font/Raleway-ExtraBold.ttf diff --git a/font/Raleway-ExtraBoldItalic.ttf b/font/Raleway-ExtraBoldItalic.ttf Binary files differnew file mode 100644 index 0000000..8d550cf --- /dev/null +++ b/font/Raleway-ExtraBoldItalic.ttf diff --git a/font/Raleway-ExtraLight.ttf b/font/Raleway-ExtraLight.ttf Binary files differnew file mode 100644 index 0000000..e335ce2 --- /dev/null +++ b/font/Raleway-ExtraLight.ttf diff --git a/font/Raleway-ExtraLightItalic.ttf b/font/Raleway-ExtraLightItalic.ttf Binary files differnew file mode 100644 index 0000000..f5761cb --- /dev/null +++ b/font/Raleway-ExtraLightItalic.ttf diff --git a/font/Raleway-Italic-VariableFont_wght.ttf b/font/Raleway-Italic-VariableFont_wght.ttf Binary files differnew file mode 100644 index 0000000..6792aa0 --- /dev/null +++ b/font/Raleway-Italic-VariableFont_wght.ttf diff --git a/font/Raleway-Italic.ttf b/font/Raleway-Italic.ttf Binary files differnew file mode 100644 index 0000000..6792aa0 --- /dev/null +++ b/font/Raleway-Italic.ttf diff --git a/font/Raleway-Italic_1.ttf b/font/Raleway-Italic_1.ttf Binary files differnew file mode 100644 index 0000000..5c76012 --- /dev/null +++ b/font/Raleway-Italic_1.ttf diff --git a/font/Raleway-Light.ttf b/font/Raleway-Light.ttf Binary files differnew file mode 100644 index 0000000..36f9efa --- /dev/null +++ b/font/Raleway-Light.ttf diff --git a/font/Raleway-LightItalic.ttf b/font/Raleway-LightItalic.ttf Binary files differnew file mode 100644 index 0000000..2f6ecc3 --- /dev/null +++ b/font/Raleway-LightItalic.ttf diff --git a/font/Raleway-Medium.ttf b/font/Raleway-Medium.ttf Binary files differnew file mode 100644 index 0000000..c6fa533 --- /dev/null +++ b/font/Raleway-Medium.ttf diff --git a/font/Raleway-MediumItalic.ttf b/font/Raleway-MediumItalic.ttf Binary files differnew file mode 100644 index 0000000..c34ff6a --- /dev/null +++ b/font/Raleway-MediumItalic.ttf diff --git a/font/Raleway-Regular.ttf b/font/Raleway-Regular.ttf Binary files differnew file mode 100644 index 0000000..774b382 --- /dev/null +++ b/font/Raleway-Regular.ttf diff --git a/font/Raleway-SemiBold.ttf b/font/Raleway-SemiBold.ttf Binary files differnew file mode 100644 index 0000000..359f89b --- /dev/null +++ b/font/Raleway-SemiBold.ttf diff --git a/font/Raleway-SemiBoldItalic.ttf b/font/Raleway-SemiBoldItalic.ttf Binary files differnew file mode 100644 index 0000000..1e076a4 --- /dev/null +++ b/font/Raleway-SemiBoldItalic.ttf diff --git a/font/Raleway-Thin.ttf b/font/Raleway-Thin.ttf Binary files differnew file mode 100644 index 0000000..62ac22a --- /dev/null +++ b/font/Raleway-Thin.ttf diff --git a/font/Raleway-ThinItalic.ttf b/font/Raleway-ThinItalic.ttf Binary files differnew file mode 100644 index 0000000..6f9f51d --- /dev/null +++ b/font/Raleway-ThinItalic.ttf diff --git a/font/Raleway-VariableFont_wght.ttf b/font/Raleway-VariableFont_wght.ttf Binary files differnew file mode 100644 index 0000000..a71c7e9 --- /dev/null +++ b/font/Raleway-VariableFont_wght.ttf diff --git a/font/Raleway.ttf b/font/Raleway.ttf Binary files differnew file mode 100644 index 0000000..a71c7e9 --- /dev/null +++ b/font/Raleway.ttf diff --git a/template.typ b/template.typ new file mode 100644 index 0000000..8bc210d --- /dev/null +++ b/template.typ @@ -0,0 +1,211 @@ +#let default_font = "Raleway" +#let icon_font = "Font Awesome 7 Free Solid" +#let icon_size = 10pt + +#let fa(txt, size: 7pt) = text( + font: icon_font, + size: size, + txt, +) + +#let smartlink(url, content) = if url != none { + link(url, underline(offset: 1.5pt, content)) +} else { + content +} + +#let inv_box(content, size: 10pt, bold: true, capital: true) = box( + fill: black, + inset: 3pt, + text( + fill: white, + weight: if bold { "bold" } else { "regular" }, + size: size, + if capital { upper(content) } else { content }, + ), +) + +#let job(title, location) = stack( + dir: ttb, + spacing: 0.5em, + strong(title), + location, +) + +#let iconlink(icon, label) = grid( + columns: (auto, auto), + column-gutter: 0.5em, + align: (horizon, horizon), + /* Icon */ + square( + size: icon_size * 1.8, + fill: black, + align( + horizon + center, + move( + dy: -icon_size / 10, + text(white, fa(icon, size: icon_size)), + ), + ), + ), + /* Text */ + text(size: 9pt, label) +) + +#let skillbar(title, percent) = ( + // Use array so alignment can be determined in parrent + inv_box(title, size: 9pt, bold: false, capital: false), + line(length: percent, stroke: 10pt), +) + +#let skillbubble(title, percent) = ( + circle(fill: black, radius: percent * 2.5em), + text(title), +) + +#let field(name, bubbles: (), experiences: (), education: (), other: ()) = { + /* Title */ + heading(name) + line(length: 100%, stroke: 0.05em) + + /* Bubbles */ + if bubbles.len() > 0 { + set align(center) + box( + grid( + columns: bubbles.len(), + rows: 2, + row-gutter: 2em, + column-gutter: 2em, + align: (horizon), + ..bubbles.map(pair => pair.at(0)).flatten(), + ..bubbles.map(pair => pair.at(1)).flatten(), + ), + ) + } + + /* Experinces */ + if experiences.len() > 0 { inv_box("Experience") } + stack(dir: ttb, spacing: 1.0em, ..experiences) + + /* Education */ + if education.len() > 0 { inv_box("Education") } + stack(dir: ttb, spacing: 1.0em, ..education) + + /* Other */ + grid( + columns: (auto, auto, auto), + gutter: 3em, + ..other, + ) +} + +#let date_tag(tag) = if tag != "" { + v(-0.2em) + text(size: 8pt, tag) +} + +#let experience(date, title, location, description, skills: (), tag: "") = block( + breakable: false, + grid( + columns: (8em, auto), + rows: (auto, auto), + row-gutter: 0.7em, + column-gutter: 1em, + date, + stack( + dir: ltr, + spacing: 1fr, + strong(title), + text(size: 8pt, weight: "bold", location), + ), + date_tag(tag), // + par(justify: true, description), + none, + skills + .map(raw) + .join({ + h(1em) + raw("/") + h(1em) + }), + ), +) + +#let info(title, content) = { + inv_box(title, size: 8pt) + set par(justify: true) + set text(size: 8pt) + content +} + +#let CV( + author: "Janez Novak", + active_jobs: (), + links: (), + about: lorem(150), + skills: (), + fields: (), +) = { + set document( + title: "CV", + author: author, + description: author + "'s CV", + ) + set page( + paper: "a4", + margin: (top: 2.0cm, bottom: 3.0cm, left: 1.75cm, right: 1.75cm), + ) + set underline(stroke: (dash: "dotted")) + set text(size: 9pt, spacing: 1.3pt, font: default_font) + + /* Content */ + grid( + columns: (1fr, 1fr), + rows: (auto, auto), + gutter: 2em, + + /* Name, jobs */ + stack( + dir: ttb, + author.split(" ").map(a => { inv_box(a, size: 30pt) }).join(v(-1em)), + v(0.7em), + stack(spacing: 0.7em, ..active_jobs), + ), + + /* Icon links */ + box( + height: 12%, + columns( + 2, + gutter: 1em, + links + .map(l => { + l + v(-1em) + }) + .join(), + ), + ), + + /* About */ + box[ + #inv_box("About me") + #par(justify: true)[ #context about ] + ], + + /* Skill bar */ + grid.cell( + align: left + horizon, + grid( + columns: (1fr, 3fr), + column-gutter: 1em, + row-gutter: 0.2em, + align: (right, horizon, left, horizon), + ..skills.flatten(), + ), + ), + ) + set underline(stroke: (dash: "solid")) + fields.join(pagebreak()) +} diff --git a/urbanprah_cv.pdf b/urbanprah_cv.pdf Binary files differindex 9a8ac8e..a92ca81 100644 --- a/urbanprah_cv.pdf +++ b/urbanprah_cv.pdf diff --git a/urbanprah_cv.tex b/urbanprah_cv.tex deleted file mode 100644 index ec80b68..0000000 --- a/urbanprah_cv.tex +++ /dev/null @@ -1,388 +0,0 @@ -\listfiles -\documentclass[9pt]{developercv} - -\begin{document} -\begin{minipage}[t]{0.45\textwidth} - \vspace{-\baselineskip} - \colorbox{black}{{\HUGE\textcolor{white}{\textbf{\MakeUppercase{Urban}}}}}\\ - \colorbox{black}{{\HUGE\textcolor{white}{\textbf{\MakeUppercase{Prah}}}}} - \vspace{6pt} - - {\large {\bf Embedded Software Developer}\\ - \href{https://www.leis.um.si/}{Laboratory for Electronic and - Information\\ Systems, University of Maribor}}\\ - {\large {\bf Routesetter and Coach}\\ \href{https://pcsb.si/}{Plezalni - center Slovenska Bistrica}} -\end{minipage} -\hspace{\baselineskip} -\begin{minipage}[t]{0.275\textwidth} - \vspace{-\baselineskip} - \icon{MapMarker}{12}{Poljčane}\\ - \icon{GraduationCap}{12}{\href{https://feri.um.si/en/}{FERI}}\\ - \icon{Phone}{12}{\href{tel:+38640521816}{+386 40 521 816}}\\ - \icon{Envelope}{12}{\href{mailto:urban.prah@student.um.si}{urban.prah@gmail.com}}\\ -\end{minipage} -\begin{minipage}[t]{0.275\textwidth} - \vspace{-\baselineskip} - \icon{Globe}{12}{\href{https://urbanprah.xyz}{urbanprah.xyz}}\\ - \icon{Trophy}{12}{\href{https://www.8a.nu/user/urban-prah}{8a.nu profile}}\\ - %\icon{Git}{12}{\href{https://git.urbanprah.xyz}{git.urbanprah.xyz}}\\ - %\icon{Rss}{12}{\href{https://blog.urbanprah.xyz}{blog.urbanprah.xyz}}\\ -\end{minipage} - -\begin{minipage}[t]{0.45\textwidth} - \vspace{0.3cm} - \cvsect{About me} - \vspace{0.3cm} - - \vspace{-\baselineskip} - I am a 24-year-old master's degree candidate at University of Maribor. I am - precise, organized and methodical, often bothered by incomplete work, - familiar with efficiency, simplicity, modularity and optimized work flows. - I would consider myself a minimalist at different aspects of my life - including programming. When I get myself comfortable with the work I do, I - often gravitate towards taking a leading role. Sport climbing recently - became a big part of my life, evolving from a hobby turning into a form of - personal recreation, training others and routesetting. -\end{minipage} -\hfill -\begin{minipage}[t]{0.5\textwidth} - \vspace{1.0cm} - \vspace{-\baselineskip} - \begin{barchart}{5.5} - \baritem{C}{80} - \baritem{Python}{85} - \baritem{FreeRTOS}{70} - \baritem{POSIX Shell}{75} - \baritem{Java}{60} - \baritem{C++/C\#}{40} - \baritem{Git, SVN}{70} - \baritem{Linux}{100} - \end{barchart} -\end{minipage}\\ - - -\vspace{1.0cm} -\textbf{\huge{Software development}}\\ -\rule{\textwidth}{0.4pt} - -\cvsect{Experience} -\begin{entrylist} - \entry - {2023 - Present\\} - {Embedded development - \href{https://www.skylabs.si/sara/}{\underline{SARA}}} - {\href{https://www.leis.um.si/en/}{LEIS}} - {R\&D for an unmanned arachnid-shaped space vehicle. The software is - responsible for remote control and autonomous locomotion. Development - includes simulation design and analysis, with future prospects of - embedded on-board application and real-life use.\\ - \texttt{Python} - \slashsep\texttt{IK} - \slashsep\texttt{PID} - \slashsep\texttt{pinocchio} - \slashsep\texttt{RISC-V} - \slashsep\texttt{Gazebo sim} - \slashsep\texttt{Yocto}} - - \entry - {2021 - 2022\\} - {Embedded development - \href{https://www.trisat.um.si/trisat-r.html}{\underline{TRISAT-R}}} - {\href{https://www.leis.um.si/en/}{LEIS}} - {Writing and testing firmware for the ADCS and OBC subsystems. Processing - on-board sensor data (gyroscopes, sun sensors, magnetometer, GPS) to - perform satellite detumbling and reorientation using its magentorquer - actuators. Implementing image capture, logging and task scheduling - functionality. \href{https://feri.um.si/novice/trisat-r-majhen-po-tehnologiji-in-velik-po-inovativnosti/}{\underline{Article}}.\\ - \texttt{FreeRTOS} - \slashsep\texttt{C} - \slashsep\texttt{Python} - \slashsep\texttt{CAN} - \slashsep\texttt{UART} - \slashsep\texttt{SPI} - \slashsep\texttt{Subversion}} - - \entry - {2020 - 2021\\} - {Java development} - {\href{https://intechcore.com/}{IntechCORE GmbH}} - {Remote work during the pandemic. Project maintenance and refactoring, - java-like programming language development. Language self-testing and - unit testing.\\ - \texttt{Java} - \slashsep\texttt{\href{https://www.antlr.org/}{ANTLR}} - \slashsep\texttt{Testing} - \slashsep\texttt{Visitor pattern} - \slashsep\texttt{Software Design} - \slashsep\texttt{Subversion}} - - \entry - {17. 9. -- 15. 10. 2019\\ \footnotesize{competition}} - {Block chain summer school winner} - {\href{https://feri.um.si/}{FERI}} - {Developed a practical solution to a problem of implementing blockchain - into a hypothetical \href{https://en.wikipedia.org/wiki/Massive_open_online_course}{\underline{MOOC}} - service. Product was a multi-platform mobile app that used blockchain - tokens to provide an incentive in form of rewards for users to use the - company's online services. - \href{https://feri.um.si/novice/znani-zmagovalci-tretje-feri-jesenske-sole-razvoja-blockchain-aplikacij-in-decentraliziranih-resitev/}{\underline{Article}}.\\ - \texttt{Blockchain} - \slashsep\texttt{MySql} - \slashsep\texttt{NodeJS} - \slashsep\texttt{REST} - \slashsep\texttt{React Native} - \slashsep\texttt{Git}} - - \entry - {2019\\\footnotesize{competition}} - {\href{https://tekmovanja.acm.si/?q=upm}{</upm}} - {\href{https://tekmovanja.acm.si/}{ACM}} - {With a team of two other schoolmates we finished 21st in the national - programming marathon competition. - \href{https://tekmovanja.acm.si/?q=rezultati-2019}{\underline{Results}}.\\ - \texttt{C++}} - - \entry - {2018 -- 2019} - {Python development} - {\href{https://www.avl.com/}{AVL List GmbH}} - {Mixed software testing (GUI and unit). Design and implementation of a - generic testing tool that reads a given project, recreates it and - compares it with the original. Prototyping, creating an OOP model that - reflects the project structure, using software's API manipulator - functions to simulate a user behavior, error handling, result - analysis.\\ - \texttt{Python} - \slashsep\texttt{OOP} - \slashsep\texttt{Git} - \slashsep\texttt{Jira} - \slashsep\texttt{Confluence}} - - \entry - {2017 -- 2018} - {Software testing} - {\href{https://www.avl.com/}{AVL List GmbH}} - {Automating unit tests with - \href{https://www.eggplantsoftware.com/}{\underline{Eggplant}} scripts. - Test running meta-framework, logging system, model creator utility, - automated result reporting (CSV log parser), testing work flow, weekly - progress reports, meetings, software prototyping, etc.\\ - \texttt{Eggplant} - \slashsep\texttt{VCS} - \slashsep\texttt{Jira} - \slashsep\texttt{Confluence}} - - \entry - {2015\\\footnotesize{part-time}} - {Documentation maintenance} - {\href{https://www.avl.com/}{AVL List GmbH}} - {My first work experience. - Writing and revising existing documentation for the company's GUI - software AVL Boost and AVL Fire.\\ - \texttt{Microsoft Word} - \slashsep\texttt{Teamwork} - \slashsep\texttt{English}} -\end{entrylist} - -\cvsect{Education} -\begin{entrylist} - \entry - {2014 -- 2018} - {Grammar school} - {\href{https://www.druga.si/}{II. gimnazija Maribor}} - {After primary school I spent 4 years at II. gimnazija Maribor. I built my - first desktop computer from parts and set up a hackintosh system. I was - a member of many school societies which taught me time management.} - - \entry - {2018 -- 2022} - {Undergraduate studies} - {\href{https://feri.um.si/}{University of Maribor}} - {My interest in computers had led me to continue my academic journey at - Faculty of Electrical Engineering and Computer Science at University of - Maribor. I chose a study program called Computer Science and - Information Technologies which is centered around software engineering - and programming. I finished the studies in 2022 with a Bachelor's - degree.} - - \entry - {8. 9. 2022\\} - {Graduated with a bachelor's degree} - {\href{https://cs.feri.um.si/}{University of Maribor}} - {Finished undergraduate studies at University of Maribor with a bachelor's - thesis titled \href{https://dk.um.si/IzpisGradiva.php?id=82587&lang=eng}{\textit{\underline{>>On-board data capture and compression on TRISAT-R nanosatellite<<}}}. About a year later an \href{https://www.esa.int/ESA_Multimedia/Images/2023/11/Earth_through_a_2-mm_lens}{\underline{image}} of the Earth was successfully captured and transmitted from the satellite.} - - \entry - {2022 -- Present} - {Postgraduate studies} - {\href{https://feri.um.si/}{University of Maribor}} - {Continuing studies in the same field, I chose a study module focused on - artificial intelligence. This is where I study currently in pursuit of - a Master's degree which is a part of my current work on the SARA - project.} -\end{entrylist} - -\vfill -\begin{minipage}[t]{0.33\textwidth} - \vspace{-\baselineskip} - \cvsect{\faWrench\enspace Other skills}\\ - Apart from programming I also have intermediate knowledge of creative - software such as Adobe's Photoshop, Davinci Resolve, Dxo PhotoLab. I am an - amateur photographer, can touch type and an avid neovim user. I have some - experience with reverse-engineering and beginner CTF challenges. -\end{minipage} -\hfill -\begin{minipage}[t]{0.36\textwidth} - \vspace{-\baselineskip} - \cvsect{\faStar\enspace Hobbies}\\ - In my limited free time I like to tinker with microelectronics and tackle - random DIY projects like setting up a Raspberry Pi based home entertainment - system. I like photography, HiFi audio, reading, open source software and - philosophy. In case of an emergency I also help with the local firefighter - team. I always wanted to get better at 3D printing and chess. -\end{minipage} -\hfill -\begin{minipage}[t]{0.16\textwidth} - \vspace{-\baselineskip} - \cvsect{\faMicrophone\enspace Languages}\\ - \textbf{Slovenian} - native\\ - \textbf{English} - fluent -\end{minipage} - - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\newpage -\textbf{\huge{Climbing}}\\ -\rule{\textwidth}{0.4pt} - - -\begin{center} - \bubbles{ - 3/Instructing beginners, - 5/Routesetting, - 3/Coaching, - 2/Working with children, - 5/Training - } -\end{center} - -\cvsect{Experience} -\begin{entrylist} - \entry - {2024 - Present\\} - {Commercial routesetting} - {\href{https://pcsb.si/}{PCSB}, \href{https://klajmber.si/}{Klajmber}} - {Introductory and intermediate experience at setting, leading and - organization (chief role), setting extremes. One of my \href{https://www.instagram.com/reel/C5VWiTDN_-r/}{\underline{boulders}}.\\ - \texttt{Bouldering} - \slashsep\texttt{Comp-style} - \slashsep\texttt{Creativity} - \slashsep\texttt{Safety} - \slashsep\texttt{Movement}} - - \entry - {2022 - Present\\} - {Coaching} - {\href{https://alphut.net/}{AKSB}} - {Training a group of teen climbers three times per week at - \href{https://pcsb.si/}{\underline{Plezalni center Slovenska - Bistrica}}.\\ - \texttt{Routesetting} - \slashsep\texttt{Exercise} - \slashsep\texttt{Health} - \slashsep\texttt{Pedagogy}} - - \entry - {2021 - Present\\} - {Trips} - {Around the world} - {Climbing trips became a core component of my climbing, enabling new - experiences in unique environments, meeting new people, aspiring to - reach new goals, getting inspired for routesetting, etc. My first was - Briançon in 2021, after that many followed, including returning visits - to Prilep, Fontainebleau, Magic Wood, Paklenica, Maltatal, Oltre - Finale, Arco, \dots} - - \entry - {4. 4. 2024\\} - {First 8a route} - {Kotečnik} - {I felt it was time to try the route (Guernica) again after getting injured - on it the previous summer. I managed to complete it with relative ease, - excited for more `difficult` rock climbing.} - - \entry - {Summer 2023\\} - {Outdoor camps} - {\href{https://alphut.net/}{AKSB}, \href{https://desclimbing.com/}{DEŠ}} - {Hosted two rock climbing summer camps for children. Three days in Kotečnik - and another 5 days in Osp.\\ - \texttt{Lead climbing} - \slashsep\texttt{Safety} - \slashsep\texttt{Entertainment} - \slashsep\texttt{Camping} - \slashsep\texttt{Pedagogy}} - - \entry - {30. 4. 2023\\} - {Two 7c boulders} - {Prilep} - {I experimented with semi-planned specific training for the first time. It - paid off. The week before the trip to Prilep I ascended my first 7c in - Lukanja, followed by another during the trip.} - - \entry - {5. 8. 2022\\} - {First 7c route} - {Boč} - {A proud moment, supported by newly made friends.} - - \entry - {11. 4. 2022\\} - {Independent sport climber} - {\href{https://pk6b.si/}{PK6B}} - {I briefly joined a club in Ptuj, where I fell in love with the spray wall - and more intimate ways of training compared to a commercial gym. Under - this club I became recognized as an independent sport climber by KŠP. - The same day as passing the ŠP exams I climbed my first and second 7b - route.} - - \entry - {11. 4. 2021\\} - {First 7a route} - {Buncove skale} - {After about a year of climbing and 2 (nearly 6 month in total) lock-downs - due to Covid-19, I manged to climb a vertical bouldery route called - Yosemite at the local crag. This represented a mental shift, when I - realized the sport might evolve into something more than just a hobby.} - - \entry - {January 2020\\} - {Started climbing} - {\href{https://www.klajmber.si/}{Klajmber}} - {I wanted to try something new with a friend. We both quickly became - obsessed with the sport, chasing rapid improvement, new techniques, - harder climbs, all while having a great time.} -\end{entrylist} - -\cvsect{Education} -\begin{entrylist} - \entry - {10. 4. 2023\\} - {Became a climbing coach} - {\href{https://ksp.pzs.si/}{KŠP}} - {Finished training for VŠP, acquiring theoretical and practical knowledge - of teaching movement, training, physical exercise, basics of medicine - and anatomy, sport psychology, pedagogy, history of climbing, ethics, - rope maneuvers, etc.} - - \entry - {4. 9. 2023\\} - {Attended routesetting workshop} - {\href{https://ksp.pzs.si/}{KŠP}} - {Finished a 3-day routesetting workshop about commercial setting for indoor - bouldering.} -\end{entrylist} - -\end{document} diff --git a/urbanprah_cv.typ b/urbanprah_cv.typ new file mode 100644 index 0000000..1657ba8 --- /dev/null +++ b/urbanprah_cv.typ @@ -0,0 +1,351 @@ +#import "template.typ": CV, job, iconlink, field, experience, info, skillbar, skillbubble, smartlink, fa + +#let URLS = ( + gsm: "tel:+38640521816", + email: "mailto:urban.prah@gmail.com", + website: "https://urbanprah.xyz", + flapper: "https://flapperclimbing.com", + kanjonfest: "https://www.instagram.com/kanjonfest/?hl=en", + leis: "https://www.leis.um.si", + feri: "https://feri.um.si/en", + skylabs: "https://www.skylabs.si", + feri_cs: "https://cs.feri.um.si", + pcsb: "https://pcsb.si", + sara: "https://www.skylabs.si/sara", + urv: "https://www.urv.cat/en", + aksb: "https://alphut.net", + des: "https://desclimbing.com", + pk6b: "https://pk6b.si", + klajmber: "https://klajmber.si", + dgm: "https://www.druga.si", + avl: "https://www.avl.com", + ksp: "https://ksp.pzs.si", + bachelor: "https://dk.um.si/IzpisGradiva.php?id=82587&lang=eng", + trisat: "https://trisat.um.si/trisat-r.html", + trisat_artice: "https://feri.um.si/novice/trisat-r-majhen-po-tehnologiji-in-velik-po-inovativnosti", + esa_article: "https://www.esa.int/ESA_Multimedia/Images/2023/11/Earth_through_a_2-mm_lens", + blockchain_article: "https://feri.um.si/novice/znani-zmagovalci-tretje-feri-jesenske-sole-razvoja-blockchain-aplikacij-in-decentraliziranih-resitev", + upm_results: "https://tekmovanja.acm.si/?q=rezultati-2019", + upm: "https://tekmovanja.acm.si/?q=upm", + boulder_video: "https://www.instagram.com/reel/C5VWiTDN_-r/", + "8a": "https://www.8a.nu/user/urban-prah", + mooc: "https://en.wikipedia.org/wiki/Massive_open_online_course", + eggplant: "https://www.eggplantsoftware.com", +) + +#CV( + author: "Urban Prah", + active_jobs: ( + job( + "Embedded Software Developer", + smartlink(URLS.at("leis"), "Laboratory of Electronic and Information systems, University of Maribor"), + ), + // job("Routesetter and Coach", smartlink(URLS.at("pcsb"), "Plezalni center Slovenska Bistrica")), + ), + links: ( + iconlink("", "Poljčane"), + iconlink("", smartlink(URLS.at("feri"), "FERI")), + iconlink("", smartlink(URLS.at("gsm"), "+386 40 521 816")), + iconlink("", smartlink(URLS.at("email"), "urban.prah@gmail.com")), + iconlink("", smartlink(URLS.at("website"), "urbanprah.xyz")), + iconlink("", smartlink(URLS.at("8a"), "8a.nu")), + // iconlink("", smartlink("", "git.urbanprah.xyz")), + // iconlink("", smartlink("", "blog.urbanprah.xyz")), + ), + about: "Master’s degree candidate at the University of Maribor with a strong focus on precision, organization, and methodical problem-solving. Committed to clean, efficient, and modular work, with a preference for minimalism in both programming and broader workflows. Comfortable in collaborative environments and often take initiative in leadership roles when opportunities arise. Outside of academics, actively involved in sport climbing—initially as a personal pursuit, now expanded to include coaching and routesetting.", + skills: ( + skillbar("C/C++", 80%), + skillbar("Python", 90%), + skillbar("Linux", 95%), + skillbar("Docker", 70%), + skillbar("FreeRTOS", 60%), + skillbar("ROS 2", 45%), + skillbar("Yocto", 30%), + skillbar("Java", 40%), + skillbar("AI", 60%), + ), + fields: ( + field( + "Software development", + experiences: ( + experience( + "2023 - Present", + "Embedded development - " + smartlink(URLS.at("sara"), "SARA"), + smartlink(URLS.at("skylabs"), "Skylabs d.o.o"), + "R&D for an unmanned arachnid-shaped space vehicle based on ROS2. Developing the software responsible for remote control and autonomous locomotion. Work includes simulation, system architecture design, RISC-V embedded firmware implementation, reinforcement learning with PPO, etc.", + skills: ( + "ROS2", + "Yocto", + "IsaacSim", + "IsaacLab", + "PPO", + "RL", + "pinocciho", + "Inverse kinematics", + "PID", + "Gazebo sim", + "RISC-V", + "Python", + "C++", + ), + ), + experience( + "2021 - 2022", + "Embedded development - " + smartlink(URLS.at("trisat"), "TRISAT-R"), + smartlink(URLS.at("leis"), "LEIS"), + "Writing and testing firmware for the ADCS and OBC subsystems. Processing on-board sensor data (gyroscopes, sun sensors, magnetometer, GPS) to perform satellite detumbling and reorientation using its magentorquer actuators. Implementing image capture, logging and task scheduling functionality. " + + smartlink( + URLS.at("trisat_artice"), + "Article", + ) + + ".", + skills: ( + "FreeRTOS", + "C", + "Python", + "CAN", + "UART", + "SPI", + ), + ), + experience( + "2020 - 2021", + "Java development", + "IntechCORE GmbH", + "Remote work during the pandemic. Project maintenance and refactoring, java-like programming language development. Language self-testing and unit testing.", + skills: ( + "ANTLR", + "Java", + "Testing", + "Visitor pattern", + ), + ), + experience( + "17. 9. - 15. 10. 2019", + tag: "competition", + "Block chain summer school winner", + "FERI", + "Developed a practical solution to a problem of implementing blockchain into a hypothetical " + + smartlink(URLS.at("mooc"), "MOOC") + + " service. Product was a multi-platform mobile app that used blockchain tokens to provide an incentive in form of rewards for users to use the company's online services. " + + smartlink( + URLS.at("blockchain_article"), + "Article", + ) + + ".", + skills: ( + "Blockchain", + "MySQL", + "NodeJS", + "REST", + "React native", + ), + ), + experience( + "2019", + tag: "competition", + smartlink(URLS.at("upm"), "</upm"), + "ACM", + "Finished 21st in the national programming marathon competition with a team two schoolmates. " + + smartlink(URLS.at("upm_results"), "Results") + + ".", + skills: ("C++",), + ), + experience( + "2018 - 2019", + "Python development", + smartlink(URLS.at("avl"), "AVL List GmbH"), + "Mixed software testing (GUI and unit). Design and implementation of a generic testing tool that reads a given project, recreates it and compares it with the original. Prototyping, creating an OOP model that reflects the project structure, using software's API manipulator functions to simulate a user behavior, error handling, result analysis.", + skills: ( + "Python", + "OOP", + "Jira", + "Confluence", + ), + ), + experience( + "2017 - 2018", + "Software testing", + smartlink(URLS.at("avl"), "AVL List GmbH"), + "Automating unit tests with " + + smartlink(URLS.at("eggplant"), "Eggplant") + + " scripts. Test running meta-framework, logging system, model creator utility, automated result reporting (CSV log parser), testing work flow, weekly progress reports, meetings, software prototyping, etc.", + skills: ( + "Eggplant", + "Jira", + "Confluence", + ), + ), + experience( + "2015", + tag: "part-time", + "Documentation maintenance", + smartlink(URLS.at("avl"), "AVL List GmbH"), + "My first work experience. Writing and revising existing documentation for the company's GUI software AVL Boost and AVL Fire.", + skills: ( + "Microsoft Word", + ), + ), + ), + education: ( + experience( + "2022 - Present", + "Postgraduate studies", + "University of Maribor", + "Continuing studies in the same field, I chose a study module focused on artificial intelligence. This is where I study currently in pursuit of a Master's degree which is a part of my current work on the SARA project, regarding autonomous locomotion based on reinforcement learning.", + ), + experience( + "H1 2025", + "Erazmus+ exchange", + smartlink(URLS.at("urv"), "Universitat Rovira i Virgili"), + "Attended a 6 month exchange in Tarragona, Spain where I worked on my thesis and completed a Spanish lesson. I met new people and worked remotely.", + ), + experience( + "8. 9. 2022", + "Graduated with a bachelor's degree", + smartlink(URLS.at("feri_cs"), "University of Maribor"), + "Finished undergraduate studies at University of Maribor with a bachelor's thesis titled " + + smartlink( + URLS.at("bachelor"), + "On-board data capture and compression on TRISAT-R nanosatellite", + ) + + ". About a year later an " + + smartlink(URLS.at("esa_article"), "image") + + " of the Earth was successfully captured and transmitted from the satellite.", + ), + experience( + "2018 - 2022", + "Undergraduate studies", + smartlink(URLS.at("feri_cs"), "University of Maribor"), + "Took classes in Computer Science and Information Technologies.", + ), + experience( + "2014 - 2018", + "Grammar school", + smartlink(URLS.at("dgm"), "II. gimnazija Maribor"), + "Attended II. gimnazija Maribor, built a desktop computer from parts and set up a hackintosh system. I was very busy, participating in many extracurricular activities.", + ), + ), + other: ( + info( + fa("") + h(0.5em) + "Languages", + stack( + dir: ttb, + spacing: 0.5em, + [#strong("Slovenian") - native], + [#strong("English") - C1], + [#strong("Spanish") - A2], + ), + ), + info( + fa("") + h(0.5em) + "Other skills", + "Apart from programming I also have intermediate knowledge of creative software for photo and video editing. I am an amateur photographer, can touch type and am an avid Neovim user with an eternal chase for a perfect workflow. Currently using NixOS to set-up a secure interconnected distributed system of personal computers and a VPS for a unified user experience. I have some experience with reverse-engineering and beginner CTF challenges.", + ), + info( + fa("") + h(0.5em) + "Hobbies", + "In my limited free time I like to tinker with microelectronics and tackle random DIY projects like setting up a Raspberry Pi based home entertainment system, a custom smart watch. I like photography, HiFi audio, reading, open source software and philosophy. I used to also help with the local firefighter team. I always wanted to get better at 3D printing and chess.", + ), + ), + ), + field( + "Climbing", + bubbles: ( + skillbubble("Routesetting", 90%), + skillbubble("Instructing beginners", 50%), + skillbubble("Coaching", 70%), + skillbubble("Working with children", 30%), + skillbubble("Outdoors", 100%), + ), + experiences: ( + experience( + "August 2025", + "Volunteered at " + smartlink(URLS.at("kanjonfest"), "kanjonfest"), + "Jurgovo", + "Helped building an artificial wall for a climbing festival organized by " + + smartlink(URLS.at("flapper"), "Flapper climbing") + + ".", + ), + experience( + "2024 - 2025", + "Commercial routesetting", + smartlink(URLS.at("pcsb"), "PCSB") + ", " + smartlink(URLS.at("klajmber"), "Klajmber"), + "Introductory and intermediate experience at setting, leading and organization (chief role), setting extremes. " + + smartlink(URLS.at("boulder_video"), "One of my boulders") + + ".", + skills: ("Bouldering", "Comp-style", "Creativity", "Safety", "Movement"), + ), + experience( + "2022 - 2024", + "Coaching", + smartlink(URLS.at("aksb"), "AKSB"), + "Training a group of teen climbers three times per week at " + smartlink(URLS.at("pcsb"), "PCSB") + ".", + skills: ("Routesetting", "Exercise", "Health", "Pedagogy"), + ), + experience( + "2021 - Present", + "Trips", + "Around the world", + "Climbing trips became a core component of my climbing, enabling new experiences in unique environments, meeting new people, aspiring to reach new goals, getting inspired for routesetting, etc. My first was Briançon in 2021, after that many followed, including returning visits to Prilep, Fontainebleau, Magic Wood, Paklenica, Maltatal, Oltre Finale, Arco, Siurana, Margalef, ...", + ), + experience( + "4. 4. 2024", + "First 8a route", + "Kotečnik", + "After getting injured on the route I managed to finish it a year later, excited for more 'difficult' rock climbing.", + ), + experience( + "Summer 2023", + "Outdoor climbing camps", + smartlink(URLS.at("des"), "DEŠ") + ", " + smartlink(URLS.at("aksb"), "AKSB"), + "Hosted two rock climbing summer camps for children. Three days in Kotečnik and another 5 days in Osp.", + skills: ("Safety", "Lead climbing", "Entertainment", "Camping", "Pedagogy"), + ), + experience( + "30. 4. 2023", + "Hardest boulder grade", + "Prilep", + "I experimented with semi-planned specific training for the first time. It paid off. The week before the trip to Prilep I ascended my first 7c in Lukanja, followed by another during the trip.", + ), + experience( + "11. 8. 2022", + "First 7c route", + "Boč", + "A proud moment, supported by newly made friends.", + ), + experience( + "11. 4. 2022", + "Independent sport climber", + smartlink(URLS.at("pk6b"), "PK6B Ptuj"), + "I briefly joined a club in Ptuj, where I fell in love with the spray wall. During my membership I became recognized as an independent sport climber by KŠP, the same day I climbed my first and second 7b route.", + ), + experience( + "11. 4. 2021", + "First 7a route", + "Buncove skale", + "After about a year of climbing and 2 lock-downs due to Covid-19, I manged to climb a short technical route called Yosemite at the local crag. This represented a mental shift, when I realized the sport might evolve into something more than just a hobby.", + ), + experience( + "January 2020", + "Started climbing", + smartlink(URLS.at("klajmber"), "Klajmber"), + "I wanted to try something new with a friend. We both quickly became obsessed with the sport, chasing rapid improvement, new techniques, harder climbs, all while having a great time.", + ), + ), + education: ( + experience( + "4. 9. 2023", + tag: "workshop", + "National routesetting workshop", + smartlink(URLS.at("ksp"), "KŠP"), + "Finished a 3-day routesetting workshop about commercial setting for indoor bouldering.", + ), + experience( + "10. 4. 2023", + "Certified climbing coach", + smartlink(URLS.at("ksp"), "KŠP"), + "Finished training for VŠP, acquiring theoretical and practical knowledge of teaching movement, training, physical exercise, basics of medicine and anatomy, sport psychology, pedagogy, history of climbing, ethics, rope maneuvers, etc.", + ), + ), + ), + ), +) |
