Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified public/Resume.pdf
Binary file not shown.
96 changes: 73 additions & 23 deletions src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,38 @@ export default function Page() {
</Markdown>
</BlurFade>
</section>
<section id="education">
<div className="flex min-h-0 flex-col gap-y-3">
<BlurFade delay={BLUR_FADE_DELAY * 7}>
<h2 className="text-xl font-bold">Education</h2>
</BlurFade>
{DATA.education.map((education, id) => (
<BlurFade
key={education.school}
delay={BLUR_FADE_DELAY * 8 + id * 0.05}
>
<ResumeCard
key={education.school}
href={education.href}
logoUrl={education.logoUrl}
altText={education.school}
title={education.school}
subtitle={education.degree}
period={`${education.start} - ${education.end}`}
/>
</BlurFade>
))}
</div>
</section>
<section id="work">
<div className="flex min-h-0 flex-col gap-y-3">
<BlurFade delay={BLUR_FADE_DELAY * 5}>
<BlurFade delay={BLUR_FADE_DELAY * 9}>
<h2 className="text-xl font-bold">Work Experience</h2>
</BlurFade>
{DATA.work.map((work, id) => (
<BlurFade
key={work.company}
delay={BLUR_FADE_DELAY * 6 + id * 0.05}
delay={BLUR_FADE_DELAY * 10 + id * 0.05}
>
<ResumeCard
key={work.company}
Expand All @@ -74,37 +97,64 @@ export default function Page() {
))}
</div>
</section>
<section id="education">
<section id="research">
<div className="flex min-h-0 flex-col gap-y-3">
<BlurFade delay={BLUR_FADE_DELAY * 7}>
<h2 className="text-xl font-bold">Education</h2>
<BlurFade delay={BLUR_FADE_DELAY * 11}>
<h2 className="text-xl font-bold">Research Experience</h2>
</BlurFade>
{DATA.education.map((education, id) => (
{DATA.research.map((research, id) => (
<BlurFade
key={education.school}
delay={BLUR_FADE_DELAY * 8 + id * 0.05}
key={research.company}
delay={BLUR_FADE_DELAY * 12 + id * 0.05}
>
<ResumeCard
key={education.school}
href={education.href}
logoUrl={education.logoUrl}
altText={education.school}
title={education.school}
subtitle={education.degree}
period={`${education.start} - ${education.end}`}
key={research.company}
logoUrl={research.logoUrl}
altText={research.company}
title={research.company}
subtitle={research.title}
href={research.href}
badges={research.badges}
period={`${research.start} - ${research.end ?? "Present"}`}
description={research.description}
/>
</BlurFade>
))}
</div>
</section>
<section id="leadership">
<div className="flex min-h-0 flex-col gap-y-3">
<BlurFade delay={BLUR_FADE_DELAY * 13}>
<h2 className="text-xl font-bold">Leadership Experience</h2>
</BlurFade>
{DATA.leadership.map((leadership, id) => (
<BlurFade
key={leadership.company}
delay={BLUR_FADE_DELAY * 14 + id * 0.05}
>
<ResumeCard
key={leadership.company}
logoUrl={leadership.logoUrl}
altText={leadership.company}
title={leadership.company}
subtitle={leadership.title}
href={leadership.href}
badges={leadership.badges}
period={`${leadership.start} - ${leadership.end ?? "Present"}`}
description={leadership.description}
/>
</BlurFade>
))}
</div>
</section>
<section id="skills">
<div className="flex min-h-0 flex-col gap-y-3">
<BlurFade delay={BLUR_FADE_DELAY * 9}>
<BlurFade delay={BLUR_FADE_DELAY * 15}>
<h2 className="text-xl font-bold">Skills</h2>
</BlurFade>
<div className="flex flex-wrap gap-1">
{DATA.skills.map((skill, id) => (
<BlurFade key={skill} delay={BLUR_FADE_DELAY * 10 + id * 0.05}>
<BlurFade key={skill} delay={BLUR_FADE_DELAY * 16 + id * 0.05}>
<Badge key={skill}>{skill}</Badge>
</BlurFade>
))}
Expand All @@ -113,7 +163,7 @@ export default function Page() {
</section>
<section id="projects">
<div className="space-y-12 w-full py-12">
<BlurFade delay={BLUR_FADE_DELAY * 11}>
<BlurFade delay={BLUR_FADE_DELAY * 17}>
<div className="flex flex-col items-center justify-center space-y-4 text-center">
<div className="space-y-2">
<div className="inline-block rounded-lg bg-foreground text-background px-3 py-1 text-sm">
Expand All @@ -134,7 +184,7 @@ export default function Page() {
{DATA.projects.map((project, id) => (
<BlurFade
key={project.title}
delay={BLUR_FADE_DELAY * 12 + id * 0.05}
delay={BLUR_FADE_DELAY * 18 + id * 0.05}
>
<ProjectCard
href={project.href}
Expand All @@ -154,7 +204,7 @@ export default function Page() {
</section>
<section id="certificates">
<div className="space-y-12 w-full py-12">
<BlurFade delay={BLUR_FADE_DELAY * 13}>
<BlurFade delay={BLUR_FADE_DELAY * 19}>
<div className="flex flex-col items-center justify-center space-y-4 text-center">
<div className="space-y-2">
<div className="inline-block rounded-lg bg-foreground text-background px-3 py-1 text-sm">
Expand All @@ -172,12 +222,12 @@ export default function Page() {
</div>
</div>
</BlurFade>
<BlurFade delay={BLUR_FADE_DELAY * 14}>
<BlurFade delay={BLUR_FADE_DELAY * 20}>
<ul className="mb-4 ml-4 divide-y divide-dashed border-l">
{DATA.certificates.map((project, id) => (
<BlurFade
key={project.title + project.dates}
delay={BLUR_FADE_DELAY * 15 + id * 0.05}
delay={BLUR_FADE_DELAY * 21 + id * 0.05}
>
<HackathonCard
title={project.title}
Expand All @@ -193,7 +243,7 @@ export default function Page() {
</section>
<section id="contact">
<div className="grid items-center justify-center gap-4 px-4 text-center md:px-6 w-full py-12">
<BlurFade delay={BLUR_FADE_DELAY * 16}>
<BlurFade delay={BLUR_FADE_DELAY * 22}>
<div className="space-y-3">
<div className="inline-block rounded-lg bg-foreground text-background px-3 py-1 text-sm">
Contact
Expand Down
124 changes: 64 additions & 60 deletions src/data/resume.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -105,18 +105,6 @@ export const DATA = {
},
},
work: [
{
company: "University of Calgary",
href: "https://schulich.ucalgary.ca/",
badges: [],
location: "Calgary, Alberta",
title: "Undergraduate Researcher",
logoUrl: "/ucalgary-logo.jpeg",
start: "Sep. 2025",
end: "Present",
description:
"Designed and implemented a cross-chain data marketplace enabling trustless dataset listing, semantic discovery, and purchase using LLM-based embeddings, smart contracts, and IPFS, with privacy-preserving encrypted data vending and on-chain cryptographic integrity across Ethereum and Solana.",
},
{
company: "Microsoft",
href: "https://www.microsoft.com/en-ca/",
Expand All @@ -129,18 +117,6 @@ export const DATA = {
description:
"Built a custom CUDA all-reduce (TRT plugin) on H200s with NVLink/P2P fallback; optimized GPU comms/GEMM and integrated research into production experiments.",
},
// {
// company: "Agrivanna",
// href: "https://www.agrivanna.com/",
// badges: [],
// location: "Calgary, Alberta",
// title: "Full Stack Engineer Part-Time",
// logoUrl: "/agrivanna-logo.jpeg",
// start: "Sep. 2024",
// end: "Apr. 2025",
// description:
// "Shipped Go/Java microservices and ML features (scikit-learn + PyTorch) for personalized health; deployed FastAPI on Kubernetes and mentored teammates on Docker/K8s.",
// },
{
company: "Aptum",
href: "https://aptum.com/",
Expand All @@ -153,30 +129,6 @@ export const DATA = {
description:
"Scaled Kubernetes infra with Terraform/Helm and Jenkins CI, doubling throughput; migrated a monolith to gRPC microservices (Java/Spring/MySQL) with a 66% perf lift.",
},
// {
// company: "Student Energy UCalgary",
// badges: [],
// href: "https://studentenergyuofc.org/",
// location: "Calgary, Alberta",
// title: "Vice-President Software Development",
// logoUrl: "/seuc-logo.png",
// start: "Sep. 2023",
// end: "Apr. 2024",
// description:
// "Launched a Next.js/TypeScript news app (+70% engagement) and automated AWS infra with Terraform + GitHub Actions; led hiring and set engineering standards.",
// },
// {
// company: "ReThread",
// badges: [],
// href: "#",
// location: "Calgary, Alberta",
// title: "Backend Engineer Part-Time",
// logoUrl: "/rethread-logo.png",
// start: "Sep. 2023",
// end: "Apr. 2024",
// description:
// "Designed TypeScript/Express microservices with Redis caching on AWS/Kubernetes; prototyped a PyTorch CNN for fabric classification and set CI/code-review practices.",
// },
{
company: "Sigma Foodservice",
href: "https://www.sigma-alimentos.com/en/",
Expand All @@ -189,18 +141,70 @@ export const DATA = {
description:
"Integrated Copomex API in .NET/C# for 10k+ locations (↑ address accuracy 80%); added Playwright E2E + Jenkins to slash QA time and speed deployments.",
},
// {
// company: "Bandist",
// href: "#",
// badges: [],
// location: "Calgary, AB",
// title: "Frontend Engineer Part-Time",
// logoUrl: "/bandist-logo.png",
// start: "Sep. 2022",
// end: "Apr. 2023",
// description:
// "Connected Django app to Ticketmaster/Spotify, cut costs 20%, and managed PostgreSQL/GCP for 10k+ MAU; shipped a Flutter mobile app with 99.95% uptime on Firebase.",
// },
],
research: [
{
company: "University of Calgary",
href: "https://schulich.ucalgary.ca/",
badges: [],
location: "Calgary, Alberta",
title: "Undergraduate Researcher",
logoUrl: "/ucalgary-logo.jpeg",
start: "Sep. 2025",
end: "Present",
description:
"Designed and implemented a cross-chain data marketplace enabling trustless dataset listing, semantic discovery, and purchase using LLM-based embeddings, smart contracts, and IPFS, with privacy-preserving encrypted data vending and on-chain cryptographic integrity across Ethereum and Solana.",
},
],
leadership: [
{
company: "Agrivanna",
href: "https://www.agrivanna.com/",
badges: [],
location: "Calgary, Alberta",
title: "Full Stack Engineer Part-Time",
logoUrl: "/agrivanna-logo.jpeg",
start: "Sep. 2024",
end: "Apr. 2025",
description:
"Shipped Go/Java microservices and ML features (scikit-learn + PyTorch) for personalized health; deployed FastAPI on Kubernetes and mentored teammates on Docker/K8s.",
},
{
company: "Student Energy UCalgary",
badges: [],
href: "https://studentenergyuofc.org/",
location: "Calgary, Alberta",
title: "Vice-President Software Development",
logoUrl: "/seuc-logo.png",
start: "Sep. 2023",
end: "Apr. 2024",
description:
"Launched a Next.js/TypeScript news app (+70% engagement) and automated AWS infra with Terraform + GitHub Actions; led hiring and set engineering standards.",
},
{
company: "ReThread",
badges: [],
href: "#",
location: "Calgary, Alberta",
title: "Backend Engineer Part-Time",
Comment thread
Axeloooo marked this conversation as resolved.
logoUrl: "/rethread-logo.png",
start: "Sep. 2023",
end: "Apr. 2024",
description:
"Designed TypeScript/Express microservices with Redis caching on AWS/Kubernetes; prototyped a PyTorch CNN for fabric classification and set CI/code-review practices.",
},
{
company: "Bandist",
href: "#",
badges: [],
location: "Calgary, AB",
title: "Frontend Engineer Part-Time",
Comment thread
Axeloooo marked this conversation as resolved.
logoUrl: "/bandist-logo.png",
start: "Sep. 2022",
end: "Apr. 2023",
description:
"Connected Django app to Ticketmaster/Spotify, cut costs 20%, and managed PostgreSQL/GCP for 10k+ MAU; shipped a Flutter mobile app with 99.95% uptime on Firebase.",
},
],
education: [
// {
Expand Down
Loading