diff --git a/public/favicon.ico b/public/favicon.ico index a11777c..01440aa 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/images/about/gamecube.jpg b/public/images/about/gamecube.jpg new file mode 100644 index 0000000..499ea68 Binary files /dev/null and b/public/images/about/gamecube.jpg differ diff --git a/public/images/about/steak.jpg b/public/images/about/steak.jpg new file mode 100644 index 0000000..2cac2c8 Binary files /dev/null and b/public/images/about/steak.jpg differ diff --git a/public/metaImage.png b/public/images/work/cnh.png similarity index 100% rename from public/metaImage.png rename to public/images/work/cnh.png diff --git a/public/index.html b/public/index.html index 01da36d..5fd18b7 100644 --- a/public/index.html +++ b/public/index.html @@ -1,22 +1,20 @@ - - - - - - - - - - - - Sasha Bayda | Digital Resume - - - -
- - - + + + \ No newline at end of file diff --git a/public/old_favicon.ico b/public/old_favicon.ico new file mode 100644 index 0000000..a11777c Binary files /dev/null and b/public/old_favicon.ico differ diff --git a/src/components/SkillCard.tsx b/src/components/SkillCard.tsx index 1317dc4..8a0a9b2 100644 --- a/src/components/SkillCard.tsx +++ b/src/components/SkillCard.tsx @@ -7,6 +7,7 @@ export interface SkillDetail { export interface SkillCategory { category: string; + description?: string; skills: SkillDetail[]; } @@ -65,6 +66,16 @@ export default function SkillCard({ category, isExpanded, onToggle }: SkillCardP transition={{ duration: 0.3 }} style={{ borderTop: "1px solid rgba(255,255,255,0.2)", paddingTop: "20px" }} > + {category.description && ( +

+ {category.description} +

+ )}
{category.skills.map((skill) => (
diff --git a/src/pages/Skills.tsx b/src/pages/Skills.tsx index 6c11a7f..bee789c 100644 --- a/src/pages/Skills.tsx +++ b/src/pages/Skills.tsx @@ -10,6 +10,7 @@ interface ProfessionalSkill { const TECHNICAL_SKILLS: SkillCategory[] = [ { category: "Languages", + description: "Core programming languages I have utilized across professional roles, academic coursework, and personal projects.", skills: [ { name: "JavaScript (ES6+)", description: "Used for frontend logic in 'Digital Resume', WordPress plugins at 'Allan's Landscaping', and the University of Saskatchewan class 'Full Stack Web Programming'." }, { name: "TypeScript", description: "Primary language for 'Digital Resume' and 'Nutrien' cloud apps" }, @@ -25,6 +26,7 @@ const TECHNICAL_SKILLS: SkillCategory[] = [ }, { category: "Frameworks/Libraries", + description: "Key frameworks and libraries that power my applications, enabling efficient and scalable development.", skills: [ { name: "React", description: "Built UI for 'Digital Resume', 'Nutrien' tools, and projects for the University of Saskatchewan class 'Full Stack Web Programming'." }, { name: "Express.js", description: "Minimalist web framework for Node.js servers. Used for early Server Testing" }, @@ -34,6 +36,7 @@ const TECHNICAL_SKILLS: SkillCategory[] = [ }, { category: "Databases", + description: "Data storage solutions I have implemented for varied use cases, from relational structure to flexible document stores.", skills: [ { name: "PostgreSQL", description: "Backend database for self-hosted services like Authentik and Immich. Used both professionally and at the University of Saskatchewan for various classes." }, { name: "CouchDB", description: "Seamless multi-master sync capability database (No-SQL). Used for 'full stack web programming' class at the University of Saskatchewan." } @@ -41,6 +44,7 @@ const TECHNICAL_SKILLS: SkillCategory[] = [ }, { category: "DevOps & Tools", + description: "Tools and practices I employ to automate workflows, manage infrastructure, and ensure reliable deployments.", skills: [ { name: "Docker", description: "Containerized the 'Digital Resume', 'Gitea Workers', and 20+ 'self-hosted' services." }, { name: "CircleCI", description: "Managed CI/CD pipelines and deployment workflows at 'Nutrien'." }, @@ -51,7 +55,8 @@ const TECHNICAL_SKILLS: SkillCategory[] = [ ] }, { - category: "AWS Technologies (Nutrien Internship)", + category: "AWS Technologies", + description: "Cloud services I extensively utilized during my internship at Nutrien to build serverless and scalable solutions.", skills: [ { name: "S3", description: "Utilized for scalable object storage and artifact management." }, { name: "Cloudfront", description: "Configured content delivery for refined user experience." }, @@ -66,6 +71,7 @@ const TECHNICAL_SKILLS: SkillCategory[] = [ }, { category: "Concepts", + description: "Fundamental software engineering principles and methodologies that guide my architectural decisions and development process.", skills: [ { name: "RESTful APIs", description: "Designed and consumed APIs for 'Digital Resume', 'Nutrien', and the University of Saskatchewan class 'Mobile & Cloud Computing'." }, { name: "Agile/Scrum", description: "Participated in iterative delivery and sprint planning at 'Nutrien'." }, diff --git a/src/pages/WorkExperience.tsx b/src/pages/WorkExperience.tsx index 9e26f2a..4bb1487 100644 --- a/src/pages/WorkExperience.tsx +++ b/src/pages/WorkExperience.tsx @@ -48,7 +48,7 @@ const WORK_EXPERIENCES = [ "Leveraged Python and OpenCV to control the simulator, ensuring accurate performance evaluations.", "Utilized C# to integrate controls into the testing framework, streamlining the automation process." ], - image: "/metaImage.png", + image: "/images/work/cnh.png", highlighted: true }, {