Skip to content

feat: complete resume system + certificate verification + performance fixes - #9

Merged
securitywithhem merged 3 commits into
Hemfrom
scenario-rebuild
Jul 22, 2026
Merged

feat: complete resume system + certificate verification + performance fixes#9
securitywithhem merged 3 commits into
Hemfrom
scenario-rebuild

Conversation

@securitywithhem

Copy link
Copy Markdown
Owner

Summary

Comprehensive portfolio refinements across three areas: dual-resume system with interactive modal selection, complete certificate verification pipeline with all credentials wired up, and critical performance/hydration fixes.

Key Changes

Resume System (New)

  • Created two targeted, recruiter-optimized resumes:
    • Software Developer — backend/cloud/secure-dev focus (FastAPI, Docker, AWS)
    • Cybersecurity/GRC — VAPT → Governance, Risk & Compliance positioning
  • Built interactive modal component (components/resume/resume-modal.tsx) that appears when users click "Resume"
  • Users can select and download the appropriate resume for their target role
  • Both resumes built from existing portfolio facts only (no invented claims) and optimized for ATS parsing + HR review speed
  • Proper file naming for direct download attribution

Certificate Verification (Complete)

  • Wired up all 10 industry certifications with verification links:
    • AWS Academy (Machine Learning Foundations, Data Engineering)
    • Google Cybersecurity Professional Certificate
    • TryHackMe (6 learning paths: Offensive Pentesting, Web App Pentesting, Jr Penetration Tester, Web Fundamentals, Cyber Security 101, Pre Security)
    • ISEA Digital Certificate
  • Added ISEA certificate entry to data/certificates.ts
  • Certificate PDFs copied to public/certificates/ with id-based naming
  • Build-time verification ensures only files that actually exist get "View ↗" links (no dead links ever)

Performance & Correctness

  • Fixed React hydration mismatch in Approach section's lattice figure
  • SVG circle coordinates (cx/cy) now rounded to consistent decimal precision (toFixed(1))
  • Eliminates server/client render divergence that was causing hydration errors

Testing Checklist

  • Resume modal opens on Hero "Resume" click
  • Both resume PDFs download with correct filenames
  • Modal closes on Escape key press
  • Modal closes on click-outside
  • All 10 certificate "View ↗" links are clickable and point to correct files
  • No hydration errors in browser console on page load
  • Approach lattice figure renders cleanly (no visual glitches)
  • Mobile: resume modal is fully usable on small screens
  • PDF downloads work in different browsers

Files Changed

New Components

  • components/resume/resume-modal.tsx — Interactive resume selector modal

Modified Components

  • components/sections/hero.tsx — Integrated resume modal, replaced direct link
  • components/approach/lattice-fallback.tsx — Fixed SVG coordinate precision

Data & Assets

  • data/certificates.ts — Added ISEA certificate entry
  • public/resumes/resume-software-developer.pdf — New asset
  • public/resumes/resume-cybersecurity-grc.pdf — New asset
  • public/certificates/ — Added 8 certificate verification files

Documentation

  • resumes/ folder — Markdown source files for both resumes (for future updates)

Breaking Changes

None. Resume link behavior now opens a modal instead of direct download, but functionality is preserved and enhanced.

Performance Impact

Minimal. Resume modal is a lightweight client component with no additional dependencies beyond existing Lucide icons and React hooks.


🎯 Generated with Claude Code

Hem Gabhawala and others added 3 commits July 22, 2026 18:24
Floating-point precision differences in circle coordinates were causing
hydration mismatches between server and client renders. Round to 1 decimal
place (matching the path segments) to ensure SSR/hydration agreement.

feat(credentials): wire up certificate verification files + ISEA cert

Copy 8 certificate files from certificate/ folder into public/certificates/
with id-based naming, enabling automatic "View ↗" links in the Credentials
section. Links point to issuer URLs where set, otherwise local PDFs/images.
Adds ISEA Digital Certificate (CDAC/MeitY) to the certifications data layer.

Design is already final — no UI changes, only data + file wiring.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
…ackMe certs

Wire up the two missing TryHackMe certificate files with corrected completion
dates from the official certificates (09-20 and 08-06 respectively).

All TryHackMe paths now have verification links in the Credentials section.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Add interactive modal for resume selection. Users click "Resume" button to
open a dialog with two download options:
- Software Developer resume (backend/cloud focus)
- Cybersecurity/GRC resume (VAPT/governance focus)

Each resume has proper filenames for download and closes modal on selection.
Supports Escape key and click-outside to close.

- New component: components/resume/resume-modal.tsx (client component)
- Updated: components/sections/hero.tsx to use modal instead of direct link
- Copied PDFs to public/resumes/ for web access

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@securitywithhem
securitywithhem merged commit c1ad8e1 into Hem Jul 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant