Compare commits

...

27 Commits

Author SHA1 Message Date
9a99d9db46 Stash 2025-03-24 16:55:05 +00:00
Joshua Coles
617b07318e Stash 2025-03-24 13:51:03 +00:00
2031d21be9 Stash 2025-03-23 16:37:07 +00:00
dd4b8da124 Stash 2025-03-23 10:35:31 +00:00
Joshua Coles
128bed7210 Stash 2025-03-21 15:32:21 +00:00
Joshua Coles
4dcf0e0612 Stash 2025-03-21 14:14:43 +00:00
Joshua Coles
843f73cf32 Stash 2025-03-21 14:06:01 +00:00
fb91eb6ad0 Initial changes 2025-02-23 17:12:49 +00:00
c5224451df Stash 2024-07-23 19:06:32 +01:00
8dd618459a LemonAI
All checks were successful
Render LaTeX and Publish Release / build (push) Successful in 2m25s
2024-07-23 11:56:47 +01:00
Joshua Coles
1dbd91159a Add graduating classification 2024-07-20 17:50:38 +01:00
9befe4adea Change wording 2024-06-17 13:22:10 +01:00
8987d0abf8 Cleanup header and add personal information protection 2024-06-17 13:20:03 +01:00
e94918354c Initial work on hiding sensitive info in public version 2024-06-17 13:13:55 +01:00
604a777c50 Submit application
All checks were successful
Render LaTeX and Publish Release / build (push) Successful in 25s
2024-06-08 18:45:39 +01:00
e7e99ca155 Stash 2024-06-08 18:17:58 +01:00
b7ef6b3ef6 Cleanup a little bit 2024-06-06 20:51:59 +01:00
90bc584b7e Make font work with tectonic 2024-06-06 20:46:12 +01:00
7885aa5b9f Okay I lied, split it up a little and add some comments
Next focus block is research key points
2024-06-06 19:55:51 +01:00
562f8b2cec Update email on CV and finish adapting cover template 2024-06-06 19:48:54 +01:00
4a5c40a51c Start to make edits 2024-06-06 19:05:04 +01:00
d7176ca32c Alter CV wording a little 2024-06-06 19:04:20 +01:00
68af3a24f6 Add initial cover letter template 2024-06-06 19:04:04 +01:00
b443e8d73b Remove PDFs 2024-06-06 18:45:05 +01:00
cf1037126f Make clear placement was between studies 2024-06-06 18:44:46 +01:00
e19574d9f2 Fix Justfile 2024-06-06 18:44:11 +01:00
24541d119d Split licenses and add to README 2024-06-05 20:29:36 +01:00
24 changed files with 685 additions and 235 deletions

View File

@ -12,7 +12,7 @@ release name:
git push origin --tags
upload:
scp main.pdf cosmos:infrastructure/caddy/files/cv.pdf
scp cv.pdf cosmos:infrastructure/caddy/files/cv.pdf
build:
tectonic cv.tex

22
LICENSE-TEMPLATE.md Executable file
View File

@ -0,0 +1,22 @@
Copyright (c) <2018> <Jan Vorisek>
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

23
LICENSE.md Executable file → Normal file
View File

