Compare commits
	
		
			3 Commits
		
	
	
		
			fb91eb6ad0
			...
			128bed7210
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 128bed7210 | ||
|  | 4dcf0e0612 | ||
|  | 843f73cf32 | 
							
								
								
									
										44
									
								
								cv.tex
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								cv.tex
									
									
									
									
									
								
							| @ -25,6 +25,10 @@ | |||||||
| \usepackage{enumitem} | \usepackage{enumitem} | ||||||
| \usepackage{ifthen} | \usepackage{ifthen} | ||||||
| 
 | 
 | ||||||
|  | % Enable to disable litigates for ATS | ||||||
|  | %\usepackage{microtype} | ||||||
|  | %\DisableLigatures{encoding = *, family = *} | ||||||
|  | 
 | ||||||
| \newboolean{include-sensitive} | \newboolean{include-sensitive} | ||||||
| \setboolean{include-sensitive}{true} | \setboolean{include-sensitive}{true} | ||||||
| 
 | 
 | ||||||
| @ -34,33 +38,39 @@ | |||||||
| 
 | 
 | ||||||
| \cvsect{Who Am I?} | \cvsect{Who Am I?} | ||||||
| 
 | 
 | ||||||
| \begin{minipage}[t]{0.6\textwidth} | \begin{minipage}[t]{0.8\textwidth} | ||||||
| 	\vspace{-\baselineskip} % Required for vertically aligning minipages | 	\vspace{-\baselineskip} % Required for vertically aligning minipages | ||||||
| 	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. | %	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. | %	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. | %	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. | ||||||
| 	In my work at the ONS, I was responsible for software delivery, helping to manage a large team of contributors under a tight timeframe. | 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 | % Combined | ||||||
| I have developed a love and appreciation for correct solutions that respect their user and customers and am excited to see how AI can enhance this mission in otherwise intractable domains. | 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. | ||||||
|  | %am excited to see how AI can enhance this mission in otherwise intractable domains. | ||||||
| % Typing trailer: | % 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. | %	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: | % 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. | %	 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} | 	 \end{minipage} | ||||||
| \hfill | \hfill | ||||||
| \begin{minipage}[t]{0.35\textwidth} | %\begin{minipage}[t]{0.275\textwidth} | ||||||
| 	\vspace{-3\baselineskip} % Required for vertically aligning minipages | %	\vspace{-3\baselineskip} % Required for vertically aligning minipages | ||||||
| 	\colorbox{SectTitleColor}{\textcolor{white}{\MakeUppercase{\textbf{Proficiency}}}} | %	\colorbox{SectTitleColor}{\textcolor{white}{\MakeUppercase{\textbf{Proficiency}}}} | ||||||
| 	\begin{barchart}{4} | %	\vspace{0.5\baselineskip} | ||||||
| 		\baritem{Typescript}{80} | %	\begin{barchart}{3} | ||||||
| 		\baritem{React}{70} | %		\baritem{Typescript}{80} | ||||||
| 		\baritem{Rust}{70} | %		\baritem{React}{70} | ||||||
| 		\baritem{Python}{60} | %		\baritem{Rust}{70} | ||||||
| 		\baritem{Git}{80} | %		\baritem{Python}{60} | ||||||
| 		\baritem{Ruby}{75} | %		\baritem{Git}{80} | ||||||
| %		\baritem{Scala}{60} | %		\baritem{Ruby}{75} | ||||||
| 	\end{barchart} | %		\baritem{SQL}{60} | ||||||
| \end{minipage} | %	\end{barchart} | ||||||
|  | %\end{minipage} | ||||||
| 
 | 
 | ||||||
