Skip to content

Commit

Permalink
chore: various CV updates
Browse files Browse the repository at this point in the history
  • Loading branch information
emilbonnek committed Nov 25, 2024
1 parent 7514b1a commit 845af0e
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 75 deletions.
1 change: 1 addition & 0 deletions src/env.d.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/// <reference path="../.astro/types.d.ts" />
/// <reference types="astro/client" />
82 changes: 40 additions & 42 deletions src/pages/_CV/Page1/sections/SectionWorkExperience.astro
Original file line number Diff line number Diff line change
Expand Up @@ -18,81 +18,79 @@ const { class: className } = Astro.props;

<Article>
<HeadlineArticle
title="Web Developer"
place="Bright Star Studios"
placeLink="https://brightstar.studio"
title="Full Stack Developer"
place="Openframe"
placeLink="https://openframe.org/"
location="Copenhagen"
start="2023"
start="2024"
/>
<P>
Responsible for the development and optimization of Ember Sword's website,
encompassing key features like authentication, account management, and
game integration.
Worked on the Openframe platform as part of a small product team. My
contributions were new features and large-scale refactors, focusing on
developer experience and application performance.
</P>
<Ul bulleted>
<Li>
Architected and built a limited time NFT sale event, creating a
real-time commerce application using React. This event led to $400,000
in sales inside a week.
</Li>
<Li>
Optimized the client-side JS bundle size of the company's Next.js
website, achieving a 70% reduction, which substantially improved loading
times and Web Core Vitals for all users as measured by Lighthouse.
Built a file handling feature that allows users to organize files in a
tree structure inside Openframe projects. I contributed to the spec, and
implemented the backend as well as the frontend on my own.
</Li>
<Li>
Improved data integrity and developer confidence by introducing schema
validation and GraphQL introspection to the company's application.
Migrated the frontends build system from Webpack to Vite, reducing build
times by 10x and saving the company time and money in CI/CD. I also
migrated the code from TypeScript non-strict to strict mode, which
drastically reduced the number of bugs.
</Li>
<Li>
Overhauled DevOps procedures, adding support for multiple environments
in a declarative manner, and enabling the team to deploy to production
with confidence.
Took charge of the company's entire development and infrastructure for 2
months while the CTO was away on parental leave.
</Li>
</Ul>
<ChipList
items={[
"TypeScript",
"React",
"Next.js",
"GitHub Actions",
"Rust",
"Node",
"SQL",
"Tanstack Query",
"GitHub Actions",
]}
/>
</Article>

<Article class={className}>
<Article>
<HeadlineArticle
title="Software Developer"
place="twoday IT Minds"
placeLink="https://it-minds.dk"
title="Web Developer"
place="Bright Star Studios"
placeLink="https://brightstar.studio"
location="Copenhagen"
start="2020"
end="2022"
start="2023"
/>
<P>
Integrated into diverse teams, contributing expertise across various
technology stacks and clients, from public libraries to large financial
institutions.
Worked on the website for company's next generation browser game Ember
Sword as part of a team of just 2. The website functions as a web app and
has authentication, account management and deep integration with the game.
</P>

<Ul bulleted>
<Li>
Took charge of a self-service platform for Nordic libraries,
successfully enabling digital payments and driving cloud migration for
key web platforms to Azure/AWS.
Architected and built a limited time NFT sale event, creating a
real-time commerce application using React. This event led to $400,000
in sales inside a week. I was in charge of the very central real-time
map as well as some scraping of blockchain data.
</Li>
<Li>
Spearheaded the migration of API specifications to a new gateway, for
more straightforward internal API subscriptions and integrations.
Optimized the client-side JS bundle size of the company's Next.js
website, achieving a 70% reduction, which substantially improved loading
times and Web Core Vitals for all users as measured by Lighthouse.
</Li>
<Li>
Joined a task force evaluating the feasibility of Google Cloud for data
ingestion projects, contributing Google Cloud expertise and
certification.
Overhauled DevOps procedures, adding support for multiple environments
in a declarative manner, and enabling the team to deploy to production
with confidence.
</Li>
</Ul>
<ChipList items={["TypeScript", "React", "Node", "SQL", "Google Cloud"]} />
<ChipList
items={["TypeScript", "React", "Next.js", "GitHub Actions", "Rust"]}
/>
</Article>
</Section>
11 changes: 8 additions & 3 deletions src/pages/_CV/Page2/Page2.astro
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ import SectionOtherSkills from "./sections/SectionOtherSkills.astro";
import SectionPersonalProjects from "./sections/SectionPersonalProjects.astro";
import SectionVolunteerWork from "./sections/SectionVolunteerWork.astro";
import SectionInterests from "./sections/SectionInterests.astro";
import SectionWorkExperienceContinued from "./sections/SectionWorkExperienceContinued.astro";
---

