diff --git a/assets/css/main.css b/assets/css/main.css index 1f1aaec..d084fef 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -4,11 +4,7 @@ @layer base { body { - /* TODO(cjshearer): remove when we update to tailwind >= v3.4.0 - https://github.com/tailwindlabs/tailwindcss/pull/12299 */ - -webkit-tap-highlight-color: transparent; - - @apply prose prose-sm prose-resume font-[Roboto,_sans-serif] dark:prose-invert; + @apply prose prose-sm prose-neutral prose-resume font-[Roboto_Flex,_sans-serif] dark:prose-invert; @apply dark:bg-neutral-800; } @@ -29,19 +25,12 @@ @apply after:absolute after:top-0 after:block after:h-full after:w-full after:rounded-full after:[box-shadow:inset_0_0_20px_0_theme(colors.neutral.800)] dark:after:[box-shadow:inset_0_0_20px_0_theme(colors.neutral.500)]; } - .button { - @apply relative flex h-12 w-12 items-center justify-center rounded-full; - - /* before */ - @apply before:absolute before:left-0 before:top-0 before:-z-10 before:h-full before:w-full before:scale-90 before:rounded-full before:duration-[250ms] before:[box-shadow:inset_0_0_0_0.125rem_currentColor] dark:before:[box-shadow:inset_0_0_0_3rem_currentColor]; - - /* hover:before */ - @apply hover:before:scale-100 hover:before:[box-shadow:inset_0_0_0_3rem_currentColor] dark:hover:before:[box-shadow:inset_0_0_0_0.125rem_currentColor]; - - /* svg */ - @apply [&_svg]:inline [&_svg]:h-[58%] [&_svg]:w-[58%] [&_svg]:fill-current [&_svg]:text-inherit [&_svg]:transition-colors dark:[&_svg]:text-neutral-800; - - /* hover:svg */ - @apply [&_svg]:hover:text-white dark:[&_svg]:hover:text-inherit; + .inline-svg { + @apply inline-block [&_svg]:inline-block [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:fill-current [&_svg]:align-[calc(0.5cap-0.5em)]; } } + +@page { + margin: 3rem; + margin-bottom: 1.5rem; +} diff --git a/content/_index.md b/content/_index.md index e40d3c8..075e4a4 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,91 +1,83 @@ --- -outputs: [html, txt] -dateformat: - short: Jan. 2006 - long: January 2006 -title: Resume +title: Software Developer +description: Full Stack Software Developer Resume faviconText: 💼 -skills: - - languages: - - TypeScript - - JavaScript - - HTML - - CSS - - Golang - - Node.js - - SQL - - Rust - - Python - - Java - - C++ - - frameworks: - - React - - React-Native - - Vue - - Nuxt - - Hugo - - TailwindCSS - - Storybook - - concepts: - - Agile (Scrum) - - RESTful APIs - - Material Design - - Cloud Native - - GitOps - - CI/CD - - tools: - - Git - - Linux - - Docker - - Tailscale - - Postman - - databases: - - MySQL - - PostgreSQL - - MongoDB - - services: - - Auth0 - - LogRocket - - Sentry - - Stripe - - SendGrid --- -{{
}} - -# Cody Shearer - -Software Developer with 3 Years of Experience in Full Stack Web and Mobile Development -{class="font-light mb-2"} - -[![GitHub: github.com/cjshearer](svgs/brands/github.svg)](https://github.com/cjshearer "GitHub") -[![LinkedIn: cjshearer.dev](svgs/brands/linkedin.svg)](https://linkedin.com/in/cjshearer "LinkedIn") -[![Email: cjshearer@live.com](svgs/solid/envelope.svg)](mailto:cjshearer@live.com "Email") -{class="[&>*]:button [&>*]:inline-flex [&>*]:mr-1 md:hidden"} - -{{
}} - -{{}} +# Cody Shearer -{{
}} +Software Developer with 3 Years of Experience in Full Stack Web and Mobile Development +{ class="mb-2"} + + +- [![](svgs/brands/github.svg)cjshearer](https://github.com/cjshearer "My GithHub") +- [![](svgs/brands/linkedin.svg)in/cjshearer](https://linkedin.com/in/cjshearer "My LinkedIn") +- [![](svgs/solid/house.svg)cjshearer.dev](https://cjshearer.dev "My Website") +- [![](svgs/solid/envelope.svg)cjshearer@live.com](mailto:cjshearer@live.com "My Email") +{ class="not-prose [&>*]:inline-svg inline-flex w-fit flex-wrap justify-center gap-4 whitespace-nowrap [&_svg]:mr-1"} + + + +
+ +## Skills {class="md:hidden"} + + +- Languages: + - TypeScript + - JavaScript + - HTML + - CSS + - Golang + - Node.js + - SQL + - Rust + - Python + - Java + - C++ +- Frameworks: + - React + - React-Native + - Vue + - Nuxt + - Hugo + - TailwindCSS + - Storybook +- Concepts: + - Agile (Scrum) + - RESTful APIs + - Material Design + - Cloud Native + - GitOps + - CI/CD +- Tools: + - Git + - Linux + - Docker + - Tailscale + - Postman +- Databases: + - MySQL + - PostgreSQL + - MongoDB +- Services: + - Auth0 + - LogRocket + - Sentry + - Stripe + - SendGrid +{ class="table pl-0 md:float-right md:block print:md:float-none print:md:table [&>li>*]:table-cell md:[&>li>*]:block print:md:[&>li>*]:table-cell [&>li>ul>li]:inline md:[&>li>ul>li]:block print:md:[&>li>ul>li]:inline [&>li>ul]:list-none md:[&>li>ul]:list-disc [&>li]:table-row"} ## Experience ### Software Developer – Full Stack, Krumware -{{}} +March 2021 to October 2023 - Collaborated in cross-functional team following agile (scrum) methodologies - Improved time-to-market by up to 20% with project templates @@ -113,7 +105,7 @@ Project Highlights: ### Research Assistant, AI and Systems Laboratory -{{}} +August 2020 to April 2021 - Analyzed cross-platform performance behavior of deep-learning recommender system - Reproduced results from past research on highly configurable systems @@ -121,7 +113,7 @@ Project Highlights: ### Software Developer – Intern, Velocity -{{}} +June 2018 to August 2018 - Created AWS storage primitive abstracting cloud complexity for high level orchestration - Developed storage optimization solution for Amazon Elastic Block Storage @@ -130,25 +122,17 @@ Project Highlights: ### BS Computer Science, University of South Carolina -{{}} +August 2017 to May 2021 - Graduated [_magna cum laude_](pdf/usc-diploma.pdf) with a mathematics minor - Achieved [Outstanding Senior Award](https://sc.edu/about/offices_and_divisions/leadership_and_service_center/awards_and_recognition/senior-awards/index.php) and the [Palmetto Fellows Scholarship](https://sc.edu/about/offices_and_divisions/financial_aid/scholarships/scholarships_for_sc_residents/palmetto_fellows/index.php) - Earned honors including President's List, Dean's List, and [Phi Beta Kappa](https://www.pbk.org/About) - Served as President and Treasurer of the Carolina Movement Club (_parkour!_) -## Skills {.md:hidden} - -{{}} - -{{
}} - -{{
-_Is HTML too fancy for you? [See it in plain text](/index.txt)._ -{class="print:hidden"} +}} + diff --git a/hugo.yaml b/hugo.yaml index 2325bfb..7b05353 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -13,7 +13,6 @@ disableKinds: - taxonomy - term enableEmoji: true -enableRobotsTXT: true languageCode: en-us markup: goldmark: @@ -32,12 +31,3 @@ module: target: assets/watching/hugo_stats.json - source: node_modules/@fortawesome/fontawesome-free/svgs target: assets/svgs -mediaTypes: - text/plain: - suffixes: - - txt -outputFormats: - TXT: - mediaType: text/plain - baseName: index - isPlainText: true diff --git a/layouts/404.html b/layouts/404.html deleted file mode 100644 index 88fdd29..0000000 --- a/layouts/404.html +++ /dev/null @@ -1,16 +0,0 @@ - - - {{ partialCached "head.html" . }} - -
-
-

