This commit is contained in:
john 2024-05-04 15:05:01 +02:00
commit 6b76ba6b9c
66 changed files with 530 additions and 0 deletions

0
.gitignore vendored Normal file
View file

5
.idea/.gitignore generated vendored Normal file
View file

@ -0,0 +1,5 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/

8
.idea/modules.xml generated Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/resume.iml" filepath="$PROJECT_DIR$/.idea/resume.iml" />
</modules>
</component>
</project>

12
.idea/resume.iml generated Normal file
View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/vcs.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View file

View file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

7
README.md Normal file
View file

@ -0,0 +1,7 @@
# My CV Repo
## Icons
Im using some heroicons icons
## Original Resume PDF
I was originally using [resume.io](https://resume.io) to maintain my resume (login with a magic link.), if you ever need to get back to it

BIN
assets/In-Blue-48.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

1
assets/github-mark.svg Normal file
View file

@ -0,0 +1 @@
<svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#24292f"/></svg>

After

Width:  |  Height:  |  Size: 963 B

3
assets/icon-email.svg Normal file
View file

@ -0,0 +1,3 @@
<svg data-slot="icon" aria-hidden="true" fill="none" stroke-width="1.5" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>

After

Width:  |  Height:  |  Size: 480 B

3
assets/icon-location.svg Normal file
View file

@ -0,0 +1,3 @@
<svg data-slot="icon" aria-hidden="true" fill="none" stroke-width="1.5" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M9 6.75V15m6-6v8.25m.503 3.498 4.875-2.437c.381-.19.622-.58.622-1.006V4.82c0-.836-.88-1.38-1.628-1.006l-3.869 1.934c-.317.159-.69.159-1.006 0L9.503 3.252a1.125 1.125 0 0 0-1.006 0L3.622 5.689C3.24 5.88 3 6.27 3 6.695V19.18c0 .836.88 1.38 1.628 1.006l3.869-1.934c.317-.159.69-.159 1.006 0l4.994 2.497c.317.158.69.158 1.006 0Z" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>

After

Width:  |  Height:  |  Size: 550 B

3
assets/icon-mobile.svg Normal file
View file

@ -0,0 +1,3 @@
<svg data-slot="icon" aria-hidden="true" fill="none" stroke-width="1.5" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M10.5 1.5H8.25A2.25 2.25 0 0 0 6 3.75v16.5a2.25 2.25 0 0 0 2.25 2.25h7.5A2.25 2.25 0 0 0 18 20.25V3.75a2.25 2.25 0 0 0-2.25-2.25H13.5m-3 0V3h3V1.5m-3 0h3m-3 18.75h3" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>

After

Width:  |  Height:  |  Size: 390 B

BIN
assets/pfp.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

227
cv.html Normal file
View file

@ -0,0 +1,227 @@
<html lang="en">
<head>
<title>Resume of John Morris</title>
<link rel="stylesheet" href="styles/jetbrains-mono.css"/>
<link rel="stylesheet" href="styles/reset.css"/>
<link rel="stylesheet" href="styles/style.css"/>
</head>
<body class="a4">
<header>
<!-- <img class="pfp" alt="an image of john" src="assets/pfp.jpeg"/>-->
<div>
<h1>John Morris</h1>
<p>Software Developer</p>
</div>
</header>
<main>
<section id=profile>
<h2>Profile</h2>
<p>
I am a software developer, with passion for creativity and learning. My
ultimate goal as a developer is to make cool things that help people in
whatever way they need.
</p>
</section>
<section id=employment-history class="experiences">
<h2>Employment History</h2>
<section id=lead-software-engineer-hyre class=experience>
<h3>Lead Software Engineer @ HYRE Solutions, Berlin</h3>
<div class=experience-time-span>September 2022 - Present</div>
<ul class=experience-description>
<li>
I am responsible for software development of the sales recruitment
platform HYRE Talents, using TypeScript+Vue in the frontend and
C#/ASP.NET in the backend, as well as managing devops in Azure.
</li>
<li>
I provide technical support to teammates and clients.
</li>
</ul>
</section>
<section id=software-developer-tutao class=experience>
<h3>Software Developer @ Tutao, Hannover</h3>
<div class=experience-time-span>September 2020 - September 2022</div>
<ul class=experience-description>
<li>
As a part of the product team I implemented improvements and
bug fixes for the web, desktop (Electron), Android and iOS variants
of the app using various languages and frameworks, namely:
TypeScript/JavaScript, mithril (JS UI Library), ElectronJS, Swift, Kotlin,
Java.
</li>
<li>
Worked on devops and had a role in improving the in-house build
system for the app, as well as streamlining CI/CD in jenkins.
</li>
<li>
Was instrumental in improving development practices, such as
participating in the introduction of scrum to the small team, and
continually working on architectural improvements such as the
modularisation of the codebase.
</li>
</ul>
</section>
<section id=software-developer-fungii class=experience>
<h3>Software Developer @ Fungii - Melbourne Gourmet Mushrooms, Melbourne, Australia</h3>
<div class=experience-time-span>2018</div>
<ul class=experience-description>
<li>
Developed a greenhouse monitoring and logging system for a
Melbourne based culinary mushroom grower.
</li>
<li>
Utilised Arduino/C++ for monitoring and reporting, and
Python-Flask+SQLite for a RESTful logging API and user interface
</li>
</ul>
</section>
<section id=web-developer-adrian-devries class=experience>
<h3>Web Developer @ Adrian Devries, Melbourne, Australia</h3>
<div class=experience-time-span>2018</div>
<ul class=experience-description>
<li>
Made an artist CV web-page for Melbourne based visual artist Adrian
Devries.
</li>
<li>
Used vanilla HTML5/CSS/JS for the webpage, and hosted via
HostGator's shared hosting
</li>
</ul>
</section>
</section>
<section id=education class="experiences">
<h2>Education</h2>
<section id=bacherlor-cs-rmit class=experience>
<h3>Bachelor of Computer Science, RMIT, Melbourne, Australia</h3>
<div class=experience-time-span>2018 - 2020</div>
<ul class=experience-description>
<li>
Practiced developing software in a team based environment, using
techniques and technologies such as: Agile, UML, Git, Trello, etc.
</li>
<li>
Learnt to analyse and implement algorithms to solve concrete
problems.
</li>
<li>
Developed a mock IoT application for a library management system
using Python and Raspberry Pi.
</li>
</ul>
</section>
<section id=associate-degree-it-rmit class=experience>
<h3>Associate Degree of IT, RMIT, Melbourne, Australia</h3>
<div class=experience-time-span>2017 - 2018</div>
<ul class=experience-description>
<li>
Studies included computer networking (primarily OSI layers 2-4),
database design and management, and basic web development and
UX design
</li>
</ul>
</section>
</section>
<section id=courses class="experiences">
<h2>Courses</h2>
<section id=cs50x class=experience>
<h3>CS50X, edX</h3>
<div class=experience-time-span>2016-2017</div>
</section>
</section>
</main>
<menu class="links">
<li>
<a href="https://github.com/johnbotris">
<img
class="icon"
alt="the github logo"
src="assets/github-mark.svg"
>
</a>
</li>
<li>
<a href="https://www.linkedin.com/in/john-morris-06a09324b/">
<img
class="icon"
alt="the linkedin logo"
src="assets/In-Blue-48.png">
</a>
</li>
</menu>
<aside>
<dl id=details class="details">
<dt>
<img
class="icon"
alt="location"
aria-description="location"
src="assets/icon-location.svg"
/>
</dt>
<dd>Berlin</dd>
<dt>
<img
class="icon"
alt="phone"
aria-description="phone number"
src="assets/icon-mobile.svg"
/>
</dt>
<dd><a href="tel:+491789190925">+49 178 9190925</a></dd>
<dt><img class="icon" alt="email" aria-description="email address"
src="assets/icon-email.svg"/></dt>
<dd><a href="mailto:me@johnmorr.is">me@johnmorr.is</a></dd>
</dl>
<section id="skills">
<h2>Skills</h2>
<section class="skills-section">
<h3>Programming languages</h3>
<ul>
<li>TypeScript/JavaScript</li>
<li>C#</li>
<li>Java</li>
<li>Kotlin</li>
<li>Rust</li>
</ul>
</section>
<section class="skills-section">
<h3>Frameworks and Technologies</h3>
<ul>
<li>VueJS+Nuxt</li>
<li>MithrilJS</li>
<li>Azure Admin</li>
<li>Linux Sysadmin</li>
<li>Jenkins CI</li>
</ul>
</section>
<section class="skills-section">
<h3>Human languages</h3>
<dl>
<dt>English</dt>
<dd>Native</dd>
<dt>German</dt>
<dd>B2</dd>
</dl>
</section>
</section>
</aside>
</body>
</html>

View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) Tailwind Labs, Inc.
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.

