From a59eb9830b5675c4807282b67fa0bd803a5af323 Mon Sep 17 00:00:00 2001 From: Ivan Dimitrov Date: Mon, 13 Nov 2023 16:36:17 +0200 Subject: [PATCH] experience and pages --- cv.tsx | 219 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 137 insertions(+), 82 deletions(-) diff --git a/cv.tsx b/cv.tsx index aa40aab..2c78f29 100644 --- a/cv.tsx +++ b/cv.tsx @@ -24,7 +24,7 @@ const tw = createTw({ const linkStyles = "no-underline text-slate-50 flex flex-row gap-1" const pageStyles = "w-full h-full text-slate-50 bg-slate-950 flex flex-col p-12 text-base" -const sectionStyles = "w-full flex flex-col m-4" +const sectionStyles = "w-full flex flex-col" const svg = (paths: string[]) => {paths.map(p => ( @@ -73,6 +73,9 @@ const tech = { "OAuth2", "H2", "Spring Boot Actuator", + "Maven", + "Gradle", + "Ant", ], web: [ "JavaScript", @@ -102,6 +105,7 @@ const tech = { "vim", "Monit", "CLI", + "pandoc", ], git: [ "git", @@ -132,18 +136,65 @@ const tech = { "Apache Spark", "Apache NiFi", ], + python: [ + "python", + "BeautifulSoup4", + "requests", + "pypandoc", + "markdownify", + "html2text", + "Poetry", + ], + nextjs: [ + "NextJS 12", + "NextJS 13", + "NextJS 14", + ], + styles: [ + "CSS", + "SASS", + "TailwindCSS", + "DaisyUI", + "tailwind-scrollbar", + ], + general: [ + "Markdown", + "Google", + "DuckDuckGo", + "PDF", + "Email", + ], } const techKeys = [...Object.keys(tech)] as const -const cnetTech: string[] = techKeys - .filter(e => !e.includes("hybris")) - .filter(e => !e.includes("payment")) +const filterKeysIncl = (obj: readonly string[], keys: string[]) => { + return obj.filter(e => keys.includes(e)) +} +const filterKeysExcl = (obj: readonly string[], keys: string[]) => { + return obj.filter(e => !keys.includes(e)) +} + +const cnetTech: string[] = filterKeysExcl(techKeys, + ["hybris", "payment", "dataIntegration", "python", "nextjs", "styles"] +) // @ts-ignore .map(e => tech[e]).flat() -const raTech: string[] = techKeys +const raTech: string[] = filterKeysExcl(techKeys, + ["dataIntegration", "python", "nextjs", "styles"] +) // @ts-ignore .map(e => tech[e]).flat() +const ncTech: string[] = filterKeysIncl(techKeys, + ["java", "dataIntegration", "git"] +) + // @ts-ignore + .map(e => tech[e]).flat() +const hoi2Tech: string[] = filterKeysIncl(techKeys, + ["python", "nextjs", "styles", "linux", "git", "general"] +) + // @ts-ignore + .map(e => tech[e]).flat().concat(["Wix"]) const experience = ({ @@ -155,40 +206,41 @@ const experience = ({ description, technologies, links -}: Experience) => ( - - - {position} - at - {company}, {location} - from - {from.toDateString()} - to - {to.toDateString()} - - {links && ( - - {links.map(l => ( - - {svg([linkPath])} - {l.text} +}: Experience) => + + + + {position} + at + {company}, {location} + from + {from.toDateString()} + to + {to.toDateString()} + + {links && ( + + {links.map(l => ( + + {svg([linkPath])} + {l.text} + + ))} + + )} + + {description} + + + {technologies.map(t => ( + + + {t} ))} - )} - - {description} - - - {technologies.map(t => ( - - - {t} - - ))} -) const Links = () => ( @@ -199,53 +251,6 @@ const Links = () => ( ) -const Experience = () => ( - - Experience - {experience({ - company: "HOI 2 Bunker", - position: "Freelance Full Stack Software Developer", - location: "UK", - from: new Date("22 Jun 2023"), - to: new Date("27 Jun 2023"), - description: "", - technologies: raTech - })} - {experience({ - company: "North Concepts", - position: "Technical Writer for Java Data Pipeline Library", - location: "Canada", - from: new Date("25 May 2023"), - to: new Date("20 Jun 2023"), - description: "Wrote technical documentation and content for the DataPipeline library by NorthConcepts.", - technologies: [...tech.java, ...tech.dataIntegration, ...tech.git, "WordPress"] - })} - {experience({ - company: "RA Creative", - position: "Full Stack Software Developer", - location: "Nottingham, UK", - from: new Date("Dec 2020"), - to: new Date("20 Jan 2023"), - description: "Worked on seven international eCommerce web apps serving customers in the US and Europe.", - technologies: raTech, - links: [ - { text: "RA Creative", href: "https://racreative.co.uk/" }, - { text: "Parcel Lab", href: "https://parcellab.com/" }, - { text: "Wells Fargo", href: "https://www.wellsfargo.com/" }, - ] - })} - {experience({ - company: "Central Net", - position: "Full Stack + Mobile Software Developer", - location: "Blagoevgrad, Bulgaria", - from: new Date("May 2016"), - to: new Date("May 2020"), - description: "Developed a full-stack web + android app helping students book exams, browse resources, see events, news and more.", - technologies: cnetTech - })} - -) - const Intro = () => ( Ivan K. Dimitrov @@ -268,7 +273,57 @@ const CV = () => ( style={tw(pageStyles)}> {divider} - + Experience + + {experience({ + company: "HOI 2 Bunker", + position: "Freelance Full Stack Software Developer", + location: "UK", + from: new Date("22 Jun 2023"), + to: new Date("27 Jun 2023"), + description: "Scraped an old wiki website with over 500 pages and created a new static site generated using Markdown.", + technologies: hoi2Tech + })} + {experience({ + company: "North Concepts", + position: "Technical Writer for Java Data Pipeline Library", + location: "Canada", + from: new Date("25 May 2023"), + to: new Date("20 Jun 2023"), + description: "Wrote technical documentation and content for the DataPipeline library by NorthConcepts.", + technologies: ncTech + })} + {experience({ + company: "RA Creative", + position: "Full Stack Software Developer", + location: "Nottingham, UK", + from: new Date("Dec 2020"), + to: new Date("20 Jan 2023"), + description: "Worked on seven international eCommerce web apps serving customers in the US and Europe.", + technologies: raTech, + links: [ + { text: "RA Creative", href: "https://racreative.co.uk/" }, + { text: "Parcel Lab", href: "https://parcellab.com/" }, + { text: "Wells Fargo", href: "https://www.wellsfargo.com/" }, + ] + })} + + + + + {experience({ + company: "Central Net", + position: "Full Stack + Mobile Software Developer", + location: "Blagoevgrad, Bulgaria", + from: new Date("May 2016"), + to: new Date("May 2020"), + description: "Developed a full-stack web + android app helping students book exams, browse resources, see events, news and more.", + technologies: cnetTech + })} + );