Page not found :(

-

- You're an explorer, aren't ya?
- But the page you are attempting to access cannot be found.
- Go back to the main page -

-
-
- - diff --git a/layouts/content/_redirects b/layouts/content/_redirects deleted file mode 100644 index eb70c84..0000000 --- a/layouts/content/_redirects +++ /dev/null @@ -1 +0,0 @@ -/* /404.html 404 \ No newline at end of file diff --git a/layouts/index.html b/layouts/index.html index df7a8a2..e49bc22 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -2,7 +2,7 @@ {{ partialCached "head.html" . }} {{ .Content }} diff --git a/layouts/index.txt b/layouts/index.txt deleted file mode 100644 index 455406b..0000000 --- a/layouts/index.txt +++ /dev/null @@ -1,32 +0,0 @@ -{{- /* Process Raw Content------------------------------------------------*/ -}} -{{- $raw := .RawContent -}} - -{{- /* join with preceding element */ -}} -{{- $raw = replaceRE `\s{2}({{\}})\s*` ", $1\n" $raw -}} - -{{- /* stylize headers */ -}} -{{- $raw = replaceRE `(?m)^#{1} (.+)` "$1" $raw -}} -{{- $raw = replaceRE `(?m)^#{2} (.+)` (printf "%s\n$1\n" (strings.Repeat 102 "-")) $raw -}} -{{- $raw = replaceRE `(?m)^#{3} (.+)` "● $1" $raw -}} - -{{- /* remove italic, bold, and italic-and-bold indicators */ -}} -{{- range seq 3 -}} - {{- $raw = replaceRE `\b_(.*?)_\b|\*(.*?)\*` "$1$2" $raw -}} -{{- end -}} - -{{- /* replace images and links with their text */ -}} -{{- $raw = replaceRE `!{0}\[(.*?)\]\(.*?\)` "$1" $raw -}} -{{- $raw = replaceRE `!{1}\[(.*?)\]\(.*?\)` "$1" $raw -}} - -{{- /* Process Rendered Content-------------------------------------------*/ -}} -{{- $content := $raw | .Page.RenderString -}} - -{{- /* remove hugo attributes */ -}} -{{- $content = replaceRE `{.*}\s?` "" $content -}} - -{{- /* consolidate multiple newlines */ -}} -{{- $content = replaceRE `(?m)^(\s*\n)+` "\n" $content -}} - -{{- $content = strings.TrimLeft "\n" $content -}} - -{{- $content }} diff --git a/layouts/partials/css.html b/layouts/partials/css.html deleted file mode 100644 index 8d3e30e..0000000 --- a/layouts/partials/css.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ $styles := resources.Get "css/main.css" | resources.PostCSS }} -{{ if hugo.IsProduction }} - {{- with $styles | minify | fingerprint | resources.PostProcess -}} - - {{- end -}} -{{ else }} - -{{ end }} diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 4699cb1..a03fb29 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -1,15 +1,24 @@ {{ $data := .Scratch.Get "data" }} -{{ $googleFontURL := "https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;1,300;1,400&display=swap" }} +{{ $googleFontURL := "https://fonts.googleapis.com/css2?family=Roboto+Flex&display=swap" }} + {{ with (.Page.Title | default $.Site.Title) }} + {{ . }} + + {{ end }} + {{ with .Page.Description }} + + + {{ end }} - - - {{ .Page.Title | default .Site.Title }} - + - + + + + + {{ with .Page.Params.faviconText }} {{ $faviconString := print `` @@ -30,19 +39,13 @@ {{ end }} - {{ partialCached "css.html" . }} - - {{ if .Site.Params.enableMetaTags }} - - - - {{ with $data.BasicInfo.Photo }} - - {{ end }} - {{ with $data.Profile | htmlUnescape | emojify | truncate 200 }} - - - {{ end }} + {{ $styles := resources.Get "css/main.css" | resources.PostCSS }} + {{ if hugo.IsProduction }} + {{- with $styles | minify | fingerprint | resources.PostProcess -}} + + {{- end -}} + {{ else }} + {{ end }} {{ if .Site.GoogleAnalytics }} diff --git a/layouts/shortcodes/aside.html b/layouts/shortcodes/aside.html deleted file mode 100644 index 254129b..0000000 --- a/layouts/shortcodes/aside.html +++ /dev/null @@ -1,9 +0,0 @@ -{{- $class := "" -}} -{{- with .Get "class" -}} - {{- $class = . -}} -{{- end -}} - - - diff --git a/layouts/shortcodes/aside.txt b/layouts/shortcodes/aside.txt deleted file mode 100644 index 695e39a..0000000 --- a/layouts/shortcodes/aside.txt +++ /dev/null @@ -1,2 +0,0 @@ -{{/* Workaround for Hugo requiring evaluation of Inner */}} -{{- $workaround := .Inner -}} diff --git a/layouts/shortcodes/date-range.html b/layouts/shortcodes/date-range.html deleted file mode 100644 index 87ff7b8..0000000 --- a/layouts/shortcodes/date-range.html +++ /dev/null @@ -1,34 +0,0 @@ -{{- $class := "" -}} -{{- with .Get "class" -}} - {{- $class = . -}} -{{- end -}} - -{{- $format := .Page.Params.dateformat.short -}} -{{- $start := .Get "start" -}} -{{- $end := .Get "end" -}} -{{- $startFormatted := time.Format $format $start -}} -{{- $endFormatted := "now" -}} -{{- with $end -}} - {{- $endFormatted = time.Format $format $end -}} -{{- end -}} - - -
- - {{- if ne $startFormatted $endFormatted -}} - - - {{- end -}} -
diff --git a/layouts/shortcodes/date-range.txt b/layouts/shortcodes/date-range.txt deleted file mode 100644 index a8b3ecb..0000000 --- a/layouts/shortcodes/date-range.txt +++ /dev/null @@ -1,10 +0,0 @@ -{{- $format := .Page.Params.dateformat.long -}} -{{- $start := .Get "start" -}} -{{- $end := .Get "end" | default "now" -}} -{{- with $start -}} - {{- $start = time.Format $format $start -}} -{{- end -}} -{{- with .Get "end" -}} - {{- $end = time.Format $format . -}} -{{- end -}} -{{- print $start " to " $end -}} diff --git a/layouts/shortcodes/footer.html b/layouts/shortcodes/footer.html deleted file mode 100644 index a1af476..0000000 --- a/layouts/shortcodes/footer.html +++ /dev/null @@ -1,7 +0,0 @@ -{{- $class := "" -}} -{{- with .Get "class" -}} - {{- $class = . -}} -{{- end -}} -
- {{ .Inner | .Page.RenderString }} -
diff --git a/layouts/shortcodes/footer.txt b/layouts/shortcodes/footer.txt deleted file mode 100644 index 695e39a..0000000 --- a/layouts/shortcodes/footer.txt +++ /dev/null @@ -1,2 +0,0 @@ -{{/* Workaround for Hugo requiring evaluation of Inner */}} -{{- $workaround := .Inner -}} diff --git a/layouts/shortcodes/header.html b/layouts/shortcodes/header.html deleted file mode 100644 index 3a50816..0000000 --- a/layouts/shortcodes/header.html +++ /dev/null @@ -1,7 +0,0 @@ -{{- $class := "" -}} -{{- with .Get "class" -}} - {{- $class = . -}} -{{- end -}} -
- {{ .Inner | .Page.RenderString }} -
diff --git a/layouts/shortcodes/header.txt b/layouts/shortcodes/header.txt deleted file mode 100644 index 89ca9fd..0000000 --- a/layouts/shortcodes/header.txt +++ /dev/null @@ -1 +0,0 @@ -{{- .InnerDeindent -}} \ No newline at end of file diff --git a/layouts/shortcodes/main.html b/layouts/shortcodes/main.html deleted file mode 100644 index 0d60b36..0000000 --- a/layouts/shortcodes/main.html +++ /dev/null @@ -1,9 +0,0 @@ -{{- $class := "" -}} -{{- with .Get "class" -}} - {{- $class = . -}} -{{- end -}} -
- {{ .Inner | .Page.RenderString }} -
diff --git a/layouts/shortcodes/main.txt b/layouts/shortcodes/main.txt deleted file mode 100644 index 3aa78df..0000000 --- a/layouts/shortcodes/main.txt +++ /dev/null @@ -1 +0,0 @@ -{{ .InnerDeindent }} \ No newline at end of file diff --git a/layouts/shortcodes/skills.html b/layouts/shortcodes/skills.html deleted file mode 100644 index 5530fa5..0000000 --- a/layouts/shortcodes/skills.html +++ /dev/null @@ -1,37 +0,0 @@ -{{- $class := "" -}} -{{- with .Get "class" -}} - {{- $class = . -}} -{{- end -}} -{{- $layout := .Get "layout" | default "horizontal" -}} -{{- with .Page.Params.skills -}} - -{{- end -}} diff --git a/layouts/shortcodes/skills.txt b/layouts/shortcodes/skills.txt deleted file mode 100644 index 43f70cc..0000000 --- a/layouts/shortcodes/skills.txt +++ /dev/null @@ -1,7 +0,0 @@ -{{ with .Page.Params.Skills }} -{{ range . }} -{{ range $category, $items := . }} -{{- $category | strings.FirstUpper }}: {{ delimit $items ", " }} -{{- end }} -{{- end }} -{{ end }} diff --git a/package.json b/package.json index 46ea1fd..bd384fa 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,6 @@ "@commitlint/config-conventional": "^17.8.1", "@fortawesome/fontawesome-free": "^6.4.2", "@fullhuman/postcss-purgecss": "^5.0.0", - "@savvywombat/tailwindcss-grid-areas": "^3.1.0", "@tailwindcss/typography": "^0.5.10", "@types/node": "^20.8.9", "autoprefixer": "^10.4.16", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c248f06..6831a1e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,9 +17,6 @@ devDependencies: '@fullhuman/postcss-purgecss': specifier: ^5.0.0 version: 5.0.0(postcss@8.4.31) - '@savvywombat/tailwindcss-grid-areas': - specifier: ^3.1.0 - version: 3.1.0(tailwindcss@3.3.5) '@tailwindcss/typography': specifier: ^0.5.10 version: 0.5.10(tailwindcss@3.3.5) @@ -383,16 +380,6 @@ packages: fastq: 1.15.0 dev: true - /@savvywombat/tailwindcss-grid-areas@3.1.0(tailwindcss@3.3.5): - resolution: {integrity: sha512-CaNoCS7Zr3OeDDhCSXXU7dnqYjehdjNmDy6NdFxkLAyDcxA8YTI3rjPm6X+bTWyYINHXr+RONG3UKWrSv2UYSw==} - engines: {node: '>=14.18.2'} - peerDependencies: - tailwindcss: ^3.0.1 - dependencies: - lodash: 4.17.21 - tailwindcss: 3.3.5(ts-node@10.9.1) - dev: true - /@sindresorhus/is@5.6.0: resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} diff --git a/tailwind.config.js b/tailwind.config.js index 514eb1f..82ca1d3 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -3,10 +3,7 @@ const defaultTheme = require("tailwindcss/defaultTheme"); /** @type {import('tailwindcss').Config} */ module.exports = { content: ["./hugo_stats.json"], - plugins: [ - require("@tailwindcss/typography"), - require("@savvywombat/tailwindcss-grid-areas"), - ], + plugins: [require("@tailwindcss/typography")], theme: { extend: { typography: { @@ -57,32 +54,6 @@ module.exports = { }, }, }, - // TODO(cjshearer): remove subgrid once - // https://github.com/tailwindlabs/tailwindcss/pull/12298/files is - // released - gridTemplateColumns: { - "resume-md": "1fr min-content min-content", - resume: "1fr min-content", - subgrid: "subgrid", - }, - gridTemplateRows: { - resume: "repeat(3, min-content)", - subgrid: "subgrid", - }, - // https://savvywombat.com.au/tailwind-css/grid-areas - gridTemplateAreas: { - "resume-md": [ - "header header drawer", - "main date drawer", - "footer footer footer", - ], - // prettier-ignore - resume: [ - "header header", - "main date", - "footer footer", - ], - }, }, }, };