BIN
original-resume.pdf Normal file

Binary file not shown.

71
styles/jetbrains-mono.css Normal file
View file

@ -0,0 +1,71 @@
@font-face {
font-family: 'JetBrains Mono';
src: url('../JetBrainsMono/woff2/JetBrainsMono-BoldItalic.woff2') format('woff2'),
url('../JetBrainsMono/ttf/JetBrainsMono-BoldItalic.ttf') format('ttf');
font-weight: 700;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('../JetBrainsMono/woff2/JetBrainsMono-Bold.woff2') format('woff2'),
url('../JetBrainsMono/ttf/JetBrainsMono-Bold.ttf') format('ttf');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('../JetBrainsMono/woff2/JetBrainsMono-ExtraBoldItalic.woff2') format('woff2'),
url('../JetBrainsMono/ttf/JetBrainsMono-ExtraBoldItalic.ttf') format('ttf');
font-weight: 800;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('../JetBrainsMono/woff2/JetBrainsMono-ExtraBold.woff2') format('woff2'),
url('../JetBrainsMono/ttf/JetBrainsMono-ExtraBold.ttf') format('ttf');
font-weight: 800;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('../JetBrainsMono/woff2/JetBrainsMono-Italic.woff2') format('woff2'),
url('../JetBrainsMono/ttf/JetBrainsMono-Italic.ttf') format('ttf');
font-weight: 400;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('../JetBrainsMono/woff2/JetBrainsMono-MediumItalic.woff2') format('woff2'),
url('../JetBrainsMono/ttf/JetBrainsMono-MediumItalic.ttf') format('ttf');
font-weight: 500;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('../JetBrainsMono/woff2/JetBrainsMono-Medium.woff2') format('woff2'),
url('../JetBrainsMono/ttf/JetBrainsMono-Medium.ttf') format('ttf');
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('../JetBrainsMono/woff2/JetBrainsMono-Regular.woff2') format('woff2'),
url('../JetBrainsMono/ttf/JetBrainsMono-Regular.ttf') format('ttf');
font-weight: 400;
font-style: normal;
font-display: swap;
}