<Page class="page-2">
<CVPage2Header class="header" />
<SectionWorkExperienceContinued class="work-experience-continued" />
<SectionVolunteerWork class="volunteer-work" />
<SectionOtherSkills class="other-skills" />
<SectionInterests class="interests" />
Expand All @@ -20,20 +22,23 @@ import SectionInterests from "./sections/SectionInterests.astro";
display: grid;
grid-template:
"head head head head head" 20mm
".... ......... ......... ............ ...." 15mm
".... volunteer ......... other-skills ...." auto
".... .... ......... ............ ...." 15mm
".... work ......... other-skills ...." auto
".... volunteer ......... ............ ...." var(--pageSeparator)
".... volunteer ......... interests ...." auto
".... ......... ......... ............ ...." var(--pageSeparator)
".... personal personal personal ...." auto
".... signature signature signature ...." 8mm
".... ......... ......... ............ ...." 1fr
"... ......... ......... ............ ...." var(--pagePadding)
"... .......... ......... ............ ...." var(--pagePadding)
/ var(--pagePadding) auto var(--pageSeparator) 50mm var(--pagePadding);
}
.page-2 > .header {
grid-area: head;
}
.page-2 > .work-experience-continued {
grid-area: work;
}
.page-2 > .volunteer-work {
grid-area: volunteer;
}
Expand Down
30 changes: 0 additions & 30 deletions src/pages/_CV/Page2/sections/SectionVolunteerWork.astro
Original file line number Diff line number Diff line change
Expand Up @@ -45,35 +45,5 @@ const { class: className } = Astro.props;
</Li>
<ChipList items={["TypeScript", "Lit", "Rust"]} />
</Ul>

<Article class={className}>
<HeadlineArticle
title="Webmaster"
place="Danish Frisbee Sport Union"
placeLink="https://dfsu.dk"
start="2020"
end="2022"
/>
<P>
Oversaw and optimized the organization's website, including migration to
a cost-effective hosting solution. Set up a small webshop for selling
merchandise and built a dedicated site for a high school PE program.
</P>
<Ul bulleted>
<Li>
Orchestrated the migration of the website to a more cost-efficient
hosting provider, achieving significant cost savings for the
organization.
</Li>
<Li>
Launched a webshop to diversify revenue streams through merchandise
sales.
</Li>
<Li>
Developed a specialized website to support a high school PE program,
extending the organization's reach into educational settings.
</Li>
</Ul>
</Article>
</Article>
</Section>
49 changes: 49 additions & 0 deletions src/pages/_CV/Page2/sections/SectionWorkExperienceContinued.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
import HeadlineSection from "../../HeadlineSection.astro";
import Section from "../../../../components/ui/elements/Section.astro";
import Article from "../../../../components/ui/elements/Article.astro";
import HeadlineArticle from "../../HeadlineArticle.astro";
import P from "../../../../components/ui/elements/P.astro";
import Ul from "../../../../components/ui/elements/Ul.astro";
import Li from "../../../../components/ui/elements/Li.astro";
import ChipList from "../../ChipList.astro";
interface Props {
class?: string;
}
const { class: className } = Astro.props;
---

<Section class={className}>
<HeadlineSection headline="Work Experience (continued)" iconName="work" />

<Article class={className}>
<HeadlineArticle
title="Software Developer"
place="twoday IT Minds"
placeLink="https://it-minds.dk"
location="Copenhagen"
start="2020"
end="2022"
/>
<P>
As a consultant I joined various teams that needed extra resources and
help them work on their product.
</P>

<Ul bulleted>
<Li>
Worked as a backend developer for Danske Bank, where I contributed to
their Forex trading platform, mostly on infrastructure projects. I
helped the team with a large internal migration to a new API gateway.
</Li>
<Li>
Joined the product team at Bibliotheca where I took ownership of their
nordic library self service platform. As the only developer left on the
team I was responsible for the entire codebase there. I designed and
implemented a MobilePay integration and oversaw its introduction into
100s of danish libraries.
</Li>
</Ul>
<ChipList items={["Java", "SQL", "Google Cloud"]} />
</Article>
</Section>

0 comments on commit 845af0e

Please sign in to comment.