1
0
Fork 0
nix-typst-resume/resumes/full/projects/lib.typ

419 lines
11 KiB
Typst

// SPDX-FileCopyrightText: 2025 Ethan Reece <contact@ethanreece.com>
//
// SPDX-License-Identifier: MIT
#import "@preview/linguify:0.4.2": linguify
#import "../../../base/lib.typ": item-heading
#import "../../../base/months/lib.typ": (
April, August, December, January, July, June, March, May, Present,
)
#import "../categories/lib.typ": (
Course_Group_Project, Course_Group_Projects, Course_Project, Course_Projects,
Productivity, Research_Lab_Project, Robotics_Team_Project, Senior_Project,
)
#import "../education/lib.typ": cvcs-title, utd-title
#import "../experience/lib.typ": syssec-name, team1790-name
#import "../skills/lib.typ": (
C, CSS, C_Sharp_WPF, Cloudflare, Debian, Docker, Docker_Compose, Dokku,
ExpressJS, GDB, GNU_Make, Git, GitHub, GitLab, Guix, Hetzner,
JavaScript_ExpressJS, LaTeX, LaTeX_TikZ, Linux, MIPS, MongoDB, MySQL, Nix,
NixFlakes_devenv, NixFlakes_flake-parts, NixOS, Nix_Flakes, PHP, Pijul,
PostgreSQL, Proxmox, Python, Python_pwntools, React_SigmaJS, Rust,
Rust_Tokio_Serde, SOPS, TCP, Tailwind_CSS, Terraform, TypeScript, Typst,
Valgrind, Verilog, flake-parts, x86,
)
#let lang-data = toml("lang.toml")
#let l(content) = linguify(content, from: lang-data)
#let armcfi-category = Research_Lab_Project
#let armcfi-location = syssec-name
#let armcfi-name = l("armcfi")
#let armcfi-skills = (
GNU_Make,
Python,
NixFlakes_flake-parts,
Valgrind,
Linux,
GitLab,
)
#let armcfi-timeframe = [#July 2025 -- #Present]
#let armcfi(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: armcfi-name,
subtitle: armcfi-category,
timeframe: armcfi-timeframe,
location: armcfi-location,
skills: armcfi-skills,
above: item-heading-above,
below: item-heading-below,
)
#let cs2340-mips-category = Course_Project
#let cs2340-mips-location = utd-title
#let cs2340-mips-name = l("cs2340-mips")
#let cs2340-mips-skills = (MIPS,)
#let cs2340-mips-timeframe = [#January -- #May 2023]
#let cs2340-mips(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: cs2340-mips-name,
subtitle: cs2340-mips-category,
timeframe: cs2340-mips-timeframe,
skills: cs2340-mips-skills,
location: cs2340-mips-location,
above: item-heading-above,
below: item-heading-below,
)
#let cs3377-linux-category = Course_Projects
#let cs3377-linux-location = utd-title
#let cs3377-linux-name = l("cs3377-linux")
#let cs3377-linux-skills = (C, Linux)
#let cs3377-linux-timeframe = [#August -- #December 2023]
#let cs3377-linux(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: cs3377-linux-name,
subtitle: cs3377-linux-category,
timeframe: cs3377-linux-timeframe,
skills: cs3377-linux-skills,
location: cs3377-linux-location,
above: item-heading-above,
below: item-heading-below,
)
#let cs4341-digitallogic-category = Course_Group_Projects
#let cs4341-digitallogic-location = utd-title
#let cs4341-digitallogic-name = l("cs4341-digitallogic")
#let cs4341-digitallogic-skills = (Verilog, Python)
#let cs4341-digitallogic-timeframe = [#January -- #May 2024]
#let cs4341-digitallogic(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: cs4341-digitallogic-name,
subtitle: cs4341-digitallogic-category,
timeframe: cs4341-digitallogic-timeframe,
skills: cs4341-digitallogic-skills,
location: cs4341-digitallogic-location,
above: item-heading-above,
below: item-heading-below,
)
#let cs4347-database-category = Course_Project
#let cs4347-database-location = utd-title
#let cs4347-database-name = l("cs4347-database")
#let cs4347-database-skills = (
PHP,
MySQL,
Tailwind_CSS,
NixFlakes_devenv,
LaTeX_TikZ,
Guix,
)
#let cs4347-database-timeframe = [#August -- #December 2024]
#let cs4347-database(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: cs4347-database-name,
subtitle: cs4347-database-category,
timeframe: cs4347-database-timeframe,
skills: cs4347-database-skills,
location: cs4347-database-location,
above: item-heading-above,
below: item-heading-below,
)
#let cs4348-computer-category = Course_Project
#let cs4348-computer-location = utd-title
#let cs4348-computer-name = l("cs4348-computer")
#let cs4348-computer-skills = (C, Linux, Pijul)
#let cs4348-computer-timeframe = [#January -- #May 2024]
#let cs4348-computer(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: cs4348-computer-name,
subtitle: cs4348-computer-category,
timeframe: cs4348-computer-timeframe,
skills: cs4348-computer-skills,
location: cs4348-computer-location,
above: item-heading-above,
below: item-heading-below,
)
#let cs4348-mutex-category = Course_Project
#let cs4348-mutex-location = utd-title
#let cs4348-mutex-name = l("cs4348-mutex")
#let cs4348-mutex-skills = (C, Linux)
#let cs4348-mutex-timeframe = [#January -- #May 2024]
#let cs4348-mutex(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: cs4348-mutex-name,
subtitle: cs4348-mutex-category,
timeframe: cs4348-mutex-timeframe,
skills: cs4348-mutex-skills,
location: cs4348-mutex-location,
above: item-heading-above,
below: item-heading-below,
)
#let cs4348-scheduling-category = Course_Project
#let cs4348-scheduling-location = utd-title
#let cs4348-scheduling-name = l("cs4348-scheduling")
#let cs4348-scheduling-skills = (C, Linux)
#let cs4348-scheduling-timeframe = [#January -- #May 2024]
#let cs4348-scheduling(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: cs4348-scheduling-name,
subtitle: cs4348-scheduling-category,
timeframe: cs4348-scheduling-timeframe,
skills: cs4348-scheduling-skills,
location: cs4348-scheduling-location,
above: item-heading-above,
below: item-heading-below,
)
#let cs4459-hacking-category = Course_Projects
#let cs4459-hacking-location = utd-title
#let cs4459-hacking-name = l("cs4459-hacking")
#let cs4459-hacking-skills = (Python_pwntools, x86, GDB, Linux, Git, C)
#let cs4459-hacking-timeframe = [#January -- #May 2025]
#let cs4459-hacking(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: cs4459-hacking-name,
subtitle: cs4459-hacking-category,
timeframe: cs4459-hacking-timeframe,
skills: cs4459-hacking-skills,
location: cs4459-hacking-location,
above: item-heading-above,
below: item-heading-below,
)
#let cs6378-database-category = Course_Group_Project
#let cs6378-database-location = utd-title
#let cs6378-database-name = l("database")
#let cs6378-database-name-cs6378 = l("cs6378-database")
#let cs6378-database-skills = (
Rust_Tokio_Serde,
Nix_Flakes,
TCP,
Linux,
GitHub,
LaTeX,
)
#let cs6378-database-timeframe = [#April -- #May 2025]
#let cs6378-database(
item-heading-above: 0em,
item-heading-below: 0em,
course: true,
) = item-heading(
title: if course {
cs6378-database-name-cs6378
} else {
cs6378-database-name
},
subtitle: cs6378-database-category,
timeframe: cs6378-database-timeframe,
skills: cs6378-database-skills,
location: cs6378-database-location,
above: item-heading-above,
below: item-heading-below,
)
#let cs6378-ordering-category = Course_Projects
#let cs6378-ordering-location = utd-title
#let cs6378-ordering-name = l("cs6378-ordering")
#let cs6378-ordering-skills = (
Rust,
Nix_Flakes,
TCP,
LaTeX_TikZ,
Guix,
Linux,
Git,
)
#let cs6378-ordering-timeframe = [#January -- #April 2025]
#let cs6378-ordering(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: cs6378-ordering-name,
subtitle: cs6378-ordering-category,
timeframe: cs6378-ordering-timeframe,
skills: cs6378-ordering-skills,
location: cs6378-ordering-location,
above: item-heading-above,
below: item-heading-below,
)
#let scoretracker-category = Senior_Project
#let scoretracker-location = cvcs-title
#let scoretracker-name = l("scoretracker")
#let scoretracker-skills = (
JavaScript_ExpressJS,
CSS,
PostgreSQL,
GitLab,
Dokku,
)
#let scoretracker-timeframe = [#May 2021 -- #March 2022]
#let scoretracker(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: scoretracker-name,
subtitle: scoretracker-category,
timeframe: scoretracker-timeframe,
skills: scoretracker-skills,
location: scoretracker-location,
above: item-heading-above,
below: item-heading-below,
)
#let provviz-category = Research_Lab_Project
#let provviz-location = syssec-name
#let provviz-name = l("provviz")
#let provviz-skills = (
TypeScript,
React_SigmaJS,
Tailwind_CSS,
ExpressJS,
Docker_Compose,
GitLab,
)
#let provviz-timeframe = [#June 2025 -- #Present]
#let provviz(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: provviz-name,
subtitle: provviz-category,
timeframe: provviz-timeframe,
location: provviz-location,
skills: provviz-skills,
above: item-heading-above,
below: item-heading-below,
)
#let resume-category = Productivity
#let resume-name = l("resume")
#let resume-skills = (Typst, NixFlakes_flake-parts, Linux, Git)
#let resume-timeframe = [#August 2024 -- #Present]
#let resume(item-heading-above: 0em, item-heading-below: 0em) = item-heading(
title: resume-name,
subtitle: resume-category,
timeframe: resume-timeframe,
skills: resume-skills,
above: item-heading-above,
below: item-heading-below,
)
#let server-category = Productivity
#let server-name = l("server")
#let server-skills = (
Linux,
Docker,
NixOS,
Terraform,
Git,
Proxmox,
Hetzner,
Cloudflare,
SOPS,
)
#let server-timeframe = [2020 -- #Present]
#let server(item-heading-above: 0em, item-heading-below: 0em) = item-heading(
title: server-name,
subtitle: server-category,
timeframe: server-timeframe,
skills: server-skills,
above: item-heading-above,
below: item-heading-below,
)
#let syscfg-category = Productivity
#let syscfg-name = l("syscfg")
#let syscfg-skills = (
NixFlakes_flake-parts,
Linux,
Terraform,
SOPS,
Git,
)
#let syscfg-timeframe = [#July 2024 -- #Present]
#let syscfg(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: syscfg-name,
subtitle: syscfg-category,
timeframe: syscfg-timeframe,
skills: syscfg-skills,
above: item-heading-above,
below: item-heading-below,
)
#let workspace-category = Productivity
#let workspace-name = l("workspace")
#let workspace-skills = (NixFlakes_flake-parts, Linux, Git)
#let workspace-timeframe = [#July 2025 -- #Present]
#let workspace(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: workspace-name,
subtitle: workspace-category,
timeframe: workspace-timeframe,
skills: workspace-skills,
above: item-heading-above,
below: item-heading-below,
)
#let zipversioncontrol-category = Robotics_Team_Project
#let zipversioncontrol-location = team1790-name
#let zipversioncontrol-name = l("zipversioncontrol")
#let zipversioncontrol-skills = (C_Sharp_WPF, Python, Git)
#let zipversioncontrol-timeframe = [#June 2017 -- #April 2019]
#let zipversioncontrol(
item-heading-above: 0em,
item-heading-below: 0em,
) = item-heading(
title: zipversioncontrol-name,
subtitle: zipversioncontrol-category,
timeframe: zipversioncontrol-timeframe,
skills: zipversioncontrol-skills,
location: zipversioncontrol-location,
above: item-heading-above,
below: item-heading-below,
)