46
styles/reset.css Normal file
View file

@ -0,0 +1,46 @@
/*
1. Use a more-intuitive box-sizing model.
*/
*, *::before, *::after {
box-sizing: border-box;
}
/*
2. Remove default margin
*/
* {
margin: 0;
}
/*
Typographic tweaks!
3. Add accessible line-height
4. Improve text rendering
*/
body {
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
/*
5. Improve media defaults
*/
img, picture, video, canvas, svg {
display: block;
max-width: 100%;
}
/*
6. Remove built-in form typography styles
*/
input, button, textarea, select {
font: inherit;
}
/*
7. Avoid text overflows
*/
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
/*
8. Create a root stacking context
*/
#root, #__next {
isolation: isolate;
}

117
styles/style.css Normal file
View file

@ -0,0 +1,117 @@
:root {
--gray: #8a8a8a;
}
html {
font-family: "JetBrains Mono", Arial, sans-serif;
}
.a4 {
max-width: 595pt;
max-height: 842pt;
margin-left: auto;
margin-right: auto;
}
.icon {
--icon-dim: 1.5rem;
width: var(--icon-dim);
height: var(--icon-dim);
}
body {
display: grid;
grid-template-columns: 2fr 1fr;
grid-template-rows: auto auto;
column-gap: 2rem;
padding-top: 2rem;
@media print {
padding-top: 0;
}
}
header {
display: flex;
flex-direction: row;
gap: 1rem;
justify-content: start;
align-items: center;
margin-bottom: 2rem;
grid-column-start: 1;
grid-row-start: 1;
}
main {
grid-column-start: 1;
grid-row-start: 2;
}
menu {
grid-column-start: 2;
grid-row-start: 1;
}
aside {
grid-column-start: 2;
grid-row-start: 2;
}
main > *:not(:last-child) {
margin-bottom: 1.5rem
}
.experience:not(:last-child) {
margin-bottom: 1rem
}
.pfp {
border-radius: 50%;
width: 5rem;
height: 5rem;
}
menu.links {
list-style-type: none;
display: flex;
flex-direction: row;
gap: 1rem;
padding: 0;
margin-bottom: 1rem;
}
.experience-time-span {
font-size: 0.85rem;
color: var(--gray);
}
aside {
display: flex;
flex-direction: column;
gap: 1.5rem;
}
.skills-section:not(:last-child) {
margin-bottom: 0.5rem;
}
dl.details {
display: grid;
grid-template-columns: auto auto;
justify-content: start;
column-gap: 1rem;
row-gap: 0.25rem;
}
@media print {
.experience {
page-break-inside: avoid;
}
}