~jcc/hugo-site

3b77f794ce6a1dd43f9aeb75c8571a337e3d3251 — Jason Cox 5 months ago 2351d4b
Remove resume

This site is for my personal stuff. A resume is too work-ish. Extract it
to a separate repository instead.
6 files changed, 1 insertions(+), 355 deletions(-)

M assets/css/style.css
M content/_index.md
D content/resume/data.toml
D content/resume/index.md
D layouts/_default/resume.html
M layouts/partials/header.html
M assets/css/style.css => assets/css/style.css +1 -1
@@ 337,7 337,7 @@ footer {
}

/* when header no longer fits as one long line */
@media only screen and (max-width: 27rem) {
@media only screen and (max-width: 23rem) {
  #header-content {
    flex-direction: column;
  }

M content/_index.md => content/_index.md +0 -1
@@ 16,7 16,6 @@ Here's the general layout of the site:
- [Blog](/blog/): Stories, how-tos, and my thoughts on various topics
- [Books](/books/): Books I've read lately and my (brief) thoughts about them
- [Creations](/creations/): A list of things I've built (often software, but not always)
- [Résumé](/resume/): A summary of my professional and academic accomplishments

## Staying updated


D content/resume/data.toml => content/resume/data.toml +0 -98
@@ 1,98 0,0 @@
name = "Jason Cox"
location = "Atlanta, GA"
phone = "" # add before generating PDF to submit to job apps
email = "<hi@jasoncarloscox.com>" # update before generating PDF to submit to job apps
link = "[jasoncarloscox.com](https://jasoncarloscox.com)"
sections = ["education", "work", "skills", "projects"]

[education]
name = "Education"

[[education.items]]
place = "[Georgia Institute of Technology](https://gatech.edu)"
title = "M.S., Computer Science"
date = "anticipated 2024"
details = ["GPA: 4.0 / 4.0"]

[[education.items]]
place = "[Brigham Young University](https://byu.edu)"
title = "B.S., Computer Science"
date = "2020"
details = [
    "*Summa cum laude*, GPA 4.0 / 4.0",
    "Minor in Business",
]

[work]
name = "Work"

[[work.items]]
place = "[Georgia Tech Computing and Society Lab](https://cands.cc.gatech.edu/)"
title = "Graduate Research Assistant"
date = "2022-present"
details = [
    "Implemented core measurement code for [CellWatch](https://sites.gatech.edu/cellwatch/)",
    "Ensured app's compliance with requirements for FCC approval",
    "Designed and built algorithms to plan drive testing routes",
]

[[work.items]]
place = "[Georgia Institute of Technology](https://gatech.edu)"
title = "Instructor"
date = "2023"
details = "Computer Networking I (CS 3251)"

[[work.items]]
place = "[Qualtrics](https://qualtrics.com)"
titles = [
    { title = "Software Engineer II", date = "2021-22" },
    { title = "Software Engineer I", date = "2021" },
    { title = "Part-time Software Engineer", date = "2019-20" },
]
details = [
    "Led team initiatives to design/create survey components ahead of schedule",
    "Mentored engineering intern in software development and collaboration skills",
    "Reduced load-induced outages by decreasing required API calls by up to 80%",
    "Prevented frontend regressions by creating a visual testing framework in Cypress",
    "Implemented complex React features from scratch, such as a drag-and-drop list and an auto-complete search box",
    "Provided insight into future development priorities by collecting and analyzing usage metrics",
]

[[work.items]]
place = "Force Code"
title = "Salesforce Developer"
date = "2017"
details = [
    "Satisfied clients by brainstorming and developing alternate solutions to system limitations",
    "Integrated Salesforce instance with external web services using RESTful APIs",
]

[skills]
name = "Skills"

[[skills.items]]
title = "Computer languages"
details = "JavaScript, TypeScript, Go, HTML, CSS, Python, C"

[[skills.items]]
title = "Systems/technologies"
details = "Linux, Docker, Node.js, React.js, Cypress, Terraform, AWS"

[[skills.items]]
title = "Human languages"
details = "English (native), Spanish (fluent)"

[projects]
name = "Personal projects"

[[projects.items]]
title = "[Distance-vector routing algorithm simulator](/creations/dv-sim/)"
details = "Basic simulator for students to explore the distance-vector routing algorithm"

[[projects.items]]
title = "[git-personal](/creations/git-personal/)"
details = "Docker image for a single-user Git server with support for mirroring to other Git servers and triggering automatic builds"

[[projects.items]]
title = "[vim-wayland-clipboard](/creations/vim-wayland-clipboard/)"
details = "Vim plugin to integrate the `+` register with Wayland's system clipboard"

D content/resume/index.md => content/resume/index.md +0 -12
@@ 1,12 0,0 @@
---
title: Résumé
lastmod: 2023-11-08
layout: resume
no_rss: true
aliases:
    - /cv
---

I'm a computer science Master's student with several years of software engineering experience. I'm known for my ability to learn quickly, work independently, and get the details right. If you'd like to work with me, [get in touch](mailto:hi@jasoncarloscox.com).

<!--more-->

D layouts/_default/resume.html => layouts/_default/resume.html +0 -240
@@ 1,240 0,0 @@
{{ define "after-content" }}
{{ with (.Resources.Get "data.toml").Content | unmarshal }}
<div class="resume">
  {{ $content := . }}
  <h1>{{ .name | markdownify }}</h1>
  <div class="contact">
    <div class="location">{{ .location | markdownify }}</div>&middot;
    <div class="email">{{ .email | markdownify }}</div>&middot;
    {{ with .phone }}
      <div class="phone">{{ . | markdownify }}</div>&middot;
    {{ end }}
    <div class="link">{{ .link | markdownify }}</div>
  </div>

  {{ range .sections }}
    <section class="{{ . }}">
    {{ with index $content . }}
      <h2>{{ .name | markdownify }}</h2>
      {{ range .items }}
        {{ $multi_title := isset . "titles" }}
        <div class="item {{ if $multi_title }} multi-title {{ end }}">
          {{ with .place }}<div class="place">{{ .| markdownify }}</div>{{ end }}

          {{ with default (slice (dict "title" .title "date" .date)) .titles }}
            {{ range . }}
              {{ with .title }}<div class="title">{{ . | markdownify }}</div>{{ end }}
              {{ with .date }}<div class="date">{{ . | markdownify }}</div>{{ end }}
            {{ end }}
          {{ end }}

          {{ with .details }}
            {{ if reflect.IsSlice .}}
              <ul class="details">
                {{ range . }}
                  <li>{{ . | markdownify }}</li>
                {{ end }}
              </ul>
            {{ else }}
              <div class="details">{{ . | markdownify }}</div>
            {{ end }}
          {{ end }}
        </div>
      {{ end }}
    {{ end }}
    </section>
  {{ end }}
{{ end }}
</div>

{{ end }}

{{ define "page-styles" }}
<style>
  .main-content {
    margin-bottom: 5rem;
  }

  .resume {
    margin-inline-start: -5.75rem;
  }

  .resume h1, .contact {
    display: none;
  }

  .resume section {
    display: grid;
    grid-template-columns: 4.5rem auto;
    column-gap: 1rem;
    align-items: start;
    border-top: 1px solid var(--color-border);
    padding-top: 0.25rem;
    margin-top: 2.5rem;
    padding-inline: 0.25rem;
  }

  .resume h2 {
    grid-column: 1;
    font-size: 0.85rem;
    margin: 0;
    padding-top: 0.2rem; /* match height of place/title */
    line-height: 1.25;
  }

  .item + .item {
    margin-top: 2rem;
  }

  .item {
    grid-column: 2;
    display: grid;
    grid-template-columns: auto min-content;
    column-gap: 1rem;
    align-items: start;
  }

  .item .place {
    grid-column: 1;
  }

  .item .title {
    font-style: italic;
    grid-column: 1 / span 2;
  }

  .item .date {
    grid-row: 1;
    grid-column: 2;
    justify-self: end;
    text-align: right;
    white-space: nowrap;
  }

  .item .details {
    grid-column: 1 / span 2;
    font-size: 0.9rem;
  }

  .item ul.details {
    margin-block: 0.375rem 0;
    padding-inline-start: 1.5rem;
  }

  .item .details li {
    margin: 0;
  }

  .item .place a, .item .title a {
    border-bottom: none;
  }

  .item.multi-title .place {
    grid-column: 1 / span 2;
  }

  .item.multi-title .date {
    grid-row: unset;
  }

  .item.multi-title .title, .item .title:first-child {
    grid-column: 1;
  }

  .item code {
    background: none;
  }

  /* when headings no longer fit on the side */
  @media only screen and (max-width: 49rem) {
    .main-content {
      margin-bottom: 5rem;
    }

    .resume {
      margin-inline-start: 0;
    }

    .resume section {
      grid-template-columns: auto;
    }

    .resume h2, .item {
      grid-column: 1
    }

    .resume h2 {
      margin-bottom: 0.25rem;
    }
  }

  @media only print {
    header, h1, .main-content, footer {
      display: none;
    }

    html {
      font-size: 11pt;
    }

    html, body, main {
      width: 100%;
      max-width: unset;
      margin: 0;
      padding: 0;
    }

    main {
      margin-block: auto;
      width: 6.5in;
    }

    .resume {
      text-rendering: optimizeLegibility; /* kerning */
      margin: 0;
    }

    .resume h1 {
      display: block;
      margin: 0;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      font-weight: normal;
    }

    .resume section {
      margin-top: 1.5rem;
    }

    .resume h2 {
      padding-top: 0.125rem; /* match height of place/title */
    }

    .resume a {
      border-bottom: none;
    }

    .contact {
      display: flex;
      justify-content: center;
      gap: 0.5rem;
      font-size: 0.9rem;
    }

    .item {
      page-break-inside: avoid;
    }

    .item + .item {
      margin-top: 1rem;
    }

    @page {
      margin-top: 1in;
      margin-bottom: 1in;
      margin-left: 1in;
      margin-right: 1in;
    }
  }
</style>
{{ end }}

M layouts/partials/header.html => layouts/partials/header.html +0 -3
@@ 16,9 16,6 @@
      <a href="/creations/" {{ if eq .Type "creations" }} class="active" {{ end }}>
        Creations
      </a>
      <a href="/resume/" {{ if eq .RelPermalink "/resume/" }} class="active" {{ end }}>
        Résumé
      </a>
    </nav>
  </div>
</header>