✨ cv is now live
Signed-off-by: Sindre Kjelsrud <kjelsrudsindre@gmail.com>
This commit is contained in:
parent
7c1d170909
commit
88cf0ff50a
4 changed files with 276 additions and 4 deletions
143
src/data/resume.json
Normal file
143
src/data/resume.json
Normal file
|
@ -0,0 +1,143 @@
|
|||
{
|
||||
"basics": {
|
||||
"name": "Sindre Kjelsrud",
|
||||
"email": "kjelsrudsindre@gmail.com",
|
||||
"url": "https://kjelsrud.dev",
|
||||
"summary": "Aspiring IT professional with a commitment to joining Capgemini post-graduation in 2024. Passionate about software development, open source and the dynamic of collaborative teamwork. Eager to leverage my technical and professional expertise to grow in the new role of Software Engineer."
|
||||
},
|
||||
"work": [
|
||||
{
|
||||
"name": "Wide Assessment",
|
||||
"location": "Bergen, Vestland",
|
||||
"position": "Intern",
|
||||
"url": "https://wa.works/",
|
||||
"startDate": "Aug 2023",
|
||||
"endDate": "Dec 2023",
|
||||
"highlights": [
|
||||
"Developed a movie database application as well as an api for it",
|
||||
"Pairprogrammed with another intern the whole internship",
|
||||
"Full-stack development with React.js, C# and PostgreSQL"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "NAV IT",
|
||||
"location": "Helsfyr, Viken",
|
||||
"position": "Summer intern",
|
||||
"url": "https://detsombetyrnoe.no",
|
||||
"startDate": "Jun 2023",
|
||||
"endDate": "Aug 2023",
|
||||
"highlights": [
|
||||
"Developed an error reporting application for the new adoption solution for sick pay",
|
||||
"Worked in a team consisting of our mentor and 2 other interns",
|
||||
"Full-stack development with React.js, Kotlin and PostgreSQL"
|
||||
]
|
||||
}
|
||||
],
|
||||
"education": [
|
||||
{
|
||||
"institution": "Western University of Applied Sciences",
|
||||
"url": "https://www.hvl.no/",
|
||||
"area": "Bachelor in Information Technology",
|
||||
"startDate": "Aug 2021",
|
||||
"endDate": "present"
|
||||
},
|
||||
{
|
||||
"institution": "NLA University College",
|
||||
"url": "https://www.nla.no/",
|
||||
"area": "Secondary School Teacher, class 5-10",
|
||||
"startDate": "Aug 2020",
|
||||
"endDate": "May 2021"
|
||||
},
|
||||
{
|
||||
"institution": "University of South-Eastern Norway",
|
||||
"url": "https://www.hvl.no/",
|
||||
"area": "IT & Information Systems",
|
||||
"startDate": "Aug 2019",
|
||||
"endDate": "May 2020"
|
||||
}
|
||||
],
|
||||
"volunteer": [
|
||||
{
|
||||
"organization": "friByte",
|
||||
"position": "Member",
|
||||
"url": "https://fribyte.no/",
|
||||
"startDate": "Sep 2022",
|
||||
"endDate": "present",
|
||||
"summary": "friByte is an undependent studentorganization that delivers secure and stable IT-solutions to other studentorganizations in Bergen.",
|
||||
"highlights": [
|
||||
"Collaborated in team environments to enhance project efficiency",
|
||||
"Managed and operated Linux servers in a multi-user setting",
|
||||
"Deployed Docker images and containers for application virtualization",
|
||||
"Utilized Git for version control and efficient code management",
|
||||
"Implemented and maintained Wordpress websites for clients"
|
||||
]
|
||||
},
|
||||
{
|
||||
"organization": "friByte",
|
||||
"position": "PR-manager",
|
||||
"url": "https://fribyte.no/",
|
||||
"startDate": "Jul 2023",
|
||||
"endDate": "Dec 2023",
|
||||
"summary": "friByte is an undependent studentorganization that delivers secure and stable IT-solutions to other studentorganizations in Bergen.",
|
||||
"highlights": [
|
||||
"Led member recruitment initiatives, expanding team talent and capabilities",
|
||||
"Significantly increased social media presence, effectively enhancing brand visibility",
|
||||
"Achieved a 250% increase in social media followers, adding 65 new followers",
|
||||
"Lead the planning phase of the Bergen Open Source conference, successfully hosting ~90 participants & 5 speakers"
|
||||
]
|
||||
},
|
||||
{
|
||||
"organization": "friByte",
|
||||
"position": "Leader",
|
||||
"url": "https://fribyte.no/",
|
||||
"startDate": "Jan 2023",
|
||||
"endDate": "Jun 2023",
|
||||
"summary": "friByte is an undependent studentorganization that delivers secure and stable IT-solutions to other studentorganizations in Bergen.",
|
||||
"highlights": [
|
||||
"Administrative tasks, convene meetings etc.",
|
||||
"Successfully recruited and integrated new team members",
|
||||
"Acquired three new clients, and managed already established client relationships",
|
||||
"Orchestrated a successful Capture The Flag (CTF) event, drawing ~35 participants and enhancing community engagement"
|
||||
]
|
||||
}
|
||||
],
|
||||
"skills": [
|
||||
{
|
||||
"name": "Programming languages",
|
||||
"keywords": [
|
||||
"C#",
|
||||
"HTML",
|
||||
"CSS",
|
||||
"Java",
|
||||
"JavaScript",
|
||||
"Kotlin",
|
||||
"Python",
|
||||
"TypeScript"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Libraries & Frameworks",
|
||||
"keywords": [
|
||||
"Astro",
|
||||
"dotNET",
|
||||
"Hugo",
|
||||
"React.js",
|
||||
"Spring",
|
||||
"Svelte",
|
||||
"TailwindCSS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Tools",
|
||||
"keywords": [
|
||||
"Docker",
|
||||
"Figma",
|
||||
"Git"
|
||||
]
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": "v1.0.0",
|
||||
"lastModified": "January 06, 2024"
|
||||
}
|
||||
}
|
95
src/pages/cv.astro
Normal file
95
src/pages/cv.astro
Normal file
|
@ -0,0 +1,95 @@
|
|||
---
|
||||
import SectionContainer from '../components/SectionContainer.astro';
|
||||
import resume from '../data/resume.json';
|
||||
---
|
||||
<SectionContainer>
|
||||
<main class="flex flex-col gap-4 mt-4 cv">
|
||||
<h1 class="text-3xl font-extrabold">📜 Sindre Kjelsrud</h1>
|
||||
<blockquote><p><em>Last update: {resume.meta.lastModified}</em></p></blockquote>
|
||||
|
||||
<!-- PROFILE -->
|
||||
<div>
|
||||
<h2>Profile</h2>
|
||||
<p>{resume.basics.summary}</p>
|
||||
</div>
|
||||
|
||||
<!-- WORK -->
|
||||
<div>
|
||||
<h2>Work</h2>
|
||||
<div class="flex flex-col gap-2">
|
||||
{resume.work.map((work) => (
|
||||
<div>
|
||||
<div class="flex gap-2 flex-wrap items-center justify-between">
|
||||
<div class="flex gap-2 flex-wrap items-center">
|
||||
<h3>{work.position}</h3>
|
||||
<p><a href={work.url}>{work.name}</a></p>
|
||||
</div>
|
||||
<p class="cv-date">{work.startDate} - {work.endDate}</p>
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
{work.highlights.map((highlight) => (
|
||||
<li>{highlight}</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- EDUCATION -->
|
||||
<div>
|
||||
<h2>Education</h2>
|
||||
<div class="flex flex-col gap-2">
|
||||
{resume.education.map((education) => (
|
||||
<div class="flex gap-2 flex-wrap items-center justify-between">
|
||||
<div class="flex gap-2 flex-wrap items-center">
|
||||
<h3>{education.area}</h3>
|
||||
<p><a href={education.url}>{education.institution}</a></p>
|
||||
</div>
|
||||
<p class="cv-date">{education.startDate} - {education.endDate}</p>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- VOLUNTEER -->
|
||||
<div>
|
||||
<h2>Volunteer</h2>
|
||||
<div class="flex flex-col gap-2">
|
||||
{resume.volunteer.map((volunteer) => (
|
||||
<div>
|
||||
<div class="flex gap-2 flex-wrap items-center justify-between">
|
||||
<div class="flex gap-2 flex-wrap items-center">
|
||||
<h3>{volunteer.position}</h3>
|
||||
<p><a href={volunteer.url}>{volunteer.organization}</a></p>
|
||||
</div>
|
||||
<p class="cv-date">{volunteer.startDate} - {volunteer.endDate}</p>
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
{volunteer.highlights.map((highlight) => (
|
||||
<li>{highlight}</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- SKILLS -->
|
||||
<div>
|
||||
<h2>Skills</h2>
|
||||
<div class="flex flex-col gap-2">
|
||||
{resume.skills.map((skill) => (
|
||||
<div>
|
||||
<h3>{skill.name}</h3>
|
||||
<div>
|
||||
{skill.keywords.join(', ')}
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</SectionContainer>
|
|
@ -8,7 +8,7 @@ layout: "../layouts/Layout.astro"
|
|||
|
||||
[🌐 **connect**](/connect) · ways to reach me across the cyberspace
|
||||
|
||||
[📜 **cv** (under construction)](/) · my resume
|
||||
[📜 **cv**](/cv) · my resume
|
||||
|
||||
[🌱 **digital garden**](/garden) · wild garden, filled with drafts, ideas and more
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ p {
|
|||
|
||||
.dark .blog a { color: var(--dark-link);}
|
||||
|
||||
.blog a:hover { text-decoration: underline 2px;;}
|
||||
.blog a:hover { text-decoration: underline 2px;}
|
||||
|
||||
.blogtime { color: var(--light-2); }
|
||||
|
||||
|
@ -137,6 +137,40 @@ p {
|
|||
margin-bottom: 100px;
|
||||
}
|
||||
|
||||
/* CV */
|
||||
.cv h2 {
|
||||
font-size: x-large;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.cv h3 {
|
||||
font-size: large;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.cv-date {
|
||||
color: var(--dark-2);
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.cv a {
|
||||
color: var(--light-link);
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.dark .cv a { color: var(--dark-link);}
|
||||
|
||||
.cv a:hover { text-decoration: underline 2px;;}
|
||||
|
||||
.cv li {
|
||||
list-style: disc inside;
|
||||
padding: 0 0 5px 10px;
|
||||
}
|
||||
|
||||
.cv li ul {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
/* RANDOM */
|
||||
code {
|
||||
display: block;
|
||||
|
@ -146,12 +180,12 @@ code {
|
|||
padding: 10px;
|
||||
}
|
||||
|
||||
.blog blockquote {
|
||||
blockquote {
|
||||
padding: 0 0 0 10px;
|
||||
border-left: 5px solid var(--light-1);
|
||||
}
|
||||
|
||||
.dark .blog blockquote {
|
||||
.dark blockquote {
|
||||
padding: 0 0 0 10px;
|
||||
border-left: 5px solid var(--dark-1);
|
||||
}
|
Loading…
Add table
Reference in a new issue