Compare commits
18
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4da253c8da | ||
|
|
392f1598a5 | ||
|
|
104800d1ce | ||
|
|
e1ebf69d47 | ||
|
|
450c0b5cc6 | ||
|
|
b0d6a33fd4 | ||
|
|
f7067f0491 | ||
|
|
8c2a9622a4 | ||
|
|
209b2e1e82 | ||
|
|
8163031f75 | ||
|
|
9c845035cd | ||
|
|
9ba05fade1 | ||
|
|
2a19c9d714 | ||
|
|
1c5fab6d8c | ||
|
|
c5a659f910 | ||
|
|
ae8ffba48f | ||
|
|
6f230b173e | ||
|
|
5f403ec950 |
+30
-22
@@ -3,7 +3,7 @@ name: Render LaTeX and Publish Release
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
tags:
|
||||||
- "*"
|
- "**"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -23,30 +23,38 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-tectonic-
|
${{ runner.os }}-tectonic-
|
||||||
|
|
||||||
- uses: wtfjoke/setup-tectonic@v3
|
- uses: joshuacoles/setup-tectonic@main
|
||||||
|
name: Setup Tectonic
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.COM_DOT_GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Run Tectonic
|
- name: Run Tectonic
|
||||||
run: tectonic cv.tex
|
run: tectonic cv.tex
|
||||||
|
|
||||||
- name: create Release
|
- name: Release
|
||||||
uses: actions/create-release@v1
|
uses: softprops/action-gh-release@v2
|
||||||
id: create_release
|
|
||||||
with:
|
with:
|
||||||
draft: false
|
files: |
|
||||||
prerelease: false
|
cv.pdf
|
||||||
# Ref will be tag in this context
|
|
||||||
release_name: ${{ github.ref }}
|
|
||||||
tag_name: ${{ github.ref }}
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ github.token }}
|
|
||||||
|
|
||||||
- name: Upload assembled CV
|
# - name: Create Release
|
||||||
uses: actions/upload-release-asset@v1
|
# uses: actions/create-release@v1
|
||||||
env:
|
# id: create_release
|
||||||
GITHUB_TOKEN: ${{ github.token }}
|
# with:
|
||||||
with:
|
# draft: false
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
# prerelease: false
|
||||||
asset_path: ./cv.pdf
|
# # Ref will be tag in this context
|
||||||
asset_name: cv.pdf
|
# release_name: ${{ github.ref_name }}
|
||||||
asset_content_type: application/pdf
|
# 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
|
*.docx
|
||||||
*.pages
|
*.pages
|
||||||
*.pdf
|
*.pdf
|
||||||
|
.env
|
||||||
|
|
||||||
### Latex gitignore
|
### Latex gitignore
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
|
set dotenv-load := true
|
||||||
|
|
||||||
test-act:
|
test-act:
|
||||||
act -s GITHUB_TOKEN="$(gh auth token)" --container-architecture linux/amd64
|
# 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:
|
release name:
|
||||||
git tag {{name}}
|
git tag {{name}}
|
||||||
|
|||||||
+6
-5
@@ -48,7 +48,7 @@
|
|||||||
\usepackage{geometry} % Required for adjusting page dimensions and margins
|
\usepackage{geometry} % Required for adjusting page dimensions and margins
|
||||||
|
|
||||||
\geometry{
|
\geometry{
|
||||||
paper=a4paper, % Paper size, change to letterpaper for US letter size
|
paper=a4paper,
|
||||||
top=1.75cm, % Top margin
|
top=1.75cm, % Top margin
|
||||||
bottom=1.75cm, % Bottom margin
|
bottom=1.75cm, % Bottom margin
|
||||||
left=2cm, % Left margin
|
left=2cm, % Left margin
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
headheight=0.75cm, % Header height
|
headheight=0.75cm, % Header height
|
||||||
footskip=1cm, % Space from the bottom margin to the baseline of the footer
|
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
|
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
|
% 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
|
% 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
|
\vcenteredhbox{\colorbox{Accent}{\makebox(#2, #2){\textcolor{white}{\large\csname fa#1\endcsname}}}}% Icon and box
|
||||||
\hspace{0.2cm}% Whitespace
|
\hspace{0.2cm}% Whitespace
|
||||||
\vcenteredhbox{\textcolor{black}{#3}}% Text
|
\vcenteredhbox{\textcolor{black}{#3}}% Text
|
||||||
@@ -209,7 +210,7 @@
|
|||||||
% Customised Helpers
|
% Customised Helpers
|
||||||
%%%%%%%
|
%%%%%%%
|
||||||
|
|
||||||
\newcommand{\slashsep}{\hspace{3mm}/\hspace{3mm}}
|
\newcommand{\slashsep}{\hspace{2mm}/\hspace{2mm}}
|
||||||
\newcommand{\emailaddr}[1]{\href{mailto:#1}{#1}}
|
\newcommand{\emailaddr}[1]{\href{mailto:#1}{#1}}
|
||||||
|
|
||||||
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
|
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
|
||||||
|
|||||||
+34
-14
@@ -1,13 +1,18 @@
|
|||||||
\cvsect{Experience}
|
\cvsect{Experience}
|
||||||
|
|
||||||
\begin{entrylist}
|
\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
|
\entry
|
||||||
{Academic\,Year 2023/24}
|
{Academic\,Year 2023/24}
|
||||||
{Final Year Project, AI Applications in Lagrangian Physics}
|
{Final Year Project, AI Applications in Lagrangian Physics}
|
||||||
{University of Bath}
|
{University of Bath}
|
||||||
{My project focused on incorporating Lagrangian Mechanics into physics-informed neural networks. My key contributions include,
|
{My project focused on incorporating Lagrangian Mechanics into physics-informed neural networks. My key contributions include,
|
||||||
\begin{itemize}[itemsep=-2pt,topsep=3pt]
|
\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 $10^4$.
|
\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.
|
\item Creating and optimising physics informed loss functions for speed and utility in training.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
The completed report can be found \href{https://files.joshuacoles.me/final-year-report.pdf}{\underline{here}}.
|
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}}
|
\kwdlst{JAX, Neural Networks, Loss functions, Numpy, Flax, Tensorflow, Python}}
|
||||||
\entry
|
\entry
|
||||||
{Summer 2023}
|
{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}
|
{Amphora}
|
||||||
{I lead efforts exploring the feasibility and application of AI based features in the main product.
|
{I lead efforts exploring the feasibility and application of AI based features in the main product.
|
||||||
\begin{itemize}[itemsep=-2pt,topsep=3pt]
|
\begin{itemize}[itemsep=-2pt,topsep=2pt]
|
||||||
\item Implementing vector based search and retrieval-augmented generation into the application in a non-intrusive manner.
|
\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.
|
\item Presenting work to customers and facilitating input on direction and feature fit.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\kwdlst{Langchain, Weaviate, Python}}
|
\kwdlst{Langchain, Weaviate, Python}}
|
||||||
@@ -27,22 +42,27 @@
|
|||||||
{2022 -- 2023\\{\footnotesize{part time}} \\\\2021 -- 2022\\\footnotesize{placement year}}
|
{2022 -- 2023\\{\footnotesize{part time}} \\\\2021 -- 2022\\\footnotesize{placement year}}
|
||||||
{Software Developer}
|
{Software Developer}
|
||||||
{Office for National Statistics}
|
{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,
|
{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=3pt]
|
\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 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 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 Restructuring a core service to decrease code duplication and increase test \& type coverage.
|
||||||
\item Designing solution architectures for future project development.
|
\item Designing architectures for the next stage of the project to address additional business needs.
|
||||||
\end{itemize}
|
\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.\\
|
% 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}}
|
\kwdlst{React, Express, Jest, Cypress, Redis, SQL, Postgres, HBase, Cloudera, Jenkins, Docker, Typescript, JavaScript, Linux, Microservices, Agile, Scrum}}
|
||||||
\entry
|
\entry
|
||||||
{2017 -- 2021\\\footnotesize{Holidays \& Part time}}
|
{2017 -- 2021\\\footnotesize{Holidays \& Part time}}
|
||||||
{Software Developer}
|
{Software Developer}
|
||||||
{Amphora}
|
{Amphora}
|
||||||
{I focused on independent exploration and investigation of new technologies.
|
{I worked independently to explore and investigate new technologies including and
|
||||||
\begin{itemize}[itemsep=-2pt,topsep=3pt]
|
\begin{itemize}[itemsep=-2pt,topsep=2pt]
|
||||||
\item Implementing and maintaining SAML based customer access mechanism for confidential documentation.
|
\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.
|
\item Designing subscription management product using Wordpress as a Headless CMS for presentation under multiple service offering.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\kwdlst{SAML, Groovy, Java, Ruby on Rails, Ruby}}
|
\kwdlst{SAML, Groovy, Java, Ruby on Rails, Ruby}}
|
||||||
@@ -51,7 +71,7 @@
|
|||||||
{Ongoing Personal Projects}
|
{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
|
{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 Self hosted Gitea and CI/CD for development.
|
||||||
\item Centralised authentication.
|
\item Centralised authentication.
|
||||||
\item Centralised database for cross-domain analytics.
|
\item Centralised database for cross-domain analytics.
|
||||||
|
|||||||
Reference in New Issue
Block a user