Skip to content

Commit

Permalink
feat: update cv to be more concise, fix some styling stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
TomPridham committed Feb 6, 2025
1 parent ea95982 commit f14e77c
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 51 deletions.
20 changes: 8 additions & 12 deletions src/css/print.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,22 @@
display: none !important;
}

.job:nth-child(1) {
page-break-after: always;
border-bottom: none;
}

.job:nth-child(2n) {
padding-top: 8mm;
}

.job:nth-child(2n + 1) {
page-break-after: always;
border-bottom: none;
border-bottom: none !important;
}

#projects {
padding-top: 8mm;
}

.project:nth-child(2n) {
border-bottom: none;
}

.project:last-child {
padding-top: 8mm;
.project p,
.education p {
margin: 0;
}

.p-row {
Expand All @@ -52,4 +44,8 @@
column-count: 2;
column-width: 20px;
}

a {
text-decoration: none;
}
}
3 changes: 3 additions & 0 deletions src/cv.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@
"title": "Software Engineer"
},
{
"hide": true,
"company": "Sundance Institute",
"duties": [
"Work with stakeholders to implement their vision on our site",
Expand All @@ -99,6 +100,7 @@
"title": "Web Developer"
},
{
"hide": true,
"company": "PerkNow",
"duties": [
"Work on AngularJS and Ionic app to get ready for publishing in the Apple App and Google Play stores",
Expand All @@ -116,6 +118,7 @@
"title": "Web Developer"
},
{
"hide": true,
"company": "DevMountain",
"duties": [
"Assist students with projects and lessons",
Expand Down
79 changes: 49 additions & 30 deletions src/cv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ use std::path::Path;
struct Job {
company: String,
duties: Vec<String>,
#[serde(default)]
hide: bool,
notable_achievements: Vec<String>,
technologies: Vec<String>,
time: String,
Expand All @@ -17,7 +19,11 @@ struct Job {

#[derive(Debug, Serialize, Deserialize)]
struct Project {
demo_url: Option<String>,
description: String,
#[serde(default)]
hide: bool,
repo_url: Option<String>,
technologies: Vec<String>,
title: String,
}
Expand All @@ -34,10 +40,11 @@ pub fn cv() -> Result<Markup, Box<dyn Error>> {
div.bottom-spacer{
h2.p-hide{"Contact"}
ul{
li{"Email: [email protected]"}
li{"Email: " a href="mailto:[email protected]"{"[email protected]"}}
li{"Phone: 702-285-7906"}
li{"Website: tompridham.me"}
li{"Github: github.com/tompridham"}
li{"Website: " a href="https://tompridham.me"{"tompridham.me"}}
li{"Linkedin: " a href="https://www.linkedin.com/in/tompridham/"{"linkedin.com/in/tompridham/"}}
li{"Github: " a href="https://github.com/tompridham"{"github.com/tompridham"}}
}
}
}
Expand All @@ -48,36 +55,38 @@ pub fn cv() -> Result<Markup, Box<dyn Error>> {
li{"Rust"}
li{"Node"}
li{"Typescript"}
li{"GraphQL"}
li{"AngularJS"}
li{"Postgres"}
li{"Performance"}
li{"Accessibility"}
li{"Webassembly"}
}
}
div.bottom-spacer{
h2{"Job History"}
div{
@for cv_item in cv_items {
div.bottom-spacer.hr.job{
h3{(cv_item.company ) " | " (cv_item.time) " | " (cv_item.title)}
h4{"Duties"}
ul{
@for duty in cv_item.duties{
li{(duty)}
@if !cv_item.hide{
div.bottom-spacer.hr.job{
h3{(cv_item.company ) " | " (cv_item.time) " | " (cv_item.title)}
h4{"Duties"}
ul{
@for duty in cv_item.duties{
li{(duty)}
}
}
}
h4{"Notable Achievements"}
ul{
@for n in cv_item.notable_achievements{
li{(n)}
h4{"Notable Achievements"}
ul{
@for n in cv_item.notable_achievements{
li{(n)}
}
}
}
h4{"Technologies Used"}
ul.p-twocol{
@for t in cv_item.technologies{
li{(t)}
h4{"Technologies Used"}
ul.p-twocol{
@for t in cv_item.technologies{
li{(t)}
}
}
}

}
}
}
}
Expand All @@ -86,12 +95,22 @@ pub fn cv() -> Result<Markup, Box<dyn Error>> {
h2 #projects{"Projects"}
div{
@for project in projects{
div.bottom-spacer.hr.project{
h3{(project.title)}
p{(project.description)}
ul{
@for tech in project.technologies{
li{(tech)}
@if !project.hide{
div.bottom-spacer.hr.project{
h3{(project.title)}
@if project.demo_url.is_some() {
@let demo_url = project.demo_url.unwrap();
p{"Demo: " a href=(demo_url){(demo_url)}}
}
@if project.repo_url.is_some() {
@let repo_url = project.repo_url.unwrap();
p{"Repo: " a href=(repo_url){(repo_url)}}
}
p{(project.description)}
ul.p-twocol{
@for tech in project.technologies{
li{(tech)}
}
}
}
}
Expand All @@ -100,7 +119,7 @@ pub fn cv() -> Result<Markup, Box<dyn Error>> {
}
div{
h2{"Education"}
div{
div.education{
h3{"DevMoutain - May 2016"}
p{"Studied web development focused on the MEAN-Stack. DevMountain is a programming bootcamp - https://devmounta.in/web-immersive"}
h3{"Salt Lake Community College - December 2015"}
Expand Down
30 changes: 21 additions & 9 deletions src/projects/projects.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
[
{
"demo_url": "github.com/tompridham/brutemoji",
"demo_url": "https://tompridham.me/projects/random_task/",
"repo_url": "https://github.com/TomPridham/random-task",
"description": "A little utility that will parse a tab nested list of tasks and select a random one",
"extended_description": "I sometimes have trouble picking what task I should work on next. I have a lot of tasks that are all relatively equal priority, but I have a lot of more tasks related to house projects. So I can't just use a normal random number generator unless I want to spend 90% of my time doing house tasks. This will parse an arbitrarily deep nested list where each <TAB> denotes a nesting level and traverse down the list, selecting a random task at each step until it reaches the bottom",
"technologies": ["Rust", "WASM"],
"title": "Random Task"
},
{
"demo_url": "https://tompridham.me/projects/wasmsweeper/",
"repo_url": "https://github.com/TomPridham/wasmsweeper",
"description": "A basic minesweeper implementation written with Bevy that compiles to WASM",
"extended_description": "I really like minesweeper and wanted to try making a game. It's a pretty basic implementation that includes some niceties like chording. The images are all hand drawn by me if you couldn't tell. It compiles to WASM and works on my website because it makes sharing it a lot easier and I thought it was neat.",
"technologies": ["Rust", "Bevy", "WASM"],
"title": "WasmSweeper"
},
{
"repo_url": "github.com/tompridham/brutemoji",
"description": "A picture replication program that works by randomly placing emoji on a blank canvas and comparing that to the original picture. If the new picture is closer than the old picture is, it keeps that image and repeats the process.",
"extended_description": "An old boss of mine found a site that had a person's project called brutemoji that did what my library does but in JS. I really liked their project and used it to create a few fun images. I haven't been able to find that same site again, so I thought I would recreate it in rust. I like the final product better than other more intelligent emoji image replicators because the final image is much more chaotic and ultimately more interesting.",
"picture_urls": [
Expand All @@ -13,8 +29,8 @@
"title": "Brutemoji"
},
{
"hide": true,
"description": "Project with other mentors at devmountain that is used to automate Google Calendar scheduling. Implemented a React with Redux front-end with a Node and Postgres backend.",
"extended_description": "",
"technologies": [
"React",
"Redux",
Expand All @@ -28,22 +44,18 @@
"title": "DevMountain Scheduler"
},
{
"repo_url": "https://github.com/TomPridham/routefor.me",
"description": "An app that uses data scraped from mtbproject.com to recommend random mountain bike trails. Implemented a fully-functional webscraper to pull trail data from mtbproject.com.",
"extended_description": "",
"technologies": [
"webscraping",
"text-parsing",
"Angular Material",
"Mongo",
"AngularJS",
"Express",
"Node"
"AngularJS"
],
"title": "routefor.me"
},
{
"hide": true,
"description": "Group project that was designed to assist in selecting plants based on use with data pulled from pfaf.org. Utilized the Node fs module to process over 7000 entries for our database. Simplified and reorganized front-end querying code to remove over 250 lines and reduce client-side latency.",
"extended_description": "",
"technologies": [
"text-parsing",
"Skeleton",
Expand Down

0 comments on commit f14e77c

Please sign in to comment.