Skip to content

Commit

Permalink
Resolve merge conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
josephdburdick committed Jun 26, 2024
2 parents 19a3374 + 9d3865b commit bd399c4
Show file tree
Hide file tree
Showing 25 changed files with 303 additions and 65 deletions.
Binary file modified bun.lockb
Binary file not shown.
Binary file added public/assets/images/avatars/eric.webp
Binary file not shown.
Binary file added public/assets/images/avatars/matt.webp
Binary file not shown.
Binary file added public/assets/images/avatars/nana.webp
Binary file not shown.
Binary file added public/assets/images/avatars/praneeth.webp
Binary file not shown.
Binary file added public/assets/images/avatars/roy.webp
Binary file not shown.
Binary file added public/assets/images/avatars/todd.webp
Binary file not shown.
Binary file added public/assets/images/avatars/travis.webp
Binary file not shown.
Binary file added public/assets/images/logos/adoptive.webp
Binary file not shown.
Binary file added public/assets/images/logos/blue-chair-bay.webp
Binary file not shown.
Binary file added public/assets/images/logos/ncpc.webp
Binary file not shown.
Binary file added public/assets/images/logos/wwglass.webp
Binary file not shown.
7 changes: 5 additions & 2 deletions src/api/experience.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
---
title: Experience
subtitle: Showcasing over a decade of expertise and innovation across various roles and industries
experience:
- company: Unqork
logo: ${basePath}/assets/images/logos/unqork.svg
Expand Down Expand Up @@ -120,7 +122,8 @@ experience:
Brand Development,
]
- company: Adoptive
logo: ${basePath}/assets/images/logos/adoptive.jpg
logo: ${basePath}/assets/images/logos/adoptive.webp
remote: true
roles:
- title: UX, Lead Front-end Engineer
location: Soho, New York City
Expand Down Expand Up @@ -237,7 +240,7 @@ experience:
Print Media,
]
- company: National Crime Prevention Council
logo: ${basePath}/assets/images/logos/ncpc.png
logo: ${basePath}/assets/images/logos/ncpc.webp
location: Washington, DC
disabled: true
roles:
Expand Down
130 changes: 81 additions & 49 deletions src/api/recommendations.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,84 @@
---
title: Recommendations
subtitle: Read what clients and colleagues have to say
recommendations:
received:
- name: Eric Ma
connection: 1st
title: Engineering Manager + Caregivers ERSG Engagement Co-Chair at Unqork
date: 2024-06-03
relationship: Eric was senior to Joseph but didn't manage Joseph directly
visibility: All LinkedIn members
recommendation: >
Joe epitomizes the qualities of what like to call a responsible engineer. It's one thing to be good at writing code (which Joe is) and it's another to go the extra mile.
He just doesn't do the work that he's assigned to do. Joe makes sure to understand the why. This is how you get output from an engineering team that is high quality, that catches edge cases, and that truly solves the problems presenting your users, by having an engineer like Joe asking the right questions and leading by example.
I count myself lucky I had the opportunity to rely on his work and envy whoever gets to work with him in his career.
- name: Travis Hubbard
connection: 1st
title: Staff Engineer | Technical Leadership & Mentorship
date: 2024-06-03
relationship: Travis was senior to Joseph but didn't manage Joseph directly
visibility: All LinkedIn members
recommendation: >
I had the pleasure of working with Joe at Unqork, and he is a fantastic engineer with a remarkable eye for UI/UX and accessibility. Joe excels at asking insightful questions and raising important considerations, helping teams break down work and fully understand requirements. His deeply analytical mindset enables him to solve business challenges in a holistic and effective manner.
Joe is not only a skilled problem-solver but also a great team player. He actively supports his teammates, always being one of the first to jump on calls to answer questions or provide a second pair of eyes. His commitment to driving code quality is evident through his thorough PR comments and willingness to pair with other developers.
I thoroughly enjoyed my time working with Joe, and I believe he would be a brilliant addition to any team.
- name: Nana T. Baffour-Awuah
connection: 1st
title: Writer | Strategist | Consultant
date: 2016-07-23
relationship: Nana T. worked with Joseph but on different teams
visibility: All LinkedIn members
recommendation: >
Over the two years that I've known Joe, since meeting at Adoptive, I've had the opportunity to work with and get to know one of the most hardworking, creative, resolute and generous people I've met in my career thus far. Joe's work ethic is impeccable, and he is a genuinely generous person who gives of himself to both his work and his team. Joe is an asset--any team would be very lucky to have him!
- name: Matt Staudt
connection: 1st
title: Bootstrap Entrepreneur + Marketing Pro | CEO @ GAME UP® Nutrition | President STAUDT agency | Created/Sold High Rollerz® Jiu Jitsu
date: 2014-03-06
relationship: Matt worked with Joseph but they were at different companies
visibility: All LinkedIn members
recommendation: >
I wanted to take a moment to recommend Joe Burdick. I have worked with Joe not only in his current role as Founder of Joey Labs but also during both of our time at SGC. Having worked with Joe on multiple projects I am extremely confident in his abilities and work ethic which both exceed what I am accustomed to. Joe is my first call when I have a technical question and he has never ceased to amaze me with his insight and can-do attitude. He is extremely knowledgable and is a problem solver. Joe is a rare find, a pleasure to work with and as a result of his expertise and professionalism is an extremely valuable addition to any team.
- name: Todd Post
connection: 1st
title: Strategic Communications Executive | Senior Public Affairs Advisor | Communications Specialist | Vice President of Communications / In-House + Agency → Humanizing integrated strategic communications
date: 2007-01-24
relationship: Todd managed Joseph directly
visibility: All LinkedIn members
recommendation: >
Joe's creativity and attention to detail coupled with his great attitude and sense of humor made him a valuable asset to the department, especially when it came to graphic design, web page management, and other technical skills.
- name: Praneeth Moka
company: unqork
avatar: ${basePath}/assets/images/avatars/praneeth.webp
title: Staff Engineer at Unqork | Full Stack Development
shortTitle: Staff Engineer
date: 2024-06-25
relationship: Praneeth was senior to Joe but didn't manage Joe directly
body: >
I had the pleasure of working with Joe for over 2 years on various projects. Joe is one of the nicest and hardworking individuals I have ever met. Joe has a very good eye for catching things that can be simplified which often helped our team immensely.
Joe has a lot of patience which is a very good asset to have and it was evident in the way he was able to successfully handle long running tasks while also maintaining excellent communication with the team on the progress of the task. He’s always available to help his teammates when they are in need.
Any team would be lucky to have him and I strongly recommend Joe.
- name: Roy V. Sutton
company: unqork
avatar: ${basePath}/assets/images/avatars/roy.webp
title: Director of Engineering at Unqork
shortTitle: Director of Engineering
date: 2024-06-20
relationship: Roy V. managed Joe directly
body: >
I had the pleasure to manage Joe during my time at Unqork. Joe is someone I consider to be a craftsman. His approach when working with code is to leave the code better than he found it. He has a passion for user interface and for making things right for the users and developers.
One notable project Joe worked on was the company's internal design system. As part of his work, Joe assisted teams throughout the platform with getting the most from the system and helping them leverage the components to reduce code and styling. This work greatly improved readability, maintainability and consistency. In addition, Joe is a person I enjoyed working with.
- name: Travis Hubbard
company: unqork
avatar: ${basePath}/assets/images/avatars/travis.webp
title: Staff Engineer | Technical Leadership & Mentorship
shortTitle: Staff Engineer
date: 2024-06-03
relationship: Travis was senior to Joe but didn't manage Joe directly
body: >
I had the pleasure of working with Joe at Unqork, and he is a fantastic engineer with a remarkable eye for UI/UX and accessibility. Joe excels at asking insightful questions and raising important considerations, helping teams break down work and fully understand requirements. His deeply analytical mindset enables him to solve business challenges in a holistic and effective manner.
Joe is not only a skilled problem-solver but also a great team player. He actively supports his teammates, always being one of the first to jump on calls to answer questions or provide a second pair of eyes. His commitment to driving code quality is evident through his thorough PR comments and willingness to pair with other developers.
I thoroughly enjoyed my time working with Joe, and I believe he would be a brilliant addition to any team.
- name: Eric Ma
company: unqork
avatar: ${basePath}/assets/images/avatars/eric.webp
title: Engineering Manager + Caregivers ERSG Engagement Co-Chair at Unqork
shortTitle: Engineering Manager
date: 2024-06-03
relationship: Eric was senior to Joe but didn't manage Joe directly
body: >
Joe epitomizes the qualities of what like to call a responsible engineer. It's one thing to be good at writing code (which Joe is) and it's another to go the extra mile.
He just doesn't do the work that he's assigned to do. Joe makes sure to understand the why. This is how you get output from an engineering team that is high quality, that catches edge cases, and that truly solves the problems presenting your users, by having an engineer like Joe asking the right questions and leading by example.
I count myself lucky I had the opportunity to rely on his work and envy whoever gets to work with him in his career.
- name: Nana T. Baffour-Awuah
company: Adoptive
avatar: ${basePath}/assets/images/avatars/nana.webp
title: Writer | Strategist | Consultant
shortTitle: Writer
date: 2016-07-23
relationship: Nana T. worked with Joe but on different teams
body: >
Over the two years that I've known Joe, since meeting at Adoptive, I've had the opportunity to work with and get to know one of the most hardworking, creative, resolute and generous people I've met in my career thus far. Joe's work ethic is impeccable, and he is a genuinely generous person who gives of himself to both his work and his team.
Joe is an asset--any team would be very lucky to have him!
- name: Matt Staudt
company: studiographica
avatar: ${basePath}/assets/images/avatars/matt.webp
title: Bootstrap Entrepreneur + Marketing Pro | CEO @ GAME UP® Nutrition | President STAUDT agency | Created/Sold High Rollerz® Jiu Jitsu
shortTitle: CEO, Serial Entrepreneur
date: 2014-03-06
relationship: Matt worked with Joe but they were at different companies
body: >
I wanted to take a moment to recommend Joe Burdick. I have worked with Joe not only in his current role as Founder of Joey Labs but also during both of our time at SGC. Having worked with Joe on multiple projects I am extremely confident in his abilities and work ethic which both exceed what I am accustomed to. Joe is my first call when I have a technical question and he has never ceased to amaze me with his insight and can-do attitude. He is extremely knowledgable and is a problem solver. Joe is a rare find, a pleasure to work with and as a result of his expertise and professionalism is an extremely valuable addition to any team.
- name: Todd Post
company: ncpc
avatar: ${basePath}/assets/images/avatars/todd.webp
title: Strategic Communications Executive | Senior Public Affairs Advisor
shortTitle: Communications Executive
date: 2007-01-24
relationship: Todd managed Joe directly
body: >
Joe's creativity and attention to detail coupled with his great attitude and sense of humor made him a valuable asset to the department, especially when it came to graphic design, web page management, and other technical skills.
---
1 change: 1 addition & 0 deletions src/app/_content/About.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export default function Footer() {
]
return (
<div className="relative flex flex-col items-center bg-white">
<div className="border-lime-2200 relative mx-auto h-10 w-10 border-t-4 border-double"></div>
<div className="container z-10 mt-8 w-full items-center lg:absolute lg:mt-0 lg:flex lg:h-full">
<div className="grid gap-4 lg:grid-cols-2">
<div className="space-y-2 rounded-3xl backdrop-blur-md dark:text-black lg:p-8 xl:p-16">
Expand Down
13 changes: 10 additions & 3 deletions src/app/_content/Experience.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ export default function Experience() {
<li
key={`experience-${toKebabCase(experience.company)}`}
id={toKebabCase(experience.company)}
className="grid gap-2 pt-10"
className="grid gap-2 pt-16 md:pt-10"
>
<div className="grid grid-cols-12">
<div className="col-span-12 font-semibold md:col-span-8 md:col-start-4">
Expand Down Expand Up @@ -128,8 +128,15 @@ export default function Experience() {
"md:py16 min-h-[800px] items-center justify-center space-y-8 bg-secondary py-8 lg:py-24 xl:py-36",
)}
>
<div className="container prose-scale space-y-4">
<h4 className="text-2xl font-light">Experience</h4>
<div className="container space-y-4">
<header className="space-y-2 pb-12 text-center">
<RuleHeader side="both" className="font-light">
{data.experience.attributes.title}
</RuleHeader>
<h5 className="text-balance text-3xl font-bold">
{data.experience.attributes.subtitle}
</h5>
</header>
</div>
<div className="flex w-full flex-1">{renderExperiences}</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/app/_content/Intro.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ function Intro() {
}, [])
return (
<>
<div className="flex h-[95dvh] max-h-[2000px] min-h-[600px] flex-col items-center justify-center">
<div className="flex h-[85dvh] max-h-[2000px] min-h-[600px] flex-col items-center justify-center">
<div className="flex w-full flex-1">
<div className="grid w-full grid-rows-[auto_1fr_auto] items-center gap-4 lg:gap-6">
<MainHeader className="pt-8 md:pt-16 lg:pt-24 xl:pt-36">
Expand Down
164 changes: 164 additions & 0 deletions src/app/_content/Recommendations.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
"use client"

import Icon from "@/components/global/Icon"
import RuleHeader from "@/components/global/RuleHeader"
import { useApi } from "@/components/providers/DataProvider"
import {
Carousel,
CarouselApi,
CarouselContent,
CarouselItem,
CarouselNext,
CarouselPrevious,
} from "@/components/ui/carousel"
import convertNewLinesToHTML from "@/lib/convertNewLinesToHTML"
import { Recommendation as RecommendationType } from "@/lib/types"
import { cn } from "@/lib/utils"
import Image from "next/image"
import { useEffect, useState } from "react"

export default function Recommendations() {
const [api, setApi] = useState<CarouselApi>()
const [current, setCurrent] = useState(0)
const { data } = useApi()
const recommendations: RecommendationType[] =
data.recommendations.attributes.recommendations

useEffect(() => {
if (!api) return

api.scrollTo(current)
}, [api, current])
const carouselButtonClassName =
"relative top-0 left-0 right-0 translate-x-0 translate-y-0"
const renderRecommendation = (
recommendation: RecommendationType,
index: number,
) => (
<CarouselItem key={`recommendation-${index}`}>
<div className="grid grid-cols-4 items-start gap-8 lg:items-center">
<div className="col-span-12 flex flex-col justify-between gap-4 text-pretty xl:col-span-1 xl:h-full xl:min-h-60">
<div className="flex w-full flex-col-reverse items-center justify-start gap-4 sm:flex-row lg:items-start xl:gap-4">
<div className="shrink-0 overflow-hidden rounded-full">
<Image
width={64}
height={64}
src={recommendation.avatar}
alt={`${recommendation.name} avatar image`}
/>
</div>
<div className="flex grow flex-col">
<RuleHeader className="text-sm font-semibold lg:text-base">
{recommendation.name}
</RuleHeader>
<small className="text-xs text-muted-foreground lg:text-sm">
{recommendation.title}
</small>
<div className="text-bold flex items-center gap-1 pt-2 text-xs text-muted-foreground lg:hidden">
<Icon.badgeInfo className="shrink-0 text-lime-500" size={16} />{" "}
{recommendation.relationship}
</div>
</div>
<div className="flex items-center gap-2 md:gap-4 lg:hidden">
<CarouselPrevious className={carouselButtonClassName} />
<CarouselNext className={carouselButtonClassName} />
</div>
</div>
<div className="text-bold hidden items-center gap-2 pb-1 text-xs text-muted-foreground lg:flex">
<Icon.badgeInfo className="shrink-0 text-lime-500" />{" "}
{recommendation.relationship}
</div>
</div>
<div className="col-span-12 xl:col-span-3">
<svg
className="mb-4 hidden h-8 w-8 text-gray-400 dark:text-gray-600 lg:block"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
viewBox="0 0 18 14"
>
<path d="M6 0H2a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v1a3 3 0 0 1-3 3H2a1 1 0 0 0 0 2h1a5.006 5.006 0 0 0 5-5V2a2 2 0 0 0-2-2Zm10 0h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v1a3 3 0 0 1-3 3h-1a1 1 0 0 0 0 2h1a5.006 5.006 0 0 0 5-5V2a2 2 0 0 0-2-2Z" />
</svg>
<div
className="prose-scale"
dangerouslySetInnerHTML={{
__html: convertNewLinesToHTML(recommendation.body),
}}
/>
</div>
</div>
</CarouselItem>
)

const renderAvatarButtons = (
recommendation: RecommendationType,
key: number,
) => {
return (
<button
key={key}
onClick={() => setCurrent(key)}
className="relative flex lg:flex-col"
>
<div
className={cn(
"pointer-events-none shrink-0 overflow-hidden rounded-full shadow-none transition-all",
key !== current && "-z-10 grayscale",
key === current &&
"z-10 shadow-2xl ring-2 ring-primary ring-offset-2",
)}
>
<Image
width={64}
height={64}
src={recommendation.avatar}
alt={`${recommendation.name} avatar image`}
/>
</div>
<div
className={cn(
"absolute left-1/2 hidden -translate-x-1/2 flex-col whitespace-nowrap rounded-lg p-2 text-xs shadow-none transition-all lg:flex",
key === current &&
"top-full translate-y-2 bg-primary text-center text-primary-foreground shadow-2xl",
key !== current &&
"top-1/2 -z-20 -translate-y-1/2 rotate-45 bg-secondary text-start blur-sm filter",
)}
>
<span className="font-bold">{recommendation.name}</span>
<span>{recommendation.shortTitle}</span>
</div>
</button>
)
}

const renderRecommendations = (
<Carousel setApi={setApi}>
<CarouselContent>
{recommendations.map(renderRecommendation)}
</CarouselContent>
<div className="mt-12 hidden flex-wrap items-center justify-center gap-10 lg:flex">
{recommendations.map(renderAvatarButtons)}
</div>
</Carousel>
)

return (
<div
className={cn(
"md:py16 items-center justify-center space-y-8 bg-gradient-to-b from-secondary py-8 lg:py-24 xl:py-36",
)}
>
<div className="container space-y-4">
<header className="space-y-2 pb-12 text-center">
<RuleHeader side="both" className="font-light">
{data.recommendations.attributes.title}
</RuleHeader>
<h5 className="text-balance text-3xl font-semibold">
{data.recommendations.attributes.subtitle}
</h5>
</header>
{renderRecommendations}
</div>
</div>
)
}
Loading

0 comments on commit bd399c4

Please sign in to comment.