@ -1,22 +1,7 @@
Copyright (c) <2018> <Jan Vorisek>
Copyright © 2024 Joshua Coles
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -8,4 +8,8 @@ A hosted version can be found at <https://files.joshuacoles.me/cv.pdf>
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/).
Commands are managed using the [Just runner](https://just.systems/), to build the CV run `just build`.
## License
The template used is licensed under the MIT license, see `LICENSE-TEMPLATE.md`, the content of the CV is licensed under the MIT license, see `LICENSE.md`.

View File

@ -0,0 +1,3 @@
Author: Sid Lacy
License: Creative Commons CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)
Source: Overleaf Template Gallery (https://www.overleaf.com/latex/templates/simple-cover-letter/jmkbrdnmxmbn)

View File

@ -0,0 +1,15 @@
I am writing to express my interest in the Software Developer role in Bristol. With a strong foundation in mathematics and physics from my degree, I have a deep appreciation for formal, rigorous methods and their applications to real world problems. I am excited by the opportunity to contribute to AdaCore's mission of helping developers build safe, secure, and reliable software.
I find that good, robust, tools are essential for efficient work everywhere, and creating them is a driving force for me. In my previous role at the Office for National Statistics, I took an active role in developing and improving the tools used by the team, in development and production. A key example of this was the debugging tool that I developed to assist in the analysis of issues in an isolated production environment dealing with sensitive data from the Census and other sources.
I worked across the entire application stack, from front-end to CI/CD and data ingestion, covering a range of technologies and contexts.
In addition, I leveraged my interpersonal skills to foster strong working relationships with colleagues, facilitating effective communication and collaboration across the team.
This adaptability allowed me to assist different developers as needed and brought cohesion to the team by providing a common perspective.
During this role, I also took on the responsibility of release manager, ensuring that the code quality and deadlines were met within a tight release schedule.
Throughout my programming journey, I have always been drawn to strongly typed languages, recognising their immense value in ensuring product quality and enhancing developer productivity.
I find the assurance these languages provide to be invaluable in catching potential issues early and promoting a more robust development process.
I firmly believe that moving verification earlier in the overall project development loop amplifies the benefits of this approach, leading to safer, more secure, and more reliable software systems.
I understand this conviction aligns well with Ada's design philosophy and AdaCore's commitment to empowering developers to prioritise these qualities. Having greatly enjoyed the rigorous and proof-driven aspects of my mathematics and physics education, I am excited by the prospect of working with Ada and contributing to the development of Alire.
With my strong technical background, a passion for developing reliable tools and deep appreciation for formal methods, I am confident that I can make a significant contribution to AdaCore as a Software Developer.
I am genuinely excited about the opportunity to join AdaCore and work on projects that align with my passion for creating impactful tools and promoting reliable software. Thank you for considering my application. I look forward to the opportunity to discuss further how my skills and experience can contribute to the success of AdaCore and the development of Alire.

View File

@ -0,0 +1,12 @@
% Closer
\vspace{0.1in}
\vfill
\begin{flushright}
\closer,
\ifthenelse{\boolean{include-signature}}{\vspace{-0.1in}\includegraphics[width=1.5in]{sig.png}\vspace{-0.1in}}{}
\myname\\
\mytitle
\end{flushright}

View File

View File

@ -0,0 +1,22 @@
% Shaded header banner
\AddToShipoutPictureBG{%
\color{TopBackground}
\AtPageUpperLeft{\rule[-\shadedheight]{\paperwidth}{\shadedheight}}
}
% Header
\begin{center}
{\fontsize{28}{0}\selectfont\scshape \myname}
\vspace{0.2cm}
\icon{MapMarker}{12}{Bath / Reading}
\hfill
\icon{Phone}{12}{\tel{+44 7564 199236}}
\hfill
\icon{At}{12}{\emailaddr{me@joshuacoles.me}}
\hfill
\icon{Github}{12}{\href{https://github.com/joshuacoles}{joshuacoles}}
% \icon{Linkedin}{12}{\href{https://www.linkedin.com/in/joshua-coles-a79498151/}{LinkedIn}}
\end{center}
\vspace{0.75cm}

View File

@ -0,0 +1,29 @@
%%%%
% Personal information
%%%%
\newcommand{\myname}{Joshua Coles}
\newcommand{\mytitle}{Applicant}
\newcommand{\myemail}{me@joshucoles.me}
\newcommand{\mylinkedin}{https://www.linkedin.com/in/joshua-coles-a79498151/}
\newcommand{\myphone}{+44 7564 199236}
\newcommand{\mylocation}{Bath / Reading, UK}
%%%%
% Company Information
%%%%
\newcommand{\recipient}{Hiring Manager}
\newcommand{\greeting}{Dear}
\newcommand{\closer}{Kind Regards}
\newboolean{include-signature}
\setboolean{include-signature}{false}
\newboolean{include-company-address}
\setboolean{include-company-address}{false}
\newcommand{\company}{AdaCore}
\newcommand{\companyaddress}{
1 Microsoft Way\\
Redmond, WA\ 98052}

View File

@ -0,0 +1,88 @@
\documentclass[11pt]{letter}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[empty]{fullpage}
\usepackage[hidelinks]{hyperref}
\usepackage{graphicx}
\usepackage{fontawesome}
\usepackage{eso-pic}
\usepackage[bitstream-charter]{mathdesign}
\usepackage{ifthen}
\usepackage{geometry}
\geometry{
paper=a4paper,
top=1cm,
bottom=1.25cm,
left=2cm,
right=2cm,
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
}
\newcommand{\shadedheight}{3.5cm}
\definecolor{TopBackground}{RGB}{225,225,225}
\definecolor{Accent}{HTML}{367DA2}
\input{info.tex}
\begin{document}
\newcommand{\emailaddr}[1]{\href{mailto:#1}{#1}}
\newcommand{\tel}[1]{\href{tel:#1}{#1}}
% Command to vertically centre adjacent content
\newcommand{\vcenteredhbox}[1]{% The only parameter is for the content to centre
\begingroup%
\setbox0=\hbox{#1}\parbox{\wd0}{\box0}%
\endgroup%
}
\newcommand{\icon}[3]{%
\vcenteredhbox{\colorbox{Accent}{\makebox(#2, #2){\textcolor{white}{\large\csname fa#1\endcsname}}}}% Icon and box
\hspace{0.2cm}% Whitespace
\vcenteredhbox{#3}% Text
}
%%%
% Header
%%%
\input{header.tex}
%%%
% Opening block
%%%
% Date
\today \\
% Address
\vspace{-0.1in}\recipient\\\company\\
\ifthenelse{\boolean{include-company-address}}
{\companyaddress\\}
{}
% Greeting
\vspace{-0.1in}
\greeting\ \recipient, \\
%%%
% Body
%%%
%\setlength\parskip{20pt}
\vspace{-0.1in}\setlength\parindent{0pt}
\noindent\input{body.tex}
%%%
% Closer
%%%
\input{closer.tex}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

92
cv.tex
View File

@ -1,92 +0,0 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This template originates from:
% http://www.LaTeXTemplates.com
%
% Authors:
% Jan Vorisek (jan@vorisek.me)
% Based on a template by Jan Küster (info@jankuester.com)
% Modified for LaTeX Templates by Vel (vel@LaTeXTemplates.com)
% Adapted for personal use by Joshua Coles (josh@coles.to)
%
% License:
% The MIT License (see included LICENSE file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[9pt]{developercv} % Default font size, values from 8-12pt are recommended
\definecolor{Accent}{HTML}{367DA2}
\definecolor{BarTitle}{HTML}{000000}
\definecolor{BarColor}{HTML}{000000}
\definecolor{SectTitleColor}{HTML}{367DA2}
\definecolor{EntryTitleColor}{HTML}{367DA2}
\usepackage{enumitem}
\usepackage{ifthen}
\begin{document}
\input{header.tex}
\cvsect{Who Am I?}
\begin{minipage}[t]{0.6\textwidth}
\vspace{-\baselineskip} % Required for vertically aligning minipages
Software Development is a profession and a hobby.
% I have been working with software for over 10 years with problems and technologies.
My drive over 10 years as always been addressing real problems that I encounter with the tools to hand — treating specific technologies as secondary to understanding the organisational context of the problem.
In my work at the ONS, I was responsible for software delivery, helping to manage a large team of contributors under a tight timeframe.
% Typing trailer:
Throughout my work I have developed a love and appreciation for strongly typed languages and maximising the compile-time assurance that can be achieved. This has consistently paid dividends in greater development velocity, and the elimination of issues before shipping.
% AI trailer:
% My recent work surrounding AI has shown me its use in solving otherwise intractable problems and providing insight into unstructured data and, I am excited to explore its further applications.
\end{minipage}
\hfill
\begin{minipage}[t]{0.35\textwidth}
\vspace{-\baselineskip} % Required for vertically aligning minipages
\begin{barchart}{4}
\baritem{Typescript}{80}
\baritem{React}{70}
\baritem{Rust}{70}
\baritem{Python}{60}
\baritem{Git}{80}
% \baritem{Ruby}{75}
\baritem{Scala}{60}
\end{barchart}
\end{minipage}
%
% Experiences
%
\input{experiences.tex}
%%%%%%%%%%%%%
% EDUCATION
%%%%%%%%%%%%%
\input{education.tex}
%%%%%%%%%%%%%%%%%%%%%%%%%%
% ADDITIONAL INFORMATION
%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{minipage}[t]{0.5\textwidth}
\vspace{-\baselineskip} % Required for vertically aligning minipages
\cvsect{ADDITIONAL QUALIFICATIONS AND TRAINING}
\href{https://betterconversations.foundation/index.html}{\underline{Better Conversations}} — 2022 \\
ISO9001 and ISO27001 training — 2018
\end{minipage}
\hfill
\begin{minipage}[t]{0.5\textwidth}
\vspace{-\baselineskip} % Required for vertically aligning minipages
\cvsect{Interests}
Long distance running; politics and governance and the applications of technology therein; committee member of Philosophy Society at University.
\end{minipage}
\input{references.tex}
\end{document}

250
cv2.typ Normal file
View File

@ -0,0 +1,250 @@
#import "@preview/fontawesome:0.5.0": *
#let accent = rgb("#367DA2")
#let bar_color = rgb("#1C2331")
#let bar_title_color = rgb("#1C2331")
#let sect_title_color = accent
#let entry_title_color = accent
#let icon(name, size, content) = {
box(
fill: accent,
inset: 4pt,
box(
width: size,
height: size,
text(white, size: size, align(center + horizon)[#fa-icon(name, solid: true)])
)
)
h(0.2cm)
box(
content,
baseline: -0.5em
)
}
#let kwlist(..args) = {
text(font: "Courier", args.pos().join(" / "))
}
#show(heading.where(level: 2)): it => {
// v(-2pt)
box(
fill: sect_title_color,
inset: 3pt,
text(white, upper(it))
)
// v(-4pt)
}
#let entry(date, title, subtitle, content) = {
grid(
columns: (15%, 1fr),
date,
{
text(weight: "bold", title)
h(1fr)
text(size: 0.9em, weight: "bold", subtitle)
linebreak()
content
}
)
v(12pt)
}
#set document(author: "Joshua Coles", title: "CV")
#set page(margin: (x: 2cm, y: 1.75cm), paper: "a4")
#set text(font: "Raleway", size: 9pt)
#set par(spacing: 1.1em)
// Header
#grid(
columns: (45%, 27.5%, 27.5%),
{
stack(
box(fill: accent, inset: (x: 3pt, y: 3pt))[
#text(white, weight: "bold", size: 28pt, "JOSHUA")
],
v(1pt),
box(fill: accent, inset: (x: 3pt, y: 3pt))[
#text(white, weight: "bold", size: 28pt, "COLES")
],
v(1em),
text(size: 16pt)[Senior Full-stack Developer]
)
},
{
stack(
spacing: 1pt,
icon("location-dot", 1em, "Bath / Reading"),
icon("phone", 1em, "+44 7564 199236"),
icon("at", 1em, link("mailto:me@joshuacoles.me")[me\@joshuacoles.me])
)
},
{
stack(
spacing: 1pt,
icon("earth", 1em, link("https://git.joshuacoles.me/explore/repos")[Personal Gitea]),
icon("github", 1em, link("https://github.com/joshuacoles")[github.com/joshuacoles]),
icon("linkedin", 1em, link("https://www.linkedin.com/in/joshua-coles-a79498151/")[LinkedIn])
)
}
)
== Who am I?
#grid(
columns: (90%),
{
[A passionate and adaptable software engineer with a strong focus on high-quality, maintainable solutions. I thrive on understanding the business and organisational context, ensuring that technical solutions align with real-world needs.
My approach is to focus on effective communication, problem-solving, and collaborative learning.
In my recent experience I led the development of a real-time web application, collaborating closely with users to continuously evolve the product where I have developed a love and appreciation for correct solutions that respect their user and customers. /*I am excited about the opportunity to work with a collaborative, ambitious team like Ghyston's where I can contribute my experience while continuing to grow as an engineer.*/]
},
)
// Experience section
== Experience
#entry(
[2024 -- Present],
[Lead Software Engineer],
[Better Conversations Foundation / Amphora Research Systems Ltd.],
[
I work across Amphora and the non-profit Foundation (sister organisations)
- Leading development of a real-time web application to reliably scale training sessions to large audiences and faciliate reliable team delivery. This has lead to at least a 5 fold increase in authoring productivity, with user's voluntarily adopting the product to deliver sessions.
- Working with the two co-founders and the Foundation's partners to understand their needs and translate them into technical solutions.
- Supporting junior developers through hands-on mentorship, improving their confidence and ability to solve technical problems over a 6 month period.
- Delivering training to the senior leadership team of a key multi-national business client based in Australia. This allowed me to quickly identify issues and iterate the product on a daily basis -- this short cycle time meant the technical solutions could quickly track changing business needs and grow confidence in the product.
- Implementing Model Context Protocol (MCP) for Amphora's SaaS product and tool calling for a novel distributed LLM inference engine, deployed over a cluster of macOS nodes. This involved working with a 3rd party project to develop a business relationship, to align our goals, and contribute our work back to the core Github project.
#kwlist("Ruby on Rails", "Ruby", "Turbo", "Stimulus JS", "Tailwind CSS", "iOS", "Python", "LLMs", "Project Management", "Mentorship")
]
)
#entry(
[May 2023 -- October 2023],
[Software Developer],
[Better Conversations Foundation / Amphora Research Systems Ltd.],
[
I lead efforts exploring the feasibility and application of AI based features in the main product.
- Integrating vector based search and retrieval-augmented generation into the application in a non-intrusive manner.
- Presenting work to customers and facilitating input on direction and feature fit.
Once I completed my work with Amphora, I moved to work at a connected non-profit, Better Conversations Foundation as their primary developer.
- Implementing the e-commerce and scheduling systems for managing cohorts and staff.
- Prototyping real-time coaching flight-plans to allow coordination between Facilitators as sessions progress
#kwlist("Ruby on Rails", "Stripe", "Langchain", "Vector Databases", "Python")
]
)
// #pagebreak()
#entry(
[
2022 -- 2023#linebreak()#text(size: 0.8em)[part time aside studies]#linebreak()
2021 -- 2022#linebreak()#text(size: 0.8em)[placement year]
],
[Software Developer],
[Office for National Statistics],
[
I joined a team developing software for processing the results of the 2021 Census, remaining after my placement year 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,
- Taking a leading role as release manager for the product, coordinating the work of the team ensuring we delivered working code on time.
- Working closely with the business product owner to understand the business needs and translate them into technical solutions, being heavily involved in requirements gathering for the new features.
- Developing tools for debugging and observability in sensitive production environments, greatly increasing the our ability to diagnose production issues quickly.
- Designing architectures for the next stage of the project to address additional business needs, focusing on a cloud-based solution using GCP and Terraform.
// 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 wider organisation on the direction of the project.
#kwlist("React", "Redux", "Jest", "Cypress", "Accessibility", "Redis", "Express", "SQL", "Postgres", "HBase", "Scala", "Cloudera", "Jenkins", "Docker", "Typescript", "JavaScript", "Linux", "Microservices", "Agile", "Scrum", "Terraform", "GCP")
]
)
#entry(
[
2017 -- 2021
#linebreak()
#text(size: 0.8em)[Holidays & Part time]
],
[Software Developer],
[Amphora Research Systems Ltd.],
[
I worked independently to explore and investigate new technologies including,
- Creating and maintaining SAML based customer access mechanism for confidential documentation.
- Designing subscription management product using Wordpress as a Headless CMS for presentation under multiple service offering.
#kwlist("SAML", "Groovy", "Java", "Ruby on Rails", "Ruby")
]
)
#entry(
[2011 — present],
[Ongoing Personal Projects],
[],
[
I have been working on personal projects since 2011 and am a strong advocate for the benefits of self-hosting for privacy and personal development. My latest projects are focused on linking and analysing data across different aspects of my life. Recent work includes:
- React based frontend for joining multiple time tracking systems to provide a unified view of my work.
- Database and platform for cross-domain analytics in my life, involving data extraction and linkage across a range of sources, creating integrations where they don't exist.
- Managing multiple servers and 15+ services with live monitoring and log and metrics aggregation.
A history of these is available on my #link("https://github.com/joshuacoles")[GitHub] and #link("https://git.joshuacoles.me/explore/repos")[personal Gitea].//, along with this #link("https://git.joshuacoles.me/joshuacoles/cv")[CV and build process].
#kwlist("Rust", "Python", "ETL", "CI/CD", "Github actions", "Postgres", "Caddy", "Docker", "Prometheus", "Grafana", "System administration")
]
)
// Education section
== Education
#v(-1.3em * 2)
#entry(
[],
[MSc Mathematics and Physics (Hons) (with Industrial Placement)],
[University of Bath],
[1st Class Honours. Placement with the ONS between academic years 2 and 3.
#linebreak()
Dissertation: AI Applications in Lagrangian Physics
]
)
#v(-1em)
#entry(
[],
[Prior Qualifications],
[Reading Blue Coat School],
[
A Levels: Maths (A\*); Further Maths (A\*); Physics (A); Chemistry (A)
GCSEs: 1 A\* with distinction, 8 A\*s, 2 A's, 1 B. Including A\* with distinction in Further Maths, A\*s in Maths, Sciences, English and Computing.
]
)
// Additional sections at bottom
#grid(
columns: (1fr, 1fr),
{
v(8pt)
box(
fill: sect_title_color,
inset: (x: 3pt, y: 2pt),
text(white, weight: "bold", upper("Additional Qualifications and Training"))
)
v(5pt)
[#link("https://betterconversations.foundation/index.html")[Better Conversations] — 2022]
linebreak()
[ISO9001 and ISO27001 training — 2018]
},
{
v(8pt)
box(
fill: sect_title_color,
inset: (x: 3pt, y: 2pt),
text(white, weight: "bold", upper("Interests"))
)
v(5pt)
[Long distance running; politics and governance and the applications of technology therein.]
}
)
== References
Available upon request

View File

@ -1,81 +0,0 @@
\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=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}}.
\\
\kwdlst{JAX, Neural Networks, Loss functions, Numpy, Flax, Tensorflow, Python}}
\entry
{Summer 2023}
{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=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}}
\entry
{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. 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 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 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}}
\entry
{2011 — present}
{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=2pt]
\item Self hosted Gitea and CI/CD for development.
\item Centralised authentication.
\item Centralised database for cross-domain analytics.
\end{itemize}
A history of these is available on my \href{https://github.com/joshuacoles}{\underline{GitHub}} or \href{https://git.joshuacoles.me/explore/repos}{\underline{personal Gitea}}, along with this \href{https://git.joshuacoles.me/joshuacoles/cv}{\underline{CV and build process}}.
\\\kwdlst{Rust, CI/CD, Postgres, Caddy, Docker, System administration of internet connected servers}}
\end{entrylist}

Binary file not shown.

View File

@ -1,33 +0,0 @@
\begin{minipage}[t]{0.45\textwidth} % 45% of the page width for name
\vspace{-\baselineskip} % Required for vertically aligning minipages
% If your name is very short, use just one of the lines below
% If your name is very long, reduce the font size or make the minipage wider and reduce the others proportionately
\colorbox{Accent}{{\HUGE\textcolor{white}{\textbf{\MakeUppercase{Joshua}}}}} % First name
\colorbox{Accent}{{\HUGE\textcolor{white}{\textbf{\MakeUppercase{Coles}}}}} % Last name
\vspace{6pt}
{\huge Full-stack Developer} % Career or current job title
\end{minipage}
\begin{minipage}[t]{0.275\textwidth} % 27.5% of the page width for the first row of icons
\vspace{-\baselineskip} % Required for vertically aligning minipages
% The first parameter is the FontAwesome icon name, the second is the box size and the third is the text
% Other icons can be found by referring to fontawesome.pdf (supplied with the template) and using the word after \fa in the command for the icon you want
\icon{MapMarker}{12}{Bath / Reading}\\
\icon{Phone}{12}{+44 7564 199236}\\
\icon{At}{12}{\emailaddr{josh@coles.to}}\\
\end{minipage}
\begin{minipage}[t]{0.275\textwidth} % 27.5% of the page width for the second row of icons
\vspace{-\baselineskip} % Required for vertically aligning minipages
% The first parameter is the FontAwesome icon name, the second is the box size and the third is the text
% Other icons can be found by referring to fontawesome.pdf (supplied with the template) and using the word after \fa in the command for the icon you want
\icon{Globe}{12}{\href{https://git.joshuacoles.me/explore/repos}{Personal Gitea}}\\
\icon{Github}{12}{\href{https://github.com/joshuacoles}{github.com/joshuacoles}}\\
\icon{Linkedin}{12}{\href{https://www.linkedin.com/in/joshua-coles-a79498151/}{LinkedIn}}\\
\end{minipage}
\vspace{0.5cm}

BIN
main.pdf

Binary file not shown.

110
old-cv/cv.tex Executable file
View File

@ -0,0 +1,110 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This template originates from:
% http://www.LaTeXTemplates.com
%
% Authors:
% Jan Vorisek (jan@vorisek.me)
% Based on a template by Jan Küster (info@jankuester.com)
% Modified for LaTeX Templates by Vel (vel@LaTeXTemplates.com)
% Adapted for personal use by Joshua Coles (josh@coles.to)
%
% License:
% The MIT License (see included LICENSE file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[9pt]{developercv} % Default font size, values from 8-12pt are recommended
\definecolor{Accent}{HTML}{367DA2}
\definecolor{BarTitle}{HTML}{000000}
\definecolor{BarColor}{HTML}{000000}
\definecolor{BarTitle}{HTML}{1C2331}
\definecolor{BarColor}{HTML}{1C2331}
\definecolor{SectTitleColor}{HTML}{367DA2}
\definecolor{EntryTitleColor}{HTML}{367DA2}
\usepackage{enumitem}
\usepackage{ifthen}
% Enable to disable litigates for ATS
%\usepackage{microtype}
%\DisableLigatures{encoding = *, family = *}
\newboolean{include-sensitive}
\setboolean{include-sensitive}{true}
\begin{document}
\input{header.tex}
\cvsect{Who Am I?}
\begin{minipage}[t]{0.8\textwidth}
\vspace{-\baselineskip} % Required for vertically aligning minipages
% Working in the domain for over 10 years, software engineering is a profession and a passion.
I am a passionate and adaptable software engineer with a strong focus on delivering high-quality, maintainable solutions. With experience across a range of technologies and industries, I thrive on understanding the business and organisational context behind software, ensuring that technical solutions align with real-world needs.
I believe that effective communication, problem-solving, and a willingness to continuously learn and adapt are key to delivery effective solutions.
% Working in the domain for over 10 years software engineering is a profession and a passion. My drive throughout has been to understand the business and organisational context of the problem, as the most important component of any technical solution.
% I have been working with software for over 10 years with problems and technologies.
% My drive over 10 years has always been addressing real problems that I encounter with the tools to hand — treating specific technologies as secondary to understanding the organisational context of the problem.
Through my work at Better Conversations Foundation, I led the development of a real-time web application, collaborating closely with users to continuously evolve the product where
% In my work at the ONS, I was responsible for software delivery, helping to manage a large team of contributors under a tight timeframe.
% Combined
I have developed a love and appreciation for correct solutions that respect their user and customers. I am excited about the opportunity to work with a collaborative, ambitious team like Ghystons where I can contribute my experience while continuing to grow as an engineer.
%am excited to see how AI can enhance this mission in otherwise intractable domains.
% Typing trailer:
% Throughout my work I have developed a love and appreciation for strongly typed languages and maximising the compile-time assurance that can be achieved. This has consistently paid dividends in greater development velocity, and the elimination of issues before shipping.
% AI trailer:
% My recent work surrounding AI has shown me its use in solving otherwise intractable problems and providing insight into unstructured data and, I am excited to explore its further applications.
\end{minipage}
\hfill
%\begin{minipage}[t]{0.275\textwidth}
% \vspace{-3\baselineskip} % Required for vertically aligning minipages
% \colorbox{SectTitleColor}{\textcolor{white}{\MakeUppercase{\textbf{Proficiency}}}}
% \vspace{0.5\baselineskip}
% \begin{barchart}{3}
% \baritem{Typescript}{80}
% \baritem{React}{70}
% \baritem{Rust}{70}
% \baritem{Python}{60}
% \baritem{Git}{80}
% \baritem{Ruby}{75}
% \baritem{SQL}{60}
% \end{barchart}
%\end{minipage}
%
% Experiences
%
\input{experiences.tex}
%%%%%%%%%%%%%
% EDUCATION
%%%%%%%%%%%%%
\input{education.tex}
%%%%%%%%%%%%%%%%%%%%%%%%%%
% ADDITIONAL INFORMATION
%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{minipage}[t]{0.5\textwidth}
\vspace{-\baselineskip} % Required for vertically aligning minipages
\cvsect{ADDITIONAL QUALIFICATIONS AND TRAINING}
\href{https://betterconversations.foundation/index.html}{\underline{Better Conversations}} — 2022 \\
ISO9001 and ISO27001 training — 2018
\end{minipage}
\hfill
\begin{minipage}[t]{0.5\textwidth}
\vspace{-\baselineskip} % Required for vertically aligning minipages
\cvsect{Interests}
Long distance running; politics and governance and the applications of technology therein; previous committee member of Philosophy Society at University.
\end{minipage}
\input{references.tex}
\end{document}

View File

@ -191,7 +191,7 @@
\end{longtable}
}
% First argument for the leftmost date(s) text,
% First argument for the leftmost date(s) texct,
% Second is for the bold entry heading
% Third is for the bold right-aligned entry qualifier
%Fourth is for the entry description

View File

@ -1,14 +1,17 @@
\cvsect{Education}
\newboolean{include-education-dates}
\setboolean{include-education-dates}{true}
\begin{entrylist}
\entry
{2019 -- 2024}
{MSc Mathematics and Physics (Hons)}
{\hfill}
{MSc Mathematics and Physics (Hons) (Sandwich)}
{University of Bath}
{Expected classification: 2:1}
{1st Class Honours. Placement with the ONS between academic years 2 and 3.}
\entry
{Graduated 2019}
{Prior Qualifications, Graduating 2019}
{\hfill}
{Prior Qualifications}
{Reading Blue Coat School}
{4 A Levels: A* Maths, A Further Maths, A Physics, A Chemistry\\
GCSEs: 1 A* with distinction, 8 A*s, 2 As, 1 B. Including A* with distinction in Further Maths, A*s in Maths, Sciences, English and Computing.}

80
old-cv/experiences.tex Normal file
View File

@ -0,0 +1,80 @@
\cvsect{Experience}
\begin{entrylist}
\entry
{Present}
{Lead Software Engineer}
{Better Conversations Foundation}
{Returning to the foundation after my degree I have focused on:
\begin{itemize}[itemsep=-2pt,topsep=2pt]
\item End-to-End Product Delivery: I lead the development of a real-time web application for delivering coaching session to large audiences, from initial concept to full-scale product, engaging frequently with users and continuously evolving it to meet fast-evolving business needs.
\item Support the professional growth of junior developers through hands-on mentorship and guidance.
\item Spearheaded further AI work, including Model Context Protocol support and significant contributions to FOSS software projects to enable AI use in security-sensitive environments.
\item Producing a course for a high profile business cohort based in Oceana.
\end{itemize}
\kwdlst{Ruby on Rails, Ruby, Turbo, Stimulus, iOS, Project Management, Mentorship}}
\entry
{Final Year}
{Dissertation Project, AI Applications in Lagrangian Physics}
{University of Bath}
{My dissertation focused on incorporating Lagrangian Mechanics into physics-informed neural networks. My key contributions include,
\begin{itemize}[itemsep=-2pt,topsep=2pt]
\item Creating and optimising the core physics procedures in JAX to improve correctness compared to legacy implementations; allow for their use in loss functions; and reducing runtimes by a factor of $10^4$.
\item Researching, designing, and validating training methods.
\end{itemize}
The completed report can be found \href{https://files.joshuacoles.me/final-year-report.pdf}{\underline{here}}.
\\
\kwdlst{JAX, Neural Networks, Machine Learning, AI, Numpy, Flax, Tensorflow, Keras, Python}}
\entry
{Summer 2023}
{Software Developer}
{Better Conversations Foundation \& Amphora}
{
I lead efforts exploring the feasibility and application of AI based features in the main product.
\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}
Once I completed my work with Amphora, I moved to work at a connected non-profit, Better Conversations Foundation as their primary developer.%, 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 the e-commerce and scheduling systems for managing cohorts and staff.
\item Prototyping real-time coaching flight-plans to allow coordination between Facilitators as sessions progress
\end{itemize}
\kwdlst{Ruby on Rails, Stripe, Langchain, Vector Databases, Python}}
\entry
{2022 -- 2023\\{\footnotesize{part time aside studies}} \\\\2021 -- 2022\\\footnotesize{placement year}}
{Software Developer}
{Office for National Statistics}
{I joined a team working designing and developing 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, greatly increasing the our ability to diagnose production issues quickly.
% \item Restructuring a core service to decrease code duplication and increase test \& type coverage.
\item Designing architectures for the next stage of the project to address additional business needs.
\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 wider organisation on the direction of the project.\\
\kwdlst{React, Redux, Express, Jest, Cypress, Redis, SQL, Postgres, HBase, Scala, Cloudera, Jenkins, Docker, Typescript, JavaScript, Linux, Microservices, Agile, Scrum}}
\entry
{2017 -- 2021\\\footnotesize{Holidays \& Part time}}
{Software Developer}
{Amphora}
{I worked independently to explore and investigate new technologies including,
\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}}
\entry
{2011 — present}
{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. Recent work includes:
\begin{itemize}[itemsep=-2pt,topsep=2pt]
\item AI based techniques for recipe extraction.
\item Database and platform for cross-domain analytics in my life.
\item ETL pipelines focused on breaking down data-silos.
\item Hosted across multiple servers with live monitoring and log and metrics aggregation.
\end{itemize}
A history of these is available on my \href{https://github.com/joshuacoles}{\underline{GitHub}} or \href{https://git.joshuacoles.me/explore/repos}{\underline{personal Gitea}}, along with this \href{https://git.joshuacoles.me/joshuacoles/cv}{\underline{CV and build process}}.
\\\kwdlst{Rust, Python, ETL, CI/CD, Github actions, Postgres, Caddy, Docker, Prometheus, Grafana, System administration}}
\end{entrylist}

33
old-cv/header.tex Normal file
View File

@ -0,0 +1,33 @@
\begin{minipage}[t]{0.45\textwidth}
\vspace{-\baselineskip}
\colorbox{Accent}{{\HUGE\textcolor{white}{\textbf{\MakeUppercase{Joshua}}}}}
\colorbox{Accent}{{\HUGE\textcolor{white}{\textbf{\MakeUppercase{Coles}}}}}
\vspace{6pt}
{\huge Full-stack Developer}
\end{minipage}
\begin{minipage}[t]{0.275\textwidth}
\vspace{-\baselineskip}
\ifthenelse{\boolean{include-sensitive}}{%
\icon{MapMarker}{12}{Bath / Reading}\\
\icon{Phone}{12}{+44 7564 199236}\\
\icon{At}{12}{\emailaddr{me@joshuacoles.me}}\\
}{%
\icon{MapMarker}{12}{South England}\\
\icon{At}{12}{{me at this domain}}\\\\
Personal information \\ omitted in web version
}
\end{minipage}
\begin{minipage}[t]{0.275\textwidth}
\vspace{-\baselineskip}
\icon{Globe}{12}{\href{https://git.joshuacoles.me/explore/repos}{Personal Gitea}}\\
\icon{Github}{12}{\href{https://github.com/joshuacoles}{github.com/joshuacoles}}\\
\icon{Linkedin}{12}{\href{https://www.linkedin.com/in/joshua-coles-a79498151/}{LinkedIn}}\\
\end{minipage}
\vspace{0.5cm}

View File

@ -1,9 +1,9 @@
\cvsect{References}
\newboolean{include-references}
\setboolean{include-references}{true}
\setboolean{include-references}{false}
\ifthenelse{\boolean{include-references}}
\ifthenelse{\boolean{include-references} \AND \boolean{include-sensitive}}
{
\begin{entrylist}
\entry