From 438f83e21709577a682881618839cde3cfde50dc Mon Sep 17 00:00:00 2001 From: Arnie Date: Mon, 21 Oct 2024 11:37:59 +0200 Subject: [PATCH] Update CV --- app/frontend/src/components/CV/Experience.tsx | 106 +++++++++++++----- app/frontend/src/components/CV/Skills.tsx | 90 +++++++-------- .../components/Navigation/MainNavigation.tsx | 59 +++++----- app/frontend/src/views/Dashboard.tsx | 34 +++--- app/frontend/src/views/NotFound.tsx | 16 ++- 5 files changed, 170 insertions(+), 135 deletions(-) diff --git a/app/frontend/src/components/CV/Experience.tsx b/app/frontend/src/components/CV/Experience.tsx index b9e5d2a..6e5b89d 100644 --- a/app/frontend/src/components/CV/Experience.tsx +++ b/app/frontend/src/components/CV/Experience.tsx @@ -11,28 +11,19 @@ const messages = defineMessages({ defaultMessage: "Skills", id: "Experience.skills", }, - yourpass: { - defaultMessage: "July 2021 - Present ({count} years)", - id: "Experience.yourpass", - }, - yoursystem: { - defaultMessage: "February 2016 - December 2021 (5 years)", - id: "Experience.yoursystem", - }, - past: { - defaultMessage: "Birth - February 2016", - id: "Experience.past", - }, - pastDescription: { - defaultMessage: - "Working on smaller projects such as chats, forum based websites, web based presentations, most notably a system for handling the driver training center and driving school agenda... Tinkering...", - id: "Experience.pastDescription", - }, }); -const approxCurrentYears = Math.round( - (Date.now() - new Date("2021-06-01").getTime()) / 1000 / 60 / 60 / 24 / 365 -); +const approxCurrentYears = { + InvestBay: Math.round( + (Date.now() - new Date("2024-02-01").getTime()) / 1000 / 60 / 60 / 24 / 365 + ), + YourPass: Math.round( + (Date.now() - new Date("2021-06-01").getTime()) / 1000 / 60 / 60 / 24 / 365 + ), + YourSystemSysOps: Math.round( + (Date.now() - new Date("2022-01-01").getTime()) / 1000 / 60 / 60 / 24 / 365 + ), +}; const yourpassSkills = [ "DevOps", @@ -79,13 +70,40 @@ const Experience: React.FC = () => { return ( <> + INVESTBAY s.r.o. + DevOps Architect + + + {intl.formatMessage( + { + defaultMessage: "February 2024 - Present", + id: "Experience.investbay", + }, + { + // not used atm + count: approxCurrentYears.InvestBay, + } + )} + + + {intl.formatMessage(messages.skills)}:{" "} + {yourpassSkills.join(" · ")} + + + YOUR PASS s.r.o. DevOps Engineer - {intl.formatMessage(messages.yourpass, { - count: approxCurrentYears, - })} + {intl.formatMessage( + { + defaultMessage: "July 2021 - Present ({count} years)", + id: "Experience.yourpass", + }, + { + count: approxCurrentYears.YourPass, + } + )} {intl.formatMessage(messages.skills)}:{" "} @@ -96,10 +114,35 @@ const Experience: React.FC = () => { YOUR SYSTEM s.r.o. + SysOps + + + + {intl.formatMessage( + { + defaultMessage: "January 2022 - Present ({count} years)", + id: "Experience.yoursystem", + }, + { + count: approxCurrentYears.YourSystemSysOps, + } + )} + + + {intl.formatMessage(messages.skills)}:{" "} + {yoursystemSkills.join(" · ")} + + + Lead Developer/Architect - {intl.formatMessage(messages.yoursystem)} + + {intl.formatMessage({ + defaultMessage: "February 2016 - December 2021 (5 years)", + id: "Experience.yoursystem", + })} + {intl.formatMessage(messages.skills)}:{" "} {yoursystemSkills.join(" · ")} @@ -110,8 +153,19 @@ const Experience: React.FC = () => { Developer - {intl.formatMessage(messages.past)} - {intl.formatMessage(messages.pastDescription)} + + {intl.formatMessage({ + defaultMessage: "Birth - February 2016", + id: "Experience.past", + })} + + + {intl.formatMessage({ + defaultMessage: + "Working on smaller projects such as chats, forum based websites, web based presentations, most notably a system for handling the driver training center and driving school agenda... Tinkering...", + id: "Experience.pastDescription", + })} + ); diff --git a/app/frontend/src/components/CV/Skills.tsx b/app/frontend/src/components/CV/Skills.tsx index 932f0ab..b510429 100644 --- a/app/frontend/src/components/CV/Skills.tsx +++ b/app/frontend/src/components/CV/Skills.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { defineMessages, useIntl } from "react-intl"; +import { useIntl } from "react-intl"; import { SubHeadline } from "../common/Headline"; import { List, ListItem } from "../common/List"; @@ -7,43 +7,6 @@ import { Spacer } from "../common/Spacer"; import { Paragraph } from "../common/Text"; import Skill from "./Skill"; -const messages = defineMessages({ - backendDevelopment: { - defaultMessage: - "Deep knowledge of backend operations, mostly supporting web based applications using various technologies, programming languages and frameworks.", - id: "Skills.backendDevelopment", - }, - backendDevelopmentAdditional: { - defaultMessage: - "In recent years, the main focus was on Go to write tooling and backend services.", - id: "Skills.backendDevelopment", - }, - devops: { - defaultMessage: - "Several years of experience developing, maintaining and adhering to the DevOps practices to streamline organization's processes across both backend and frontend development.", - id: "Skills.devops", - }, - frontendDevelopment: { - defaultMessage: - "Extensive experience in frontend development spanning back to the early 2000s.", - id: "Skills.frontendDevelopment", - }, - infrastructureOperations: { - defaultMessage: - "Throughout my career, I have gained valuable experience in developing and maintaining high-load infrastructures over several years.", - id: "Skills.infrastructureOperations", - }, - infrastructureOperationsAdditional: { - defaultMessage: - "Following the OCI (Open Container Initiative) and leveraging Docker and Kubernetes to create highly available deployments, primarily on the AWS platform, was a challenging and enjoyable experience, that has greatly enhanced my skills in this area.", - id: "Skills.infrastructureOperationsAdditional", - }, - otherNotableSkills: { - defaultMessage: "Other notable skills", - id: "Skills.otherNotableSkills", - }, -}); - type OtherSkill = { title: string; description?: string; @@ -51,13 +14,13 @@ type OtherSkill = { const otherSkills: OtherSkill[] = [ { - title: "Primary languages", - description: "Go, Typescript (and Javascript)", + title: "Strong proficiency in", + description: "Go, Typescript (and Javascript), Bash, IaaC tools", }, { - title: "Infrastructure based skills", + title: "Infrastructure related skills", description: - "Kubernetes and AWS EKS, Containerized applications, Linux system administration, Amazon Web Services - good understanding of Networking, RDS, Queues", + "Kubernetes and AWS EKS, Containerized applications, Linux system administration, Amazon Web Services - good understanding of Networking, RDS, Queues. Notable experience with GCP/Azure.", }, { title: "Databases", @@ -88,21 +51,50 @@ const Skills: React.FC = () => { return ( <> - {intl.formatMessage(messages.devops)} + + {intl.formatMessage({ + defaultMessage: + "Several years of experience developing, maintaining and adhering to the DevOps practices to streamline organization's processes across both backend and frontend development.", + id: "Skills.devops", + })} + - {intl.formatMessage(messages.frontendDevelopment)} + {intl.formatMessage({ + defaultMessage: + "Extensive experience in frontend development spanning back to the early 2000s.", + id: "Skills.frontendDevelopment", + })} - {intl.formatMessage(messages.backendDevelopment)} - {intl.formatMessage(messages.backendDevelopmentAdditional)} + {intl.formatMessage({ + defaultMessage: + "Deep knowledge of backend operations, mostly supporting web based applications using various technologies, programming languages and frameworks.", + id: "Skills.backendDevelopment", + })} + {intl.formatMessage({ + defaultMessage: + "In recent years, the main focus was on Go to write tooling and backend services.", + id: "Skills.backendDevelopment", + })} - {intl.formatMessage(messages.infrastructureOperations)} - {intl.formatMessage(messages.infrastructureOperationsAdditional)} + {intl.formatMessage({ + defaultMessage: + "Throughout my career, I have gained valuable experience in developing and maintaining high-load infrastructures over several years.", + id: "Skills.infrastructureOperations", + })} + {intl.formatMessage({ + defaultMessage: + "Following the OCI (Open Container Initiative) and leveraging Docker and Kubernetes to create highly available deployments, primarily on the AWS platform, was a challenging and enjoyable experience, that has greatly enhanced my skills in this area.", + id: "Skills.infrastructureOperationsAdditional", + })} - {intl.formatMessage(messages.otherNotableSkills)} + {intl.formatMessage({ + defaultMessage: "Other notable skills", + id: "Skills.otherNotableSkills", + })} {otherSkills.map((s) => ( diff --git a/app/frontend/src/components/Navigation/MainNavigation.tsx b/app/frontend/src/components/Navigation/MainNavigation.tsx index a4af62b..5acbb6a 100644 --- a/app/frontend/src/components/Navigation/MainNavigation.tsx +++ b/app/frontend/src/components/Navigation/MainNavigation.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useRef } from "react"; -import { defineMessages, useIntl } from "react-intl"; +import { useIntl } from "react-intl"; import { CONTACT_EMAIL, CONTACT_PHONE } from "../../config/environment"; import { Contact } from "../common/Contact"; @@ -7,29 +7,6 @@ import { List, ListItem } from "../common/List"; import { Spacer } from "../common/Spacer"; import NavigationHeadline from "./NavigationHeadline"; -const messages = defineMessages({ - certifications: { - defaultMessage: "Certifications", - id: "Navigation.certifications", - }, - contact: { - defaultMessage: "Contact", - id: "Navigation.contact", - }, - experience: { - defaultMessage: "Experience", - id: "Navigation.experience", - }, - objective: { - defaultMessage: "Objective", - id: "Navigation.objective", - }, - topSkills: { - defaultMessage: "Top Skills", - id: "Navigation.topSkills", - }, -}); - const getTopOffset = (input: HTMLElement) => { let el: HTMLElement | Element | null = input; let o = 0; @@ -110,7 +87,10 @@ const MainNavigation: React.FC = () => { return (
- {intl.formatMessage(messages.contact)} + {intl.formatMessage({ + defaultMessage: "Contact", + id: "Navigation.contact", + })} @@ -118,28 +98,40 @@ const MainNavigation: React.FC = () => { - {intl.formatMessage(messages.objective)} + {intl.formatMessage({ + defaultMessage: "Objective", + id: "Navigation.objective", + })} - {intl.formatMessage(messages.topSkills)} + {intl.formatMessage({ + defaultMessage: "Top Skills", + id: "Navigation.topSkills", + })} DevOps - Front-End Development - Back-End Development Kubernetes - Typescript + Linux Go + Typescript + Back-End Development + Front-End Development + Scripting: + Bash, Python, Lua - {intl.formatMessage(messages.certifications)} + {intl.formatMessage({ + defaultMessage: "Certifications", + id: "Navigation.certifications", + })} @@ -152,7 +144,10 @@ const MainNavigation: React.FC = () => { - {intl.formatMessage(messages.experience)} + {intl.formatMessage({ + defaultMessage: "Experience", + id: "Navigation.experience", + })}
); diff --git a/app/frontend/src/views/Dashboard.tsx b/app/frontend/src/views/Dashboard.tsx index fd4c163..77a43d9 100644 --- a/app/frontend/src/views/Dashboard.tsx +++ b/app/frontend/src/views/Dashboard.tsx @@ -1,6 +1,6 @@ import styled from "@emotion/styled"; import React from "react"; -import { defineMessages, useIntl } from "react-intl"; +import { useIntl } from "react-intl"; import { Experience, Skills, Summary } from "../components/CV"; import MainLayout from "../components/Layout/MainLayout"; @@ -11,21 +11,6 @@ import { Headline, SubHeadline } from "../components/common/Headline"; import { Spacer } from "../components/common/Spacer"; import { CONTACT_EMAIL, CONTACT_PHONE, POSITION } from "../config/environment"; -const messages = defineMessages({ - experienceTitle: { - defaultMessage: "Experience", - id: "Dashboard.experienceTitle", - }, - location: { - defaultMessage: "Central Bohemia, Czechia", - id: "Dashboard.location", - }, - skillsTitle: { - defaultMessage: "Skills", - id: "Dashboard.skillsTitle", - }, -}); - const HiddenWithNav = styled("div")({ display: "none", [hideNavigationMQ]: { @@ -41,7 +26,10 @@ const Dashboard: React.FC = () => { Lukáš Čech {POSITION} - {intl.formatMessage(messages.location)} + {intl.formatMessage({ + defaultMessage: "Central Bohemia, Czechia", + id: "Dashboard.location", + })} @@ -58,7 +46,12 @@ const Dashboard: React.FC = () => {
- {intl.formatMessage(messages.skillsTitle)} + + {intl.formatMessage({ + defaultMessage: "Skills", + id: "Dashboard.skillsTitle", + })} + @@ -68,7 +61,10 @@ const Dashboard: React.FC = () => { - {intl.formatMessage(messages.experienceTitle)} + {intl.formatMessage({ + defaultMessage: "Experience", + id: "Dashboard.experienceTitle", + })} diff --git a/app/frontend/src/views/NotFound.tsx b/app/frontend/src/views/NotFound.tsx index bd202bb..8eaa7f1 100644 --- a/app/frontend/src/views/NotFound.tsx +++ b/app/frontend/src/views/NotFound.tsx @@ -1,16 +1,9 @@ import styled from "@emotion/styled"; import React from "react"; -import { defineMessages, useIntl } from "react-intl"; +import { useIntl } from "react-intl"; import { Link } from "../components/common/Link"; -const messages = defineMessages({ - notFound: { - defaultMessage: "Nothing to see here", - id: "Router.NotFound", - }, -}); - const Root = styled("div")({ display: "flex", flexDirection: "column", @@ -25,7 +18,12 @@ const NotFound = () => { return ( -

{intl.formatMessage(messages.notFound)}

+

+ {intl.formatMessage({ + defaultMessage: "Nothing to see here", + id: "Router.NotFound", + })} +

Go home
);