---
import { SITE_DESCRIPTION } from '../consts';
import Page from '../layouts/Page.astro';
---

<Page title={'Joe Carstairs’ CV'} description={SITE_DESCRIPTION}>
  <link rel="stylesheet" href="/css/cv.css">

  <div>
    <img src="/images/headshot.webp" height="96" width="96" />
  </div>

  <header>
    <h1>Joe Carstairs’ CV</h1>
    <p><a href="mailto:me@joeac.net">me@joeac.net</a></p>
    <p><a href="https://joeac.net">joeac.net</a></p>
  </header>

  <section>
    <p>
      Early-career software developer with broad interests, technical precision
      and deep thinking. Not actively looking for a job right now, but happy to
      hear from you about future opportunities.
    </p>
  </section>

  <section>
    <h2>Soft skills</h2>

    <ul>
      <li>Thinks critically with precision</li>
      <li>Communicates clearly, especially in prepared presentations</li>
      <li>Better at engineering things carefully and reflectively than hacking something quick and dirty (though can do that too!)</li>
    </ul>
  </section>

  <section class="technical-skills">
    <h2>Technical skills</h2>

    <section>
      <h3>Front end</h3>
      <ul>
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript/TS</li>
        <li>Astro</li>
        <li>React</li>
      </ul>
    </section>

    <section>
      <h3>Back end</h3>
      <ul>
        <li>NodeJS</li>
        <li>Java/Spring</li>
        <li>Python</li>
        <li>C</li>
      </ul>
    </section>

    <section>
      <h3>Infrastructure</h3>
      <ul>
        <li>Terraform</li>
        <li>Docker</li>
        <li>AWS</li>
        <li>DigitalOcean</li>
      </ul>
    </section>

    <section>
      <h3>Miscellaneous</h3>
      <ul>
        <li>Git</li>
        <li>Bash</li>
        <li>Langchain</li>
      </ul>
    </section>
  </section>

  <section class="my-engineering-priorities">
    <h2>My engineering priorities</h2>
    <ul>
      <li>I put the process before the product</li>
      <li>I put user needs before technical solutions</li>
      <li>I put resilience before features</li>
    </ul>
  </section>

  <section class="what-makes-me-tick">
    <h2>What makes me tick</h2>
    <ul>
      <li>I like straightening out chaos</li>
      <li>I like communities which share wisdom</li>
      <li>I value finding things out over making the perfect product</li>
    </ul>
  </section>

  <section class="experience">
    <h2>Experience</h2>
    <ol>
      <li>
        Aug 2024 - present, Scott Logic. Building a fullstack application for
        a large financial institution. Java Spring Boot microservices on the
        backend, Angular on the frontend, with Kafka, MongoDB and Elasticsearch
        as supporting technologies.
      </li>
      <li>
        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.
      </li>
      <li>
        2023, Scott Logic. Investigated the accessibility of the
        <a href="https://blog.scottlogic.com">Scott Logic blog</a> both manually
        and using automated tools, including pa11y and Lighthouse. Made several
        recommendations for improvements.
      </li>
      <li>
        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.
      </li>
      <li>
        2021, FreeAgent. Analysed how front-end developers were consuming the
        FreeAgent design system for the Design System Team as a summer
        internship.
      </li>
    </ol>
  </section>

  <section class="education">
    <h2>Education</h2>
    <p>Philosophy and Mathematics, MA Hons, Edin, 2022.</p>
    <p>Full transcript available upon request.</p>
  </section>

  <section class="passions">
    <h2>Passions</h2>
    <ul>
      <li>
        I would love to see ordinary people empowered to engage with Web
        technology as sovereign citizens, owning their own data, with the
        ability to choose freely between competing digital services. I haven't
        yet been shaken out of my naïve hope for the IndieWeb, though I
        recognise it has a long way to go before it is ready for mass adoption.
      </li>
      <li>
        I love Jesus Christ as the Redeemer of the world. Lots of people believe
        that there is some higher power behind the things we can see, and Jesus
        has revealed who God is by being made flesh, dying on the cross and by
        being raised to a new Resurrection life, in which we are all invited to
        participate. And I think that's pretty gnarly.
      </li>
      <li>
        I love hillwalking. A day in the hills is the best kind of rest I know.
      </li>
    </ul>
  </section>
</Page>

