diff --git a/website/public/css/cv.css b/website/public/css/cv.css new file mode 100644 index 0000000..cdee5b1 --- /dev/null +++ b/website/public/css/cv.css @@ -0,0 +1,92 @@ +div:has(img) { + width: 6rem; + height: 6rem; + margin-inline: auto; + + img { + width: 6rem; + height: 6rem; + border-radius: 1rem; + filter: contrast(1.25); + } + + &::after { + /* Colour overlay */ + background-color: var(--colour-primary-80); + opacity: 0.3; + + /* Same size and shape as the img */ + border-radius: 1rem; + width: 6rem; + height: 6rem; + + /* Positioned on top of the img */ + display: block; + position: relative; + top: -6rem; + + /* A content value is needed to get the ::after to render */ + content: ''; + } +} + +header { + display: grid; + grid-template-columns: 1fr 1fr; + text-align: center; + + h1 { + grid-column: 1 / 3; + text-align: center; + } + + border-block-end: 1px solid var(--colour-primary-fg); +} + +.technical-skills { + h3 { + text-align: start; + } + + ul { + color: var(--colour-primary-fg-accent); + margin-inline-start: var(--spacing-inline-md); + } + + @media (min-width: 46rem) { + section { + display: flex; + gap: var(--spacing-inline-sm); + align-items: baseline; + + h3 { + &::after { + content: '/'; + margin-inline: var(--spacing-inline-sm); + } + } + + ul { + display: flex; + gap: var(--spacing-inline-sm); + list-style: none; + margin-inline-start: 0; + + li + li::before { + content: '•'; + margin-inline-end: var(--spacing-inline-sm); + } + } + } + } +} + +:is(.experience, .passions) { + :is(ol, ul) { + list-style: none; + + li { + margin-block-start: var(--spacing-block-sm); + } + } +} diff --git a/website/src/components/Navbar.astro b/website/src/components/Navbar.astro index 479f8b5..eeb67f2 100644 --- a/website/src/components/Navbar.astro +++ b/website/src/components/Navbar.astro @@ -12,5 +12,8 @@
  • Links
  • +
  • + CV +
  • diff --git a/website/src/pages/cv.astro b/website/src/pages/cv.astro new file mode 100644 index 0000000..4341cfa --- /dev/null +++ b/website/src/pages/cv.astro @@ -0,0 +1,138 @@ +--- +import { SITE_DESCRIPTION } from '../consts'; +import Page from '../layouts/Page.astro'; +--- + + + + +
    + +
    + +
    +

    Joe Carstairs’ CV

    +

    me@joeac.net

    +

    joeac.net

    +
    + +
    +

    Technical skills

    + +
    +

    Front end

    +
      +
    • HTML
    • +
    • CSS
    • +
    • JavaScript/TS
    • +
    • Astro
    • +
    • React
    • +
    +
    + +
    +

    Back end

    +
      +
    • NodeJS
    • +
    • Java/Spring
    • +
    • Python
    • +
    • C
    • +
    +
    + +
    +

    Infrastructure

    +
      +
    • Terraform
    • +
    • Docker
    • +
    • AWS
    • +
    • DigitalOcean
    • +
    +
    + +
    +

    Miscellaneous

    +
      +
    • Git
    • +
    • Bash
    • +
    • Langchain
    • +
    +
    +
    + +
    +

    My engineering priorities

    + +
    + +
    +

    What makes me tick

    + +
    + +
    +

    Experience

    +
      +
    1. + 2024, Scott Logic. Researched the potential of applying LLMs to + automated accessibility testing of websites, using Langchain Python + library, elementary prompt engineering techniques, and various scripting + languages to knit all our data together. +
    2. +
    3. + 2023, Scott Logic. Investigated the accessibility of the + Scott Logic blog both manually + and using automated tools, including pa11y and Lighthouse. Made several + recommendations for improvements. +
    4. +
    5. + 2023, Scott Logic. Built a social app with a React/Redux frontend and a + Spring Boot backend, deployed via Azure Pipelines onto an AWS EC2 + instance, as part of the Scott Logic Graduate Programme. +
    6. +
    7. + 2021, FreeAgent. Analysed how front-end developers were consuming the + FreeAgent design system for the Design System Team as a summer + internship. +
    8. +
    +
    + +
    +

    Education

    +

    Philosophy and Mathematics, MA Hons, Edin, 2022.

    +

    Full transcript available upon request.

    +
    + +
    +

    Passions

    + +
    +
    +