| % | % | ||||||
| % Experiences | % Experiences | ||||||
|  | |||||||
							
								
								
									
										254
									
								
								cv2.typ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										254
									
								
								cv2.typ
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,254 @@ | |||||||
|  | #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 | ||||||
|  |   ) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #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: (17.5%, 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)[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%), | ||||||
|  |   { | ||||||
|  |     [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. | ||||||
|  |     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 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( | ||||||
|  |   "Present", | ||||||
|  |   "Lead Software Engineer", | ||||||
|  |   "Better Conversations Foundation", | ||||||
|  |   [ | ||||||
|  |     Returning to the foundation after my degree I have focused on: | ||||||
|  |     - End-to-End Product Delivery: I lead the development of a real-time web application for delivering coaching session to large audiences | ||||||
|  |     - Support the professional growth of junior developers through hands-on mentorship | ||||||
|  |     - Spearheaded further AI work, including Model Context Protocol support | ||||||
|  |     - Producing a course for a high profile business cohort in Oceana | ||||||
|  | 
 | ||||||
|  |     #text(font: "Courier")[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, | ||||||
|  |     - 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$. | ||||||
|  |     - Researching, designing, and validating training methods. | ||||||
|  |      | ||||||
|  |     The completed report can be found #link("https://files.joshuacoles.me/final-year-report.pdf")[here]. | ||||||
|  |      | ||||||
|  |     #text(font: "Courier")[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. | ||||||
|  |     - 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 | ||||||
|  |      | ||||||
|  |     #text(font: "Courier")[Ruby on Rails / Stripe / Langchain / Vector Databases / Python] | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | #entry( | ||||||
|  |   [ | ||||||
|  |     2022 -- 2023#linebreak()#text(size: 0.8em)[part time aside studies] | ||||||
|  |     2021 -- 2022#linebreak()#text(size: 0.8em)[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, | ||||||
|  |     - Taking a leading role as release manager for the product and was 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. | ||||||
|  |      | ||||||
|  |     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. | ||||||
|  |      | ||||||
|  |     #text(font: "Courier")[React / Redux / Express / Jest / Cypress / Redis / SQL / Postgres / HBase / Scala / Cloudera / Jenkins / Docker / Typescript / JavaScript / Linux / Microservices / Agile / Scrum] | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | #entry( | ||||||
|  |   [ | ||||||
|  |     2017 -- 2021 | ||||||
|  |     #linebreak() | ||||||
|  |     #text(size: 0.8em)[Holidays & Part time] | ||||||
|  |   ], | ||||||
|  |   [Software Developer], | ||||||
|  |   [Amphora], | ||||||
|  |   [ | ||||||
|  |     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. | ||||||
|  |      | ||||||
|  |     #text(font: "Courier")[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: | ||||||
|  |     - AI based techniques for recipe extraction. | ||||||
|  |     - Database and platform for cross-domain analytics in my life. | ||||||
|  |     - ETL pipelines focused on breaking down data-silos. | ||||||
|  |     - Hosted across multiple servers with live monitoring and log and metrics aggregation. | ||||||
|  |      | ||||||
|  |     A history of these is available on my #link("https://github.com/joshuacoles")[GitHub] or #link("https://git.joshuacoles.me/explore/repos")[personal Gitea], along with this #link("https://git.joshuacoles.me/joshuacoles/cv")[CV and build process]. | ||||||
|  |      | ||||||
|  |     #text(font: "Courier")[Rust / Python / ETL / CI/CD / Github actions / Postgres / Caddy / Docker / Prometheus / Grafana / System administration] | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // Education section | ||||||
|  | == Education | ||||||
|  | 
 | ||||||
|  | #entry( | ||||||
|  |   [], | ||||||
|  |   [MSc Mathematics and Physics (Hons) (Sandwich)], | ||||||
|  |   [University of Bath], | ||||||
|  |   [1st Class Honours. Placement with the ONS between academic years 2 and 3.] | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | #entry( | ||||||
|  |   [], | ||||||
|  |   [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 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; previous committee member of Philosophy Society at University.] | ||||||
|  |   } | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | == References | ||||||
|  | 
 | ||||||
|  | Available upon request | ||||||
| @ -191,7 +191,7 @@ | |||||||
| 	\end{longtable} | 	\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 | % Second is for the bold entry heading | ||||||
| % Third is for the bold right-aligned entry qualifier | % Third is for the bold right-aligned entry qualifier | ||||||
| %Fourth is for the entry description | %Fourth is for the entry description | ||||||
|  | |||||||
| @ -9,8 +9,8 @@ | |||||||
| 		\begin{itemize}[itemsep=-2pt,topsep=2pt] | 		\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 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 Support the professional growth of junior developers through hands-on mentorship and guidance. | ||||||
| 			\item Spearheaded further AI work, including Model Context Protocol supporte and significant contributions to FOSS software projects to enable AI use in security-sensitive environments. | 			\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 in Oceana. | 			\item Producing 	a course for a high profile business cohort based in Oceana. | ||||||
| 		\end{itemize} | 		\end{itemize} | ||||||
| 		\kwdlst{Ruby on Rails, Ruby, Turbo, Stimulus, iOS, Project Management, Mentorship}} | 		\kwdlst{Ruby on Rails, Ruby, Turbo, Stimulus, iOS, Project Management, Mentorship}} | ||||||
| 	\entry | 	\entry | ||||||
| @ -53,7 +53,7 @@ | |||||||
| 			\item Designing architectures for the next stage of the project to address additional business needs. | 			\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 wider organisation on the direction of the project.\\ | 		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, Cloudera, Jenkins, Docker, Typescript, JavaScript, Linux, Microservices, Agile, Scrum}} | 		\kwdlst{React, Redux, Express, Jest, Cypress, Redis, SQL, Postgres, HBase, Scala, 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} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user