#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 => { box( fill: sect_title_color, inset: 3pt, text(white, upper(it)) ) } #let cvsect(title) = { v(8pt) box( fill: sect_title_color, inset: (x: 3pt, y: 2pt), text(white, weight: "bold", upper(title)) ) v(5pt) } #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) // 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: (70%, 27.5%), { [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 #cvsect("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] ] ) // Continue with other entries... // Education section would follow similar pattern // Additional sections at bottom #grid( columns: (1fr, 1fr), { cvsect("ADDITIONAL QUALIFICATIONS AND TRAINING") [#link("https://betterconversations.foundation/index.html")[Better Conversations] — 2022] linebreak() [ISO9001 and ISO27001 training — 2018] }, { cvsect("Interests") [Long distance running; politics and governance and the applications of technology therein; previous committee member of Philosophy Society at University.] } ) // References section #cvsect("References") [Available upon request]