609 lines
20 KiB
Vue
609 lines
20 KiB
Vue
<template>
|
|
<main>
|
|
<div class="a4page">
|
|
<div class="contact">
|
|
<h1>Adam French</h1>
|
|
<!-- <a href="covers.html"><img width=25 height=50 src="img/rune.png"></a> -->
|
|
<div class="contact-details">
|
|
<p>+447563266931</p>
|
|
<p>adam.a.french@outlook.com</p>
|
|
</div>
|
|
</div>
|
|
|
|
<h2>Profile</h2>
|
|
<p>
|
|
Passionate about developing robust, efficient software with a
|
|
strong focus on maintainability, scalability, and long-term
|
|
performance. I take pride in my ability to perform under
|
|
pressure, adapt quickly, and contribute effectively in
|
|
collaborative, fast-paced environments.
|
|
</p>
|
|
<p>
|
|
My ideal role involves designing and building scalable systems
|
|
that balance creativity with problem-solving. I aim to cultivate
|
|
meaningful professional connections and contribute to projects
|
|
that deliver a clear altruistic impact.
|
|
</p>
|
|
|
|
<h2>Education</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Location</th>
|
|
<th>Date</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>The University of Leeds</td>
|
|
<td>
|
|
<!-- <div style="display: flex; flex-direction: column; align-items: center;"> -->
|
|
<!-- <span>2021</span> -->
|
|
<!-- <span>to</span> -->
|
|
<!-- <span>2025</span> -->
|
|
<!-- </div> -->
|
|
2021-2025
|
|
</td>
|
|
<td class="row-leftalign">
|
|
<strong
|
|
>BSc Computer Science with Mathematics
|
|
(International)</strong
|
|
><br />
|
|
<strong
|
|
>Average:
|
|
81.1%           (First
|
|
Class Honours) </strong
|
|
><br />
|
|
<strong>Relevant Courses: </strong>
|
|
Procedural Programming, Object Oriented Programming,
|
|
Algorithms and Data Structures I & II, Databases,
|
|
Computer Processors, Compiler Design and
|
|
Construction, Formal Languages and Finite Automata,
|
|
Probability and Statistics I, Machine Learning,
|
|
Graph Algorithms & Complexity Theory
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>The University of Waterloo</td>
|
|
<td>
|
|
<!-- <div style="display: flex; flex-direction: column; align-items: center;"> -->
|
|
<!-- <span>2023</span> -->
|
|
<!-- <span>to</span> -->
|
|
<!-- <span>2024</span> -->
|
|
<!-- </div> -->
|
|
2023-2024
|
|
</td>
|
|
<td class="row-leftalign">
|
|
<strong>Average: 74.5%</strong>
|
|
<br />
|
|
<strong>Relevant Courses:</strong>
|
|
Applied Cryptography, Introduction to Computer
|
|
Graphics, Introduction to Rings and Fields with
|
|
Applications<br /><br />
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<h2>Experience</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Role</th>
|
|
<th>Location</th>
|
|
<th>Date</th>
|
|
<th>Duties</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Student</td>
|
|
<td>Wolfram Summer School</td>
|
|
<td>2024</td>
|
|
<td class="row-leftalign">
|
|
Designed and completed a time-constrained research
|
|
project exploring Mobile Automata and conditions for
|
|
computational reversibility. Communicated findings
|
|
through visualizations and presentations.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Bartender</td>
|
|
<td>Belgrave Music Hall</td>
|
|
<td>2022-2025</td>
|
|
<td class="row-leftalign">
|
|
Delivered heartfelt customer service in various
|
|
fast-paced, high-pressure hospitality environments.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Cashier Assistant</td>
|
|
<td>To The Rise Bakery</td>
|
|
<td>Summer 2022</td>
|
|
<td class="row-leftalign">
|
|
Prepared coffee, served customers, presented goods,
|
|
cleaned bakery equipment, and made toasties.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Waiter</td>
|
|
<td>BFI Bar and Kitchen</td>
|
|
<td>Summer 2020</td>
|
|
<td class="row-leftalign">
|
|
Managed bookings, allocated tables, handled
|
|
complaints, ran food and drinks, and maintained BOH
|
|
cleanliness.
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<span class="no-print"></span>
|
|
|
|
<div class="a4page">
|
|
<h2>Personal Projects</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Project</th>
|
|
<th>Skills</th>
|
|
<th>Date</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Mobile Automata</td>
|
|
<td>Mathematica, JS, Logic, Analysis</td>
|
|
<td>2024</td>
|
|
<td class="row-leftalign">
|
|
Designed experiments and analysis tools to identify
|
|
pattern similarities among automata. Investigated
|
|
computational properties by defining specific
|
|
phenomena and observing emergent behaviors through
|
|
custom simulations.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Computer Graphics</td>
|
|
<td>Rust, Linear Algebra, Multi-threading</td>
|
|
<td>2023</td>
|
|
<td class="row-leftalign">
|
|
Developed a multi-threaded, recursive ray tracer as
|
|
part of a University of Waterloo project. Explored
|
|
advanced ray-surface intersection techniques,
|
|
including experimental rendering of
|
|
higher-dimensional geometries.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Arduino Programming & Circuits</td>
|
|
<td>C++, Soldering, Embedded Systems</td>
|
|
<td>2022 - 2025</td>
|
|
<td class="row-leftalign">
|
|
Created room decorations using salvaged components
|
|
from discarded electronics.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Memory Palace Website</td>
|
|
<td>TS, Rust, React, Redux, SQLite</td>
|
|
<td>2025</td>
|
|
<td class="row-leftalign">
|
|
Full-stack web application implementing the “memory
|
|
palace” memorization technique. Built with a
|
|
React/Redux frontend, Rust-based Actix backend, and
|
|
SQLite database.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Personal Websites</td>
|
|
<td>HTML, JS, Design, UI/UX</td>
|
|
<td>Ongoing</td>
|
|
<td class="row-leftalign">
|
|
Continuously evolving my personal site and designing
|
|
other creative websites. Experimented with Svelte,
|
|
Vue, and React/Redux using libraries such as P5 and
|
|
Three.js.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>3D Printing</td>
|
|
<td>FreeCAD</td>
|
|
<td>Ongoing</td>
|
|
<td class="row-leftalign">
|
|
Designing and manufacturing household objects and
|
|
repairs, including replacement window handles, desk
|
|
organizers, and 3D scans.
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
|
|
<tbody></tbody>
|
|
</table>
|
|
|
|
<h2>Commitments</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Activity</th>
|
|
<th>Date</th>
|
|
<th>Details</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Learning Mandarin</td>
|
|
<td>Ongoing</td>
|
|
<td class="row-leftalign">
|
|
Aiming to complete HSK 3 proficiency exam by
|
|
December 2026
|
|
</td>
|
|
</tr>
|
|
<!-- <tr> -->
|
|
<!-- <td>Cybersecurity Training</td> -->
|
|
<!-- <td>Ongoing</td> -->
|
|
<!-- <td class="row-leftalign"> -->
|
|
<!-- Using <em>pwn.college, tryhackme.com</em> to learn pentesting techniques.</td> -->
|
|
<!-- </tr> -->
|
|
<tr>
|
|
<td>Sports Activities</td>
|
|
<td>Ongoing</td>
|
|
<td class="row-leftalign">
|
|
Run weekly, active gym attendee, regularly go
|
|
hiking.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Construction and Landscaping</td>
|
|
<td>Ongoing</td>
|
|
<td class="row-leftalign">
|
|
Involved in building a house in Bulgaria.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>University of Waterloo Film Club</td>
|
|
<td>2023-2024</td>
|
|
<td class="row-leftalign">
|
|
Worked on student films <em>“Moon King”</em> and
|
|
<em>“HAM”</em>, available online.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Socratica</td>
|
|
<td>2023-2024</td>
|
|
<td class="row-leftalign">
|
|
Worked with like-minded individuals exploring
|
|
innovative tech.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>University of Leeds Hockey Club</td>
|
|
<td>2022-2023</td>
|
|
<td class="row-leftalign">
|
|
Played for the University of Leeds Hockey Club.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Royal Air Force Air Cadets</td>
|
|
<td>2017-2020</td>
|
|
<td class="row-leftalign">
|
|
Achieved the role of Sergeant and “Best Cadet"
|
|
award.
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- <div class="interests"> -->
|
|
<!-- <table> -->
|
|
<!-- <tr><th>Personal qualities</th></tr> -->
|
|
<!-- <tr><td>Intuitive</td></tr> -->
|
|
<!-- <tr><td>Communicative</td></tr> -->
|
|
<!-- <tr><td>Adaptable</td></tr> -->
|
|
<!-- <tr><td>Versatile</td></tr> -->
|
|
<!-- <tr><td>Diligent</td></tr> -->
|
|
<!-- </table> -->
|
|
<!-- <table> -->
|
|
<!-- <tr><th>Interests</th></tr> -->
|
|
<!-- <tr><td>Neuroscience</td></tr> -->
|
|
<!-- <tr><td>Bouldering</td></tr> -->
|
|
<!-- <tr><td>Science Fiction</td></tr> -->
|
|
<!-- <tr><td>Mathematics</td></tr> -->
|
|
<!-- <tr><td>Hiking</td></tr> -->
|
|
<!-- </table> -->
|
|
<!-- <table> -->
|
|
<!-- <tr><th>Languages</th></tr> -->
|
|
<!-- <tr><td>Rust</td></tr> -->
|
|
<!-- <tr><td>HTML/JS</td></tr> -->
|
|
<!-- <tr><td>C/C++</td></tr> -->
|
|
<!-- <tr><td>React/Vue</td></tr> -->
|
|
<!-- <tr><td>Python</td></tr> -->
|
|
<!-- </table> -->
|
|
<!-- </div> -->
|
|
</div>
|
|
</main>
|
|
</template>
|
|
|
|
<style scoped>
|
|
/* Fonts */
|
|
/*@font-face {
|
|
font-family: "AldoTheApache";
|
|
src: url("/fonts/AldotheApache.ttf") format("truetype");
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "RobotFont";
|
|
src: url("/fonts/Robot_Font.otf") format("opentype");
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "m12";
|
|
src: url("/fonts/m12.ttf") format("truetype");
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}*/
|
|
|
|
@font-face {
|
|
font-family: "big_noodle_titling";
|
|
src: url("/fonts/big_noodle_titling.ttf") format("truetype");
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "CreatoDisplay";
|
|
src: url("/fonts/CreatoDisplay-Bold.otf") format("opentype");
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
|
|
/* Variables */
|
|
* {
|
|
/* Blue - Beige */
|
|
/* --primary: #153448;
|
|
--secondary: #3C5B6F;
|
|
--tertiary: #948979;
|
|
--quaternary: #f5bb78;
|
|
--background: #DFD0B8; */
|
|
|
|
/* Blue - Turqouise */
|
|
/* --primary: #161D6F;
|
|
--secondary: #0B2F9F;
|
|
--tertiary: #98DED9;
|
|
--quaternary: #C7FFD8;
|
|
--background: #C2EFD1; */
|
|
|
|
/* Red - Blue */
|
|
/* --primary: #ff204e; */
|
|
/* --secondary: #a0153e; */
|
|
/* --tertiary: #5d0341; */
|
|
/* --quaternary: #3a0e41; */
|
|
/* --background: #00224d; */
|
|
|
|
/* Blue - Brown */
|
|
/* --primary: #35374B; */
|
|
/* --secondary: #344955; */
|
|
/* --tertiary: #50727b; */
|
|
/* --quaternary: #78a083; */
|
|
/* --background: #c7b077; */
|
|
|
|
/* Black - White */
|
|
--primary: black;
|
|
--secondary: black;
|
|
--tertiary: black;
|
|
--quaternary: #cccccc;
|
|
--background: white;
|
|
|
|
/* Blue - White */
|
|
/* --primary: #201e43; */
|
|
/* --secondary: #134b70; */
|
|
/* --tertiary: #508c9b; */
|
|
/* --quaternary: #cceeee; */
|
|
/* --background: #eeeeee; */
|
|
|
|
--font-heading: big_noodle_titling;
|
|
--font-text: CreatoDisplay;
|
|
--font-size-text: 90%;
|
|
--font-size-heading: 2.5em;
|
|
--font-size-tableheading: 1.2em;
|
|
}
|
|
|
|
/* A5 Page */
|
|
.a5page {
|
|
/* overflow: scroll; */
|
|
display: flex;
|
|
flex-direction: column;
|
|
font-family: var(--font-text);
|
|
height: 148mm;
|
|
width: 210mm;
|
|
padding: 5mm;
|
|
box-sizing: border-box;
|
|
background-color: var(--background);
|
|
box-shadow: 0 20px 20px rgba(0, 0, 0, 0.2);
|
|
border: solid 2px var(--primary);
|
|
}
|
|
|
|
/* A4 Page */
|
|
.a4page {
|
|
line-height: 1.6;
|
|
font-family: var(--font-text);
|
|
width: 210mm;
|
|
/* Standard A4 width */
|
|
height: 297mm;
|
|
/* Standard A4 height */
|
|
padding: 10mm;
|
|
box-sizing: border-box;
|
|
background-color: var(--background);
|
|
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
|
|
border: 1px solid var(--primary);
|
|
overflow: auto;
|
|
/* Enables scrolling when content exceeds height */
|
|
margin: 0 auto;
|
|
/* Centers the page horizontally */
|
|
}
|
|
|
|
/* Component Styling */
|
|
main {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0px;
|
|
}
|
|
|
|
span {
|
|
height: 2em;
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4 {
|
|
color: var(--primary);
|
|
font-family: var(--font-heading);
|
|
text-transform: capitalize;
|
|
text-align: center;
|
|
}
|
|
|
|
h1 {
|
|
font-size: var(--font-size-heading);
|
|
}
|
|
|
|
h2 {
|
|
margin: 0px;
|
|
margin-bottom: 3px;
|
|
border-bottom: 1px solid var(--primary);
|
|
}
|
|
|
|
p {
|
|
color: var(--secondary);
|
|
font-size: var(--font-size-text);
|
|
margin-top: 0.3em;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
table {
|
|
color: var(--secondary);
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
border: 1px solid black;
|
|
}
|
|
|
|
td {
|
|
/* border: 2px solid var(--tertiary); */
|
|
border-top: 1px solid var(--tertiary);
|
|
padding: 1px 10px 1px 10px;
|
|
font-size: var(--font-size-text);
|
|
text-align: left;
|
|
}
|
|
|
|
th {
|
|
border: 2px solid var(--tertiary);
|
|
padding: 1px 0px 1px 7px;
|
|
font-family: var(--font-heading);
|
|
font-size: var(--font-size-tableheading);
|
|
background-color: var(--quaternary);
|
|
text-align: left;
|
|
}
|
|
|
|
a {
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
|
|
a:hover,
|
|
a:visited {
|
|
color: inherit;
|
|
}
|
|
|
|
/* Classes */
|
|
/* Cover Navigation (for ease of use) */
|
|
.cover-nav {
|
|
position: fixed;
|
|
top: 0.5vh;
|
|
/* Position the element at the top of the screen */
|
|
left: 80vw;
|
|
/* Position the element at the left of the screen */
|
|
border: 2px solid var(--tertiary);
|
|
width: 19.5vw;
|
|
/* Make the element span the width of the screen (optional) */
|
|
background-color: var(--background);
|
|
/* Set a background color to avoid overlap issues */
|
|
z-index: 1000;
|
|
/* Ensures the element is above other content */
|
|
}
|
|
|
|
.cover-nav td,
|
|
tr {
|
|
font-family: var(--font-text);
|
|
border: 0;
|
|
}
|
|
|
|
.cover-nav th {
|
|
text-align: center;
|
|
align-items: center;
|
|
border-bottom: 2px solid var(--tertiary);
|
|
}
|
|
|
|
@media print {
|
|
.no-print {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
/* Cover letter styling */
|
|
textarea {
|
|
width: 100%;
|
|
height: 100%;
|
|
padding: 10px;
|
|
box-sizing: border-box;
|
|
border: 0px solid var(--primary);
|
|
resize: none;
|
|
font-family: var(--font-text);
|
|
}
|
|
|
|
/* Contact At Top of Page */
|
|
.contact {
|
|
all: unset;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
border-bottom: 1px solid var(--primary);
|
|
}
|
|
|
|
.contact-details {
|
|
all: unset;
|
|
display: flex;
|
|
flex-direction: column;
|
|
text-align: right;
|
|
}
|
|
|
|
.contact-details p {
|
|
margin: 2px 0;
|
|
}
|
|
|
|
/* Interests and Skills at bottom of page */
|
|
.interests {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
border-top: solid 2px var(--primary);
|
|
}
|
|
|
|
.interests td,
|
|
tr,
|
|
th {
|
|
border: 0;
|
|
}
|
|
|
|
.row-leftalign {
|
|
/* background-image: url("https://www.fridakahlo.org/assets/img/paintings/without-hope.jpg"); */
|
|
text-align: left;
|
|
}
|
|
</style>
|