summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2024-01-17 18:49:04 -0600
committerToby Vincent <tobyv@tobyvin.dev>2024-01-17 18:49:04 -0600
commit9761aad892e2c750297a24ac7c8fc02855356780 (patch)
tree12d74d8700743e34aa02d3056447634f61044120
parent9f55a5ca1d9a25f6ead751e33ca9360712a9c268 (diff)
feat(wip): more work on typst migration
-rw-r--r--icons/envelope-regular.svg1
-rw-r--r--icons/github.svg1
-rw-r--r--icons/phone-solid.svg1
-rw-r--r--moderncv.typ102
-rw-r--r--resume.typ302
-rw-r--r--typstfmt.toml4
6 files changed, 208 insertions, 203 deletions
diff --git a/icons/envelope-regular.svg b/icons/envelope-regular.svg
new file mode 100644
index 0000000..6dbdd7b
--- /dev/null
+++ b/icons/envelope-regular.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"/></svg> \ No newline at end of file
diff --git a/icons/github.svg b/icons/github.svg
new file mode 100644
index 0000000..40e8178
--- /dev/null
+++ b/icons/github.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> \ No newline at end of file
diff --git a/icons/phone-solid.svg b/icons/phone-solid.svg
new file mode 100644
index 0000000..a819a46
--- /dev/null
+++ b/icons/phone-solid.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z"/></svg> \ No newline at end of file
diff --git a/moderncv.typ b/moderncv.typ
new file mode 100644
index 0000000..001dc02
--- /dev/null
+++ b/moderncv.typ
@@ -0,0 +1,102 @@
+#let left_column_size = 15%
+#let grid_column_gutter = 10pt
+
+#let project(author: [], title: "", phone: "", email: "", github: "", color: navy, body) = {
+ set document(author: author, title: title)
+ set page(numbering: none)
+ set text(font: ("Latin Modern Sans", "Inria Sans"), lang: "en", fallback: true)
+ show math.equation: set text(weight: 400)
+
+ show heading.where(level: 1): element => [
+ #v(0em)
+ #box(
+ inset: (right: grid_column_gutter, bottom: 0.1em), rect(fill: color, width: left_column_size, height: 0.25em),
+ )
+ #text(element.body, fill: color, weight: 400)
+ ]
+
+ show heading.where(level: 2): element => [
+ #text(element.body + ",", size: 0.8em)
+ ]
+
+ show heading.where(level: 3): element => [
+ #text(element.body, size: 1em, weight: 400, style: "italic")
+ ]
+
+ show heading.where(level: 4): element => block[#text(element.body, size: 1em, weight: 400, fill: color)]
+
+ set list(marker: box(circle(radius: 0.2em, stroke: color), inset: (top: 0.15em)))
+
+ set enum(numbering: (n) => text(fill: color, [#n.]))
+
+ grid(
+ columns: (1fr, 1fr), box[
+ #text([#author], weight: 400, 2.5em)
+ #v(-1.2em)
+ #block(text(weight: 400, 1.5em, title, style: "italic", fill: gray))
+ ], align(
+ right + top,
+ )[
+ #set block(below: 0.5em)
+
+ #if github != "" {
+ align(top)[
+ #box(height: 1em, baseline: 20%)[#pad(right: 0.4em)[#image("icons/github.svg")]]
+ #link("https://github.com/" + github)[#github]
+ ]
+ }
+
+ #if phone != "" {
+ align(top)[
+ #box(height: 1em, baseline: 20%)[#pad(right: 0.4em)[#image("icons/phone-solid.svg")]]
+ #link("tel:" + phone)[#phone]
+ ]
+ }
+
+ #if email != "" {
+ align(
+ top,
+ )[
+ #box(height: 1em, baseline: 20%)[#pad(right: 0.4em)[#image("icons/envelope-regular.svg")]]
+ #link("mailto:" + email)
+ ]
+ }
+ ],
+ )
+
+ set par(justify: true, leading: 0.5em)
+
+ body
+}
+
+#let datebox(month: "", year: []) = box(
+ align(
+ center, stack(dir: ttb, spacing: 0.4em, text(size: 1em, [#year]), text(size: 0.75em, month)),
+ ),
+)
+
+#let daterange(start: (month: "", year: []), end: (month: "", year: [])) = box(
+ stack(
+ dir: ltr, spacing: 0.75em, datebox(month: start.at("month", default: ""), year: start.year), [--],
+ datebox(month: end.at("month", default: ""), year: end.year),
+ ),
+)
+
+#let cvgrid(..cells) = grid(
+ columns: (left_column_size, auto), row-gutter: 0em, column-gutter: grid_column_gutter, ..cells,
+)
+
+#let cvcol(content) = cvgrid([], content)
+
+#let cventry(
+ description, start: (month: "", year: ""), end: (month: "", year: ""), place: "",
+ role: [],
+) = cvgrid(align(center, daterange(start: start, end: end)), [
+ == #role
+ === #place
+], [], [
+ #v(0.5em)
+ #description
+])
+
+#let cvlanguage(language: [], description: [], certificate: []) = cvgrid(align(right, language), [#description #h(3em) #text(style: "italic", certificate)])
diff --git a/resume.typ b/resume.typ
index be8752f..3b90a48 100644
--- a/resume.typ
+++ b/resume.typ
@@ -1,212 +1,108 @@
-#let resume(body) = {
- set list(indent: 1em)
- show list: set text(size: 0.92em)
- show link: underline
- show link: set underline(offset: 3pt)
-
- set page(
- paper: "us-letter",
- margin: (x: 0.5in, y: 0.5in)
- )
-
- set text(
- size: 11pt,
- font: "New Computer Modern",
- )
+#import "moderncv.typ": *
- body
-}
-
-#let name_header(name) = {
- set text(size: 2.25em)
- [*#name*]
-}
-
-#let header(
- name: "Jake Ryan",
- phone: "123-456-7890",
- email: "jake@su.edu",
- linkedin: "linkedin.com/in/jake",
- site: "github.com/jake",
-) = {
- align(center,
- block[
- #name_header(name) \
- #phone |
- #link("mailto:" + email)[#email] |
- #link("https://" + linkedin)[#linkedin] |
- #link("https://" + site)[#site]
- ]
- )
- v(5pt)
-}
-
-#let resume_heading(txt) = {
- show heading: set text(size: 0.92em, weight: "regular")
-
- block[
- = #smallcaps(txt)
- #v(-4pt)
- #line(length: 100%, stroke: 1pt + black)
- ]
-}
-
-#let edu_item(
- name: "Sample University",
- degree: "B.S in Bullshit",
- location: "Foo, BA",
- date: "Aug. 1600 - May 1750"
-) = {
- set block(above: 0.7em, below: 1em)
- pad(left: 1em, right: 0.5em, grid(
- columns: (3fr, 1fr),
- align(left)[
- *#name* \
- _#degree _
- ],
- align(right)[
- #location \
- _#date _
- ]
- ))
-}
-
-#let exp_item(
- name: "Sample Workplace",
- role: "Worker",
- date: "June 1837 - May 1845",
- location: "Foo, BA",
- ..points
-) = {
- set block(above: 0.7em, below: 1em)
- pad(left: 1em, right: 0.5em, box[
- #grid(
- columns: (3fr, 1fr),
- align(left)[
- *#role* \
- _#name _
- ],
- align(right)[
- #date \
- _#location _
- ]
- )
- #list(..points)
- ])
-}
-
-#let project_item(
- name: "Example Project",
- skills: "Programming Language 1, Database3",
- date: "May 1234 - June 4321",
- ..points
-) = {
- set block(above: 0.7em, below: 1em)
- pad(left: 1em, right: 0.5em, box[
- *#name* | _#skills _ #h(1fr) #date
- #list(..points)
- ])
-}
-
-#let skill_item(
- category: "Skills",
- skills: "Balling, Yoga, Valorant",
-) = {
- set block(above: 0.7em)
- set text(size: 0.91em)
- pad(left: 1em, right: 0.5em, block[*#category*: #skills])
-}
-
-#show: resume
-
-#header(
- name: "Jake Ryan",
- phone: "123-456-7890",
- email: "jake@su.edu",
- linkedin: "linkedin.com/in/jake",
- site: "github.com/jake",
+#show: project.with(
+ author: "Toby Vincent", title: "Software Engineer", github: "tobyvin", phone: "217.617.3424",
+ email: "tobyv@tobyvin.dev",
)
-#resume_heading[Education]
-#edu_item(
- name: "Southwestern University",
- degree: "Bachelor of Arts in Computer Science, Minor in Business",
- location: "Georgetown, TX",
- date: "Aug. 2018 - May 2021"
-)
-#edu_item(
- name: "Blinn College",
- degree: "Associate's in Liberal Arts",
- location: "Bryan, TX",
- date: "Aug. 2014 - May 2018"
+= Education
+
+#cventry(
+ start: (year: 2018), end: (year: 2022), role: [Computer Science, B.S.], place: "Southern Illinois University, Edwardsville, Illinois",
+)[
+ - Nomination for the IPAC Senior Design Project Showcase
+ - Consecutive Dean's List Honoree
+]
+
+= Work Experience
+
+#cventry(
+ start: (year: 2021), end: (year: 2022), role: [Teaching Assistant], place: "Southern Illinois University, Edwardsville, Illinois",
+)[
+ - Developed and tested projects designed to evaluate students capability
+ - Developed flexible test harnesses to expedite project testing
+ - Held recitation sessions to help students understand and design projects
+]
+
+#cventry(
+ start: (year: 2013), end: (year: 2014), role: [IT Technician], place: "Craig Industries, Inc., Quincy, Illinois",
+)[
+ - Worked with the IT Director to solve crises involving production systems
+ - Deployed and operated server and network infrastructure
+ - Identified and streamlined operational inefficiencies
+]
+
+#cventry(
+ start: (year: 2015), end: (year: 2016), role: [Customer Consultant], place: "Eagle Technologies Inc., Quincy, Illinois",
+)[
+ - Assessed customer's needs to provide best fit solutions
+ - Triaged hardware and software issues
+]
+
+#cventry(
+ start: (year: 2015), end: (year: 2015), role: [Geek Squad], place: "Best Buy Co. Inc., Quincy, Illinois",
+)[
+ - Repaired both hardware and software issues on a wide range of devices
+ - Coached clients in 1-on-1 sessions
+ - Assessed customer's needs to provide best fit solutions
+]
+
+= Side Projects
+
+#cventry(
+ start: (month: "December", year: 2099), end: (month: "", year: "Present"), role: [Quux Master], place: "MasterQuuxers.mars",
+ lorem(40),
)
-#resume_heading[Experience]
-#exp_item(
- role: "Undergraduate Research Assistant",
- name: "Texas A&M University",
- location: "College Station, TX",
- date: "June 2020 - Present",
- [Developed a REST API using FastAPI and PostgreSQL to store data from learning management systems],
- [Developed a full-stack web application using Flask, React, PostgreSQL and Docker to analyze GitHub data],
- [Explored ways to visualize GitHub collaboration in a classroom setting]
-)
-#exp_item(
- role: "Information Technology Support Specialist",
- name: "Southwestern University",
- location: "Georgetown, TX",
- date: "Sep. 2018 - Present",
- [Communicate with managers to set up campus computers used on campus],
- [Assess and troubleshoot computer problems brought by students, faculty and staff],
- [Maintain upkeep of computers, classroom equipment, and 200 printers across campus]
-)
-#exp_item(
- role: "Artificial Intelligence Research Assistant",
- name: "Southwestern University",
- location: "Georgetown, TX",
- date: "May 2019 - July 2019",
- [Explored methods to generate video game dungeons based off of #emph[The Legend of Zelda]],
- [Developed a game in Java to test the generated dungeons],
- [Contributed 50K+ lines of code to an established codebase via Git],
- [Conducted a human subject study to determine which video game dungeon generation technique is enjoyable],
- [Wrote an 8-page paper and gave multiple presentations on-campus],
- [Presented virtually to the World Conference on Computational Intelligence]
+#cventry(
+ start: (month: "March", year: 2098), end: (month: "August", year: 2099), role: [Full-bar frobnicator],
+ place: "M.O.O.N. Inc", lorem(40),
)
-#resume_heading("Projects")
-#project_item(
- name: "Gitlytics",
- skills: "Python, Flask, React, PostgreSQL, Docker",
- date: "June 2020 - Present",
- [Developed a full-stack web application using with Flask serving a REST API with React as the frontend],
- [Implemented GitHub OAuth to get data from user’s repositories],
- [Visualized GitHub data to show collaboration],
- [Used Celery and Redis for asynchronous tasks]
-)
-#project_item(
- name: "Simple Paintball",
- skills: "Spigot API, Java, Maven, TravisCI, Git",
- date: "May 2018 - May 2020",
- [Developed a Minecraft server plugin to entertain kids during free time for a previous job],
- [Published plugin to websites gaining 2K+ downloads and an average 4.5/5-star review],
- [Implemented continuous delivery using TravisCI to build the plugin upon new a release],
- [Collaborated with Minecraft server administrators to suggest features and get feedback about the plugin]
-)
+= Languages
-#resume_heading("Technical Skills")
-#skill_item(
- category: "Languages",
- skills: "Java, Python, C/C++, SQL (Postgres), JavaScript, HTML/CSS, R"
-)
-#skill_item(
- category: "Frameworks",
- skills: "React, Node.js, Flask, JUnit, WordPress, Material-UI, FastAPI"
-)
-#skill_item(
- category: "Developer Tools",
- skills: "Git, Docker, TravisCI, Google Cloud Platform, VS Code, Visual Studio, PyCharm, IntelliJ, Eclipse"
-)
-#skill_item(
- category: "Libraries",
- skills: "pandas, NumPy, Matplotlib"
+#cvlanguage(language: [Martian], description: [Mother tongue])
+
+#cvlanguage(
+ language: [Klingon], description: [C64 level], certificate: [Earth Klingon Certificate -- Certificate in Advanced Klingon (CAK64)],
)
+
+#pagebreak()
+
+= Technical Skills
+
+#cvcol[
+ ==== Programming Languages
+
+ #grid(
+ columns: (1fr, 1fr, 1fr), row-gutter: 0.5em, [- Java], [- C],
+ [- C++], [- Python], [- Martian], [- English],
+ [- ChatGPT], [- Ancient Greek], [- Legalese],
+ )
+]
+
+#cvcol[
+ ==== Environments
+
+ - Earth (development and server management)
+ - Wind (development)
+ - Fire (development)
+]
+
+#cvcol[
+ ==== Misc
+
+ Various university-related and personal projects, some available on my GitHub profile.
+]
+
+= Other
+
+#cvcol[
+ - Best Pizza Cook Central Mars City 2091 Championship Winner
+ - Coffee Conossieur
+ - If You Are Reading This You Are Awesome
+]
+
+#v(1fr)
+
+#align(center)[_(Last updated: February 2102)_]
diff --git a/typstfmt.toml b/typstfmt.toml
new file mode 100644
index 0000000..dc9d807
--- /dev/null
+++ b/typstfmt.toml
@@ -0,0 +1,4 @@
+indent_space = 2
+max_line_length = 99
+experimental_args_breaking_consecutive = true
+line_wrap = true