Compare commits
19
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4da253c8da | ||
|
|
392f1598a5 | ||
|
|
104800d1ce | ||
|
|
e1ebf69d47 | ||
|
|
450c0b5cc6 | ||
|
|
b0d6a33fd4 | ||
|
|
f7067f0491 | ||
|
|
8c2a9622a4 | ||
|
|
209b2e1e82 | ||
|
|
8163031f75 | ||
|
|
9c845035cd | ||
|
|
9ba05fade1 | ||
|
|
2a19c9d714 | ||
|
|
1c5fab6d8c | ||
|
|
c5a659f910 | ||
|
|
ae8ffba48f | ||
|
|
6f230b173e | ||
|
|
5f403ec950 | ||
|
|
f62b26ddb2 |
+40
-27
@@ -3,7 +3,7 @@ name: Render LaTeX and Publish Release
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
- "**"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -15,33 +15,46 @@ jobs:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install LaTeX
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y texlive-fonts-extra texlive-latex-base texlive-science texlive-latex-extra texlive-fonts-recommended latexmk texlive-luatex
|
||||
|
||||
- name: Render LaTeX document
|
||||
run: latexmk -pdflua cv.tex
|
||||
|
||||
- name: release
|
||||
uses: actions/create-release@v1
|
||||
id: create_release
|
||||
- uses: actions/cache@v3
|
||||
name: Tectonic Cache
|
||||
with:
|
||||
draft: false
|
||||
prerelease: false
|
||||
# Ref will be tag in this context
|
||||
release_name: ${{ github.ref }}
|
||||
tag_name: ${{ github.ref }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
path: ~/.cache/Tectonic
|
||||
key: ${{ runner.os }}-tectonic-${{ hashFiles('**/*.tex') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-tectonic-
|
||||
|
||||
- name: Upload assembled CV
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
- uses: joshuacoles/setup-tectonic@main
|
||||
name: Setup Tectonic
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./cv.pdf
|
||||
asset_name: cv.pdf
|
||||
asset_content_type: application/pdf
|
||||
github-token: ${{ secrets.COM_DOT_GITHUB_TOKEN }}
|
||||
|
||||
- name: Run Tectonic
|
||||
run: tectonic cv.tex
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
files: |
|
||||
cv.pdf
|
||||
|
||||
# - name: Create Release
|
||||
# uses: actions/create-release@v1
|
||||
# id: create_release
|
||||
# with:
|
||||
# draft: false
|
||||
# prerelease: false
|
||||
# # Ref will be tag in this context
|
||||
# release_name: ${{ github.ref_name }}
|
||||
# tag_name: ${{ github.ref_name }}
|
||||
# env:
|
||||
# GITHUB_TOKEN: ${{ github.token }}
|
||||
|
||||
# - name: Upload assembled CV
|
||||
# uses: actions/upload-release-asset@v1
|
||||
# env:
|
||||
# GITHUB_TOKEN: ${{ github.token }}
|
||||
# with:
|
||||
# upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
# asset_path: ./cv.pdf
|
||||
# asset_name: cv.pdf
|
||||
# asset_content_type: application/pdf
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
*.docx
|
||||
*.pages
|
||||
*.pdf
|
||||
|
||||
.env
|
||||
|
||||
### Latex gitignore
|
||||
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
set dotenv-load := true
|
||||
|
||||
test-act:
|
||||
# We remove the github instance as this tries to pull the actions from my
|
||||
# private git server instead of github, whereas gitea will default to github.
|
||||
# Gitea is becoming frustrating...
|
||||
# act --github-instance git.joshuacoles.me -s GITEA_ACT_TOKEN -s COM_DOT_GITHUB_TOKEN="$(gh auth token)" --container-architecture linux/amd64
|
||||
act -s GITEA_ACT_TOKEN -s COM_DOT_GITHUB_TOKEN="$(gh auth token)" --container-architecture linux/amd64
|
||||
|
||||
release name:
|
||||
git tag {{name}}
|
||||
git push origin --tags
|
||||
@@ -6,6 +15,4 @@ upload:
|
||||
scp main.pdf cosmos:infrastructure/caddy/files/cv.pdf
|
||||
|
||||
build:
|
||||
latexmk -pdf main.tex
|
||||
latexmk -c
|
||||
|
||||
tectonic cv.tex
|
||||
|
||||
@@ -4,3 +4,8 @@ My CV, for different applications slight alterations are made and releases cut w
|
||||
|
||||
A hosted version can be found at <https://files.joshuacoles.me/cv.pdf>
|
||||
|
||||
## Building
|
||||
|
||||
Currently the CV is built using [`tectonic`](https://tectonic-typesetting.github.io/en-US/) for a nicer build experience. This can be installed as described [here](https://tectonic-typesetting.github.io/en-US/install.html).
|
||||
|
||||
Commands are managed using the [Just runner](https://just.systems/).
|
||||
|
||||
+6
-5
@@ -48,7 +48,7 @@
|
||||
\usepackage{geometry} % Required for adjusting page dimensions and margins
|
||||
|
||||
\geometry{
|
||||
paper=a4paper, % Paper size, change to letterpaper for US letter size
|
||||
paper=a4paper,
|
||||
top=1.75cm, % Top margin
|
||||
bottom=1.75cm, % Bottom margin
|
||||
left=2cm, % Left margin
|
||||
@@ -56,7 +56,7 @@
|
||||
headheight=0.75cm, % Header height
|
||||
footskip=1cm, % Space from the bottom margin to the baseline of the footer
|
||||
headsep=0.5cm, % Space from the top margin to the baseline of the header
|
||||
%showframe, % Uncomment to show how the type block is set on the page
|
||||
% showframe, % Uncomment to show how the type block is set on the page
|
||||
}
|
||||
|
||||
%%%%%%%
|
||||
@@ -79,10 +79,11 @@
|
||||
% FontAwesome and Icon blocks
|
||||
%%%%%%%
|
||||
|
||||
\usepackage{fontawesome} % Required for FontAwesome icons
|
||||
\usepackage{fontawesome}
|
||||
|
||||
% Command to output an icon in a black square box with text to the right
|
||||
\newcommand{\icon}[3]{% The first parameter is the FontAwesome icon name, the second is the box size and the third is the text
|
||||
% The first parameter is the FontAwesome icon name, the second is the box size and the third is the text
|
||||
\newcommand{\icon}[3]{%
|
||||
\vcenteredhbox{\colorbox{Accent}{\makebox(#2, #2){\textcolor{white}{\large\csname fa#1\endcsname}}}}% Icon and box
|
||||
\hspace{0.2cm}% Whitespace
|
||||
\vcenteredhbox{\textcolor{black}{#3}}% Text
|
||||
@@ -209,7 +210,7 @@
|
||||
% Customised Helpers
|
||||
%%%%%%%
|
||||
|
||||
\newcommand{\slashsep}{\hspace{3mm}/\hspace{3mm}}
|
||||
\newcommand{\slashsep}{\hspace{2mm}/\hspace{2mm}}
|
||||
\newcommand{\emailaddr}[1]{\href{mailto:#1}{#1}}
|
||||
|
||||
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
|
||||
|
||||
+34
-14
@@ -1,13 +1,18 @@
|
||||
\cvsect{Experience}
|
||||
|
||||
\begin{entrylist}
|
||||
\entry
|
||||
{Present}
|
||||
{Software Developer}
|
||||
{Better Conversations Foundation}
|
||||
{After I have completed my degree I intend to return to the Better Conversations Foundation to continue the work I started the previous year as I look for a longer term role.}
|
||||
\entry
|
||||
{Academic\,Year 2023/24}
|
||||
{Final Year Project, AI Applications in Lagrangian Physics}
|
||||
{University of Bath}
|
||||
{My project focused on incorporating Lagrangian Mechanics into physics-informed neural networks. My key contributions include,
|
||||
\begin{itemize}[itemsep=-2pt,topsep=3pt]
|
||||
\item Writing the core physics procedures in JAX to improve correctness and to allow for their use in loss functions and reducing runtimes by $10^4$.
|
||||
\begin{itemize}[itemsep=-2pt,topsep=2pt]
|
||||
\item Writing the core physics procedures in JAX to improve correctness and to allow for their use in loss functions and reducing runtimes by a factor of $10^4$.
|
||||
\item Creating and optimising physics informed loss functions for speed and utility in training.
|
||||
\end{itemize}
|
||||
The completed report can be found \href{https://files.joshuacoles.me/final-year-report.pdf}{\underline{here}}.
|
||||
@@ -15,11 +20,21 @@
|
||||
\kwdlst{JAX, Neural Networks, Loss functions, Numpy, Flax, Tensorflow, Python}}
|
||||
\entry
|
||||
{Summer 2023}
|
||||
{Developer}
|
||||
{Software Developer}
|
||||
{Better Conversations Foundation}
|
||||
{Once I completed my work with Amphora, I moved to work at a connected non-profit, Better Conversations Foundation, working on their e-commerce and scheduling systems and initiating development on a real-time coaching flight-plan solution.
|
||||
\begin{itemize}[itemsep=-2pt,topsep=2pt]
|
||||
\item Implementing key components of purchase flows, scheduling, and participant management.
|
||||
\item Prototyping real-time coaching flight-plans to allow coordination between Facilitators as sessions progress
|
||||
\end{itemize}
|
||||
\kwdlst{Ruby on Rails,Stripe}}
|
||||
\entry
|
||||
{Summer 2023}
|
||||
{Software Developer}
|
||||
{Amphora}
|
||||
{I lead efforts exploring the feasibility and application of AI based features in the main product.
|
||||
\begin{itemize}[itemsep=-2pt,topsep=3pt]
|
||||
\item Implementing vector based search and retrieval-augmented generation into the application in a non-intrusive manner.
|
||||
\begin{itemize}[itemsep=-2pt,topsep=2pt]
|
||||
\item Integrating vector based search and retrieval-augmented generation into the application in a non-intrusive manner.
|
||||
\item Presenting work to customers and facilitating input on direction and feature fit.
|
||||
\end{itemize}
|
||||
\kwdlst{Langchain, Weaviate, Python}}
|
||||
@@ -27,22 +42,27 @@
|
||||
{2022 -- 2023\\{\footnotesize{part time}} \\\\2021 -- 2022\\\footnotesize{placement year}}
|
||||
{Software Developer}
|
||||
{Office for National Statistics}
|
||||
{For my placement I joined a team working on software for processing the results of the 2021 Census. After the end of my placement I was kept on to assist with the next phase of product development and solution design. Key contributions include,
|
||||
\begin{itemize}[itemsep=-2.5pt,topsep=3pt]
|
||||
{For my placement I joined a team working on software for processing the results of the 2021 Census. After the end of my placement I was kept on to assist with the next phase of product development and solution design. In this role I worked with sensitive data from the Census in isolated production environments and thus obtained SC clearance. Key contributions include,
|
||||
\begin{itemize}[itemsep=-2.5pt,topsep=2pt]
|
||||
\item Taking a leading role as release manager for the product and was heavily involved in requirements gathering for the new features.
|
||||
\item Developing tools for debugging and observability in sensitive production environments.
|
||||
\item Restructuring a core service to decrease code duplication and increase test \& type coverage.
|
||||
\item Designing solution architectures for future project development.
|
||||
\end{itemize}
|
||||
This role gave me an appreciation for how the interpersonal aspects of successful team are crucial for the overall success of a project. This was especially important when interfacing with the business side of the organisation on the direction of the project.\\
|
||||
\item Designing architectures for the next stage of the project to address additional business needs.
|
||||
\end{itemize}}
|
||||
% Split of ONS entry to keep CV on two pages.
|
||||
\entry
|
||||
{}
|
||||
{}
|
||||
{}
|
||||
{This role gave me an appreciation for how the interpersonal aspects of successful team are crucial for the overall success of a project. This was especially important when interfacing with the business side of the organisation on the direction of the project.\\
|
||||
\kwdlst{React, Express, Jest, Cypress, Redis, SQL, Postgres, HBase, Cloudera, Jenkins, Docker, Typescript, JavaScript, Linux, Microservices, Agile, Scrum}}
|
||||
\entry
|
||||
{2017 -- 2021\\\footnotesize{Holidays \& Part time}}
|
||||
{Software Developer}
|
||||
{Amphora}
|
||||
{I focused on independent exploration and investigation of new technologies.
|
||||
\begin{itemize}[itemsep=-2pt,topsep=3pt]
|
||||
\item Implementing and maintaining SAML based customer access mechanism for confidential documentation.
|
||||
{I worked independently to explore and investigate new technologies including and
|
||||
\begin{itemize}[itemsep=-2pt,topsep=2pt]
|
||||
\item Creating and maintaining SAML based customer access mechanism for confidential documentation.
|
||||
\item Designing subscription management product using Wordpress as a Headless CMS for presentation under multiple service offering.
|
||||
\end{itemize}
|
||||
\kwdlst{SAML, Groovy, Java, Ruby on Rails, Ruby}}
|
||||
@@ -51,7 +71,7 @@
|
||||
{Ongoing Personal Projects}
|
||||
{}
|
||||
{My latest personal projects are focused on data analysis on different aspects of my life. This is done with a strong focus on self-hosting and privacy, giving me experience running services across a range of computers. Key components include
|
||||
\begin{itemize}[itemsep=-2pt,topsep=3pt]
|
||||
\begin{itemize}[itemsep=-2pt,topsep=2pt]
|
||||
\item Self hosted Gitea and CI/CD for development.
|
||||
\item Centralised authentication.
|
||||
\item Centralised database for cross-domain analytics.
|
||||
|
||||
Reference in New Issue
Block a user