/* eslint-disable */ const { useState, useEffect, useRef, useCallback } = React; /* ===================== SHARED HOOKS ===================== */ /* Detect reduced motion preference */ function usePrefersReducedMotion() { const [reduced, setReduced] = useState(() => window.matchMedia("(prefers-reduced-motion: reduce)").matches ); useEffect(() => { const mq = window.matchMedia("(prefers-reduced-motion: reduce)"); const handler = (e) => setReduced(e.matches); mq.addEventListener("change", handler); return () => mq.removeEventListener("change", handler); }, []); return reduced; } /* Scroll-triggered reveal for sections */ function useReveal(threshold = 0.12) { const ref = useRef(null); const reduced = usePrefersReducedMotion(); useEffect(() => { const el = ref.current; if (!el) return; if (reduced) { el.classList.add("revealed"); return; } const obs = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { el.classList.add("revealed"); obs.unobserve(el); } }, { threshold } ); obs.observe(el); return () => obs.disconnect(); }, [reduced, threshold]); return ref; } /* Staggered reveal for grids of cards */ function useStagger(count, delay = 80) { const ref = useRef(null); const reduced = usePrefersReducedMotion(); useEffect(() => { const el = ref.current; if (!el) return; const children = el.children; if (reduced) { Array.from(children).forEach(c => c.classList.add("revealed")); return; } const obs = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { Array.from(children).forEach((c, i) => { c.style.transitionDelay = `${i * delay}ms`; c.classList.add("revealed"); }); obs.unobserve(el); } }, { threshold: 0.08 } ); obs.observe(el); return () => obs.disconnect(); }, [reduced, count, delay]); return ref; } /* Track active section for nav highlighting */ function useActiveSection(sectionIds) { const [active, setActive] = useState(""); useEffect(() => { const obs = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) setActive(entry.target.id); }); }, { rootMargin: "-40% 0px -55% 0px" } ); sectionIds.forEach((id) => { const el = document.getElementById(id); if (el) obs.observe(el); }); return () => obs.disconnect(); }, [sectionIds]); return active; } /* Counter animation */ function CountUp({ target, suffix = "", duration = 1200 }) { const [val, setVal] = useState(0); const ref = useRef(null); const reduced = usePrefersReducedMotion(); const num = parseInt(target.replace(/[^0-9]/g, ""), 10) || 0; useEffect(() => { const el = ref.current; if (!el || !num) return; if (reduced) { setVal(num); return; } const obs = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { const start = performance.now(); const animate = (now) => { const progress = Math.min((now - start) / duration, 1); const eased = 1 - Math.pow(1 - progress, 3); setVal(Math.round(eased * num)); if (progress < 1) requestAnimationFrame(animate); }; requestAnimationFrame(animate); obs.unobserve(el); } }, { threshold: 0.5 } ); obs.observe(el); return () => obs.disconnect(); }, [num, reduced, duration]); return {val}{suffix}; } /* ===================== KINETIC TYPE BACKDROP ===================== */ const TYPE_COLUMNS = [ ["GO", "DOCKER", "KUBERNETES", "AWS", "AZURE", "REDIS", "MYSQL", "LINUX", "GRAFANA", "MICROSERVICES", "REST API", "BACKEND"], ["vibe coding", "AI", "cloud native", "serverless", "devops", "containers", "observability", "golang", "open source", "CI/CD", "infrastructure", "scalability"], ["DEVELOPER", "ENGINEER", "BUILDER", "CREATOR", "CONTRIBUTOR", "DEPLOYER", "DEBUGGER", "ARCHITECT", "CODER", "INNOVATOR", "PROBLEM SOLVER", "CRAFTSMAN"], ["gofr", "react", "websocket", "grpc", "jwt", "oauth", "swagger", "prometheus", "helm", "terraform", "github actions", "docker compose"], ["systems design", "clean code", "test driven", "production ready", "high availability", "low latency", "distributed", "event driven", "api first", "cloud cost", "full stack", "type safe"], ]; function KineticType({ parallaxY }) { return (
{TYPE_COLUMNS.map((col, i) => { const dur = 38 + i * 9; const dir = i % 2 === 0 ? "up" : "down"; const items = [...col, ...col, ...col]; return (
{items.map((w, j) => ( {w} ))}
); })}
); } /* ===================== Tech Logos (official CDN) ===================== */ const LOGO_URLS = { "Go": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/go/go-original.svg", "Java": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/java/java-original.svg", "C": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/c/c-original.svg", "C++": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/cplusplus/cplusplus-original.svg", "MySQL": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/mysql/mysql-original.svg", "Redis": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/redis/redis-original.svg", "Docker": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/docker/docker-original.svg", "Kubernetes": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/kubernetes/kubernetes-original.svg", "AWS": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/amazonwebservices/amazonwebservices-plain-wordmark.svg", "Azure": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/azure/azure-original.svg", "Git": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/git/git-original.svg", "Linux": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/linux/linux-original.svg", "Grafana": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/grafana/grafana-original.svg", "Postman": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/postman/postman-original.svg", "GoFr": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/go/go-original.svg", "REST APIs": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/openapi/openapi-original.svg", "Swagger": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/swagger/swagger-original.svg", "OpenObserve": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/grafana/grafana-original.svg", "Lens": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/kubernetes/kubernetes-original.svg", "gomock": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/go/go-original.svg", "CI/CD": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/githubactions/githubactions-original.svg", "JavaScript": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg", "Chrome Extension": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/chrome/chrome-original.svg", "Gemini AI": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/google/google-original.svg", "GitHub API": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/github/github-original.svg", "WebSocket": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/socketio/socketio-original.svg", "JWT": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/json/json-original.svg", "OTP": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/json/json-original.svg", "REST API": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/openapi/openapi-original.svg", "Open Source": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/github/github-original.svg", "gRPC": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/grpc/grpc-original.svg", "MCP Server": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/json/json-original.svg", "npm": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/npm/npm-original-wordmark.svg", "Cursor": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/vscode/vscode-original.svg", "Claude Code": "", "Codex": "", "GitHub": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/github/github-original.svg", "Microservices": "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/docker/docker-original.svg", }; const INLINE_LOGOS = { "Claude Code": C, "Microservices": , "MCP Server": , "Codex": X, "CLI": , }; function Logo({ name }) { if (INLINE_LOGOS[name]) return {INLINE_LOGOS[name]}; const url = LOGO_URLS[name]; if (url) return {name}; return ; } /* ===================== Modal (with focus trap) ===================== */ function Modal({ open, onClose, children }) { const closeRef = useRef(null); useEffect(() => { if (!open) return; const onKey = (e) => { if (e.key === "Escape") onClose(); }; document.body.style.overflow = "hidden"; window.addEventListener("keydown", onKey); if (closeRef.current) closeRef.current.focus(); return () => { document.body.style.overflow = ""; window.removeEventListener("keydown", onKey); }; }, [open, onClose]); if (!open) return null; return (
e.stopPropagation()}> {children}
); } /* ===================== Scroll Progress Bar ===================== */ function ScrollProgress() { const [progress, setProgress] = useState(0); useEffect(() => { const onScroll = () => { const h = document.documentElement.scrollHeight - window.innerHeight; setProgress(h > 0 ? (window.scrollY / h) * 100 : 0); }; window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); return
; } /* ===================== Back to Top ===================== */ function BackToTop() { const [show, setShow] = useState(false); useEffect(() => { const onScroll = () => setShow(window.scrollY > window.innerHeight); window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); if (!show) return null; return ( ); } /* ===================== Nav (with hamburger + auto-hide + active section) ===================== */ function Nav({ theme, toggleTheme, activeSection }) { const [menuOpen, setMenuOpen] = useState(false); const [hidden, setHidden] = useState(false); const lastScrollRef = useRef(0); useEffect(() => { const onScroll = () => { const y = window.scrollY; if (y > 80 && y > lastScrollRef.current + 5) setHidden(true); else if (y < lastScrollRef.current - 5) setHidden(false); lastScrollRef.current = y; }; window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); useEffect(() => { if (menuOpen) document.body.style.overflow = "hidden"; else document.body.style.overflow = ""; return () => { document.body.style.overflow = ""; }; }, [menuOpen]); const navLinks = [ { href: "#about", label: "About" }, { href: "#experience", label: "Experience" }, { href: "#projects", label: "Projects" }, { href: "#education", label: "Education" }, { href: "#stack", label: "Stack" }, ]; return ( <> {menuOpen && (
setMenuOpen(false)}>
e.stopPropagation()}> {navLinks.map((l) => ( setMenuOpen(false)}>{l.label} ))} setMenuOpen(false)}>Contact
)} ); } /* ===================== Hero (with parallax) ===================== */ const ROTATE_WORDS = ["systems.", "microservices.", "with Go.", "for scale.", "from scratch."]; function RotatingWord() { const [i, setI] = useState(0); useEffect(() => { const t = setInterval(() => setI(v => (v + 1) % ROTATE_WORDS.length), 2200); return () => clearInterval(t); }, []); return ( {ROTATE_WORDS.map((w, idx) => ( {w} ))} ); } function Hero() { const [parallaxY, setParallaxY] = useState(0); const reduced = usePrefersReducedMotion(); useEffect(() => { if (reduced) return; const onScroll = () => setParallaxY(window.scrollY * 0.25); window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, [reduced]); return (
Software Developer at ZopDev
Gajendra Malviya

I build

Software developer who loves turning ideas into real, working software. Go enthusiast, open-source contributor, and someone who genuinely enjoys the craft of building things.

scroll
); } function SecH({ num, title, em, lede }) { return
{num}

{title} {em}

{lede &&

{lede}

}
; } /* ===================== About ===================== */ function About() { const revealRef = useReveal(); return (

Hey, I'm Gajendra — a software developer from Pali, a small town in Rajasthan, India. I studied Computer Science Engineering at Chandigarh University and currently work as an SDE Intern at ZopDev.

I'm someone who fell in love with building software — not just writing code, but understanding how systems work under the hood and making them better, one piece at a time. From designing clean APIs to optimizing database queries to setting up observability — I find real satisfaction in the craft.

When I'm not coding, I'm probably contributing to open-source projects, reading about distributed systems, or capturing moments through my camera. I believe good engineering is about curiosity, consistency, and caring about the small details that add up.

Gajendra Malviya
); } /* ===================== Experience ===================== */ function Experience() { const revealRef = useReveal(); const [openZopdev, setOpenZopdev] = useState(false); const [openTrainee, setOpenTrainee] = useState(false); const techStack = ["Go", "GoFr", "MySQL", "Redis", "Docker", "Kubernetes", "AWS", "Azure", "Grafana"]; const traineeTech = ["Java"]; return (
setOpenZopdev(true)} style={{ cursor: "pointer" }}>

Software Development Engineer Intern — ZopDev Pvt. Ltd.

Bengaluru, Karnataka, India June 2025 — Present
{techStack.map(t => {t})}

View details →

setOpenTrainee(true)} style={{ cursor: "pointer", marginTop: 14 }}>

Java Inhouse Summer Trainee — Chandigarh University

Mohali, Punjab, India May 2024 — June 2024 · 2 months
{traineeTech.map(t => {t})}

View details →

setOpenZopdev(false)}>
{[0,1,2,3,4,5,6].map(i => )} {[0,1,2,3,4,5,6].map(i => )} microservices · cloud · observability
Current Role

SDE Intern at ZopDev

Backend Developer working on Go microservices, cloud infrastructure, and observability tooling. Full ownership from API design to production on-call.

Key Contributions

  • Shipped 20+ features and resolved 50+ bugs across Go microservices; managed 8+ releases with semantic versioning
  • Built MCP server and recommendation system engine for ZopNight — ZopDev's cloud cost-optimization product
  • Developed cloud cost-optimization engine end-to-end with 50+ compliance checks across 2 providers (AWS, Azure)
  • Managed on-call for 5+ services; triaged 30+ incidents with 99%+ SLA via Grafana and OpenObserve
  • Reduced incident detection time by 40% via Grafana alerting and centralized logging across 5+ microservices
  • Improved API response times by 30% by optimizing MySQL queries, adding Redis caching, and tuning indexes
  • Designed 50+ REST APIs (GoFr, handler-service-store), 90%+ test coverage (gomock), Swagger/OpenAPI docs

By the numbers

20+
features shipped
50+
bugs resolved
8+
releases
99%+
SLA
30%
faster APIs
90%+
test coverage

Tech Stack

{techStack.map(s => {s})}
setOpenTrainee(false)}>
java · jvm · multithreading
Training

Java Inhouse Summer Trainee

High-level Java programming summer training at Chandigarh University, going beyond basic syntax to explore advanced concepts in JVM, concurrency, and scalable software design.

What I Learned

  • Advanced Java concepts — memory management, JVM optimization, and Garbage Collection
  • Multithreading and concurrency for building high-performance applications
  • Network programming and Java's Collections Framework for effective data management
  • Writing efficient, optimized algorithms and scalable software solutions
  • Hands-on experience tackling large-scale, real-world projects

Details

2 mo
duration
Hybrid
mode
Java
focus

Tech

Java
); } /* ===================== Project Art (GitHub OG images) ===================== */ const PROJECT_IMAGES = { mindswap: "https://opengraph.githubassets.com/1/ShipOrBleed/mindswap", reqflow: "https://opengraph.githubassets.com/1/ShipOrBleed/reqflow", }; function ProjectArt({ kind }) { const url = PROJECT_IMAGES[kind]; if (url) return {kind}; if (kind === "bugbuddy") return ( AI Report Bug bug reporting in 60 seconds ); return null; } /* ===================== Projects ===================== */ const PROJECTS = [ { title: "BugBuddy", tag: "AI Platform · Coming Soon", art: "bugbuddy", desc: "AI-powered bug reporting platform — Chrome extension + Go backend. Report bugs in 60 seconds.", problem: "Bug reporting is painful — it takes 10+ minutes to write a proper report with screenshots, console logs, and steps to reproduce. Non-technical users struggle even more, leading to vague bug reports that waste developer time.", solution: "BugBuddy pairs a Chrome extension with a Go backend so anyone can file detailed, structured bug reports in under 60 seconds. AI predicts root causes automatically.", bullets: [ "Chrome extension captures screenshots, console logs, network requests, and screen recordings in one click", "Gemini Flash AI analyzes bug context and predicts top 3 root causes with confidence scoring", "4 export formats (GitHub Issue, JSON, PDF, Markdown) and 4 severity levels", "OAuth 2.0 + JWT auth, real-time WebSocket collaboration, GitHub API integration" ], stack: ["Go", "GoFr", "MySQL", "JavaScript", "Chrome Extension", "Gemini AI", "GitHub API", "WebSocket", "Docker"], github: "https://github.com/thzgajendra/BugBuddy", demo: "", }, { title: "MindSwap", tag: "Developer Tool · Open Source", art: "mindswap", desc: "Context persistence for AI coding agents — save, search, and restore conversation context across sessions.", problem: "AI coding assistants lose all context when you start a new session. You end up re-explaining your project, preferences, and decisions every single time.", solution: "MindSwap lets you save and search context across AI sessions. Works as an npm package and MCP server so your AI assistant remembers what matters.", bullets: [ "Save structured context with tags and metadata from any AI coding session", "Semantic search across saved contexts — find relevant past decisions instantly", "Works as both an npm package and an MCP server for broad compatibility", "Built for the ShipOrBleed workflow — fast context switching between projects" ], stack: ["JavaScript", "MCP Server", "CLI", "npm", "Open Source"], github: "https://github.com/ShipOrBleed/mindswap", demo: "https://mindswap.vercel.app", }, { title: "reqflow", tag: "Go Package · Open Source", art: "reqflow", desc: "Trace any HTTP request through your Go codebase, statically. One command shows handler → service → store.", problem: "You join a new team, there's a bug in POST /orders. You grep for the route, cmd-click through handler → service → store, read struct tags for the DB table. You do this every time, for every repo.", solution: "reqflow does all of that in one command. No instrumentation, no runtime — just point it at your Go code and see the complete request path with exact method names and file locations.", bullets: [ "Static analysis — parses Go code without running it, zero instrumentation needed", "Traces full request path: handler → service → store with exact file locations", "Supports substring search — find all routes matching a keyword", "Officially published Go package on pkg.go.dev" ], stack: ["Go", "CLI", "Open Source"], github: "https://github.com/ShipOrBleed/reqflow", }, ]; function ProjectCard({ p, onOpen }) { return (
{p.tag}

{p.title}

{p.desc}

{p.stack.slice(0, 5).map((s) => {s})}
e.stopPropagation()}>
); } function Projects() { const revealRef = useReveal(); const staggerRef = useStagger(PROJECTS.length); const [active, setActive] = useState(null); return (
{PROJECTS.map((p, i) => setActive(i)} />)}
setActive(null)}> {active !== null && (() => { const p = PROJECTS[active]; return ( <>
{p.tag}

{p.title}

{p.problem && (<>

The Problem

{p.problem}

)} {p.solution && (<>

The Solution

{p.solution}

)}

How it works

    {p.bullets.map((b, i) =>
  • {b}
  • )}

Tech Stack

{p.stack.map((s) => {s})}
{p.github && View on GitHub } {p.demo && Live Demo }
); })()}
); } /* ===================== Education ===================== */ const EDU_DATA = [ { title: "B.E Computer Science Engineering", sub: "Chandigarh University, Mohali, Punjab, India", meta: "Aug 2022 — June 2026", shortDesc: "CGPA 8.5 / 10", long: "Four years of Computer Science Engineering covering everything from low-level computer architecture to distributed systems. Built my foundation through rigorous coursework, competing in hackathons, and building real projects alongside academics. The combination of theory and hands-on practice shaped how I approach software engineering today.", bullets: ["CGPA 8.5 / 10", "National-level top performer — NPTEL Cloud, IoT & Edge ML (IIT Kanpur)", "Finalist in Code Relay at TECH INVENT 2024 — 2-day, 3-round coding competition at Chandigarh University", "Member of C Square Club — actively participated in hackathons and coding competitions"], highlights: ["Algorithms", "OS", "DBMS", "Networks", "Cloud Computing", "Distributed Systems"], stats: [{ v: "8.5", l: "CGPA" }], }, { title: "High Schooling", sub: "Sooraj Sikshan Sansthan Sr. Sec. School, Pali, Rajasthan, India", meta: "May 2019 — May 2021", shortDesc: "12th: 98.80% | 10th: 92.17%", long: "Strong academic foundation with exceptional performance in board examinations. Studied Science and Mathematics stream. Beyond academics, I represented Rajasthan in the National Softball Championship and served as class representative — building leadership and teamwork skills early on.", bullets: ["12th Board: 98.80%", "10th Board: 92.17%", "Stream: Science & Mathematics", "Represented Rajasthan state in National Softball Championship", "Class Representative — led student coordination and activities"], highlights: ["Science", "Mathematics", "Physics", "Chemistry"], stats: [{ v: "98.80%", l: "12th score" }, { v: "92.17%", l: "10th score" }], }, ]; function Education() { const revealRef = useReveal(); const [active, setActive] = useState(null); return (
{EDU_DATA.map((edu, i) => (
setActive(i)} style={{ cursor: "pointer" }}>

{edu.title}

{edu.sub}

Explore →

))}
setActive(null)}> {active !== null && (() => { const edu = EDU_DATA[active]; return ( <>
{edu.highlights.map((h, hi) => )}
Education

{edu.title}

{edu.long}

Details

  • Timeline: {edu.meta}
  • Institution: {edu.sub}

Achievements & Highlights

    {edu.bullets.map((b, i) =>
  • {b}
  • )}
{edu.highlights.length > 0 && (<>

Key Subjects

{edu.highlights.map((h) => {h})}
)}
); })()}
); } /* ===================== Stack ===================== */ function Stack() { const revealRef = useReveal(); const staggerRef = useStagger(7); const groups = [ { h: "Languages", items: ["Go", "C", "C++"] }, { h: "Backend", items: ["REST APIs", "GoFr", "gRPC", "MCP Server", "Microservices"] }, { h: "Databases", items: ["MySQL", "Redis"] }, { h: "DevOps & Cloud", items: ["Docker", "Kubernetes", "AWS", "Azure", "CI/CD"] }, { h: "Observability", items: ["Grafana", "OpenObserve", "Lens"] }, { h: "Testing & Tools", items: ["gomock", "Grafana", "Git", "GitHub", "Postman", "Linux"] }, { h: "AI & Extra", items: ["Claude Code", "Cursor", "Codex"] }, ]; return (
{groups.map((g) => (

{g.h}

{g.items.map((i) => {i})}
))}
); } /* ===================== Achievements ===================== */ const ACHIEVEMENTS = [ { g: , h: "900+ DSA Problems Solved", short: "Across LeetCode, GeeksforGeeks, and HackerRank.", long: "Methodically worked through every major pattern — arrays, linked lists, trees, graphs, dynamic programming, greedy, segment trees, tries, union-find, concurrency. This daily practice sharpened my problem-solving under time pressure and helped me crack coding interviews with confidence.", details: ["Platforms: LeetCode, GeeksforGeeks, HackerRank", "Patterns: DP, Graphs, Trees, Greedy, Segment Trees, Tries", "Practice: Consistent daily problem solving over 2+ years"], links: [{ label: "LeetCode", url: "https://leetcode.com/u/thzgajendra/" }, { label: "Codolio", url: "https://codolio.com/profile/thzgajendra" }, { label: "GeeksforGeeks", url: "https://www.geeksforgeeks.org/profile/gajendra_malviya" }], art: "problems" }, { g: , h: "GoFr Open-Source Contributor", short: "Core modules and CLI tooling for the GoFr framework.", long: "Active contributor to GoFr — an opinionated Go framework for accelerated microservice development used in production at ZopDev. My contributions include core framework modules and CLI tooling improvements. Working on open source taught me how senior engineers think about API design, backwards compatibility, and writing production-grade code.", details: ["Contributions: Core modules, CLI tooling", "Framework: GoFr (Go microservice framework)", "Impact: Used in production at ZopDev daily"], art: "github" }, { g: , h: "LeetCode Contest #150 Global", short: "Globally ranked 150th / 30,000+ in Biweekly Contest 150.", long: "Achieved a global rank of 150th out of 30,000+ participants in LeetCode Biweekly Contest 150. This was the result of years of consistent practice — solving problems daily, competing in weekly contests, and building deep pattern recognition under time pressure.", details: ["Rank: #150 out of 30,000+ participants globally", "Contest: LeetCode Biweekly Contest 150", "Skills: Pattern recognition, speed coding, algorithm optimization"], art: "leetcode" }, { g: , h: "NPTEL National Top Performer", short: "Cloud, IoT & Edge ML course — IIT Kanpur.", long: "Achieved national-level top performer status in the NPTEL SWAYAM 'Cloud Computing, IoT & Edge ML' course conducted by IIT Kanpur. The course covered cloud-native architectures, IoT system design, and edge ML deployment — strengthening my understanding of distributed cloud systems.", details: ["Course: Cloud Computing, IoT & Edge ML", "Institution: IIT Kanpur via NPTEL SWAYAM", "Recognition: National-level top performer"], links: [{ label: "View Course on NPTEL", url: "https://nptel.ac.in/courses/106104242" }], art: "nptel" }, { g: , h: "National Softball Championship", short: "Represented Rajasthan state at the national level.", long: "Represented the state of Rajasthan in the National Softball Championship. Competing at the national level taught me teamwork, discipline, and performing under pressure — skills that directly translate to on-call rotations and cross-team collaboration in engineering.", details: ["Represented: State of Rajasthan", "Level: National Championship", "Location: India", "Skills gained: Teamwork, discipline, performing under pressure"], art: "sports" }, ]; function AchievementArt({ kind }) { if (kind === "problems") return ({Array.from({length:50}).map((_,i)=>{const r=Math.floor(i/10),c=i%10;return 0.12?"var(--accent)":"var(--surface-2)"} opacity={0.25+Math.random()*0.6} stroke="var(--border)"/>})}); if (kind === "github") return (GoFrcontributor); if (kind === "leetcode") return (LeetCode Contest Rating); if (kind === "nptel") return (NPTEL Top Performer); if (kind === "sports") return (Rajasthan State Team); return null; } function Achievements() { const revealRef = useReveal(); const staggerRef = useStagger(ACHIEVEMENTS.length); const [active, setActive] = useState(null); return (
{ACHIEVEMENTS.map((it, i) => (
setActive(i)}>
{it.g}

{it.h}

{it.short}

view →
))}
setActive(null)}> {active !== null && ( <>
Achievement

{ACHIEVEMENTS[active].h}

{ACHIEVEMENTS[active].long}

Details

    {ACHIEVEMENTS[active].details.map((d, i) =>
  • {d}
  • )}
{ACHIEVEMENTS[active].links && (<>

Links

{ACHIEVEMENTS[active].links.map((l) => ({l.label} ))}
)}
)}
); } /* ===================== Certifications ===================== */ const CERTS = [ { title: "Cloud Computing, IoT & Edge ML", issuer: "IIT Kanpur (NPTEL SWAYAM)", icon: "\u2601", long: "Comprehensive course covering cloud-native architectures, IoT system design, and edge ML deployment. Achieved national-level top performer status.", topics: ["Cloud Architecture", "IoT Systems", "Edge ML", "Distributed Computing", "Containers"] }, { title: "Computer Organization & Architecture", issuer: "IIT Guwahati (NPTEL SWAYAM)", icon: "\u2699", long: "In-depth study of computer architecture fundamentals — instruction sets, pipelining, memory hierarchy, cache design, and parallel processing.", topics: ["Instruction Sets", "Pipelining", "Memory Hierarchy", "Cache Design", "Parallel Processing"] }, { title: "Introduction to Databases", issuer: "Meta (Coursera)", icon: "\uD83D\uDDC4", long: "Foundation course on database design, SQL querying, normalization, indexing strategies, and transaction management.", topics: ["SQL", "Normalization", "Indexing", "Transactions", "Schema Design"] }, ]; function Certifications() { const revealRef = useReveal(); const staggerRef = useStagger(CERTS.length); const [active, setActive] = useState(null); return (
{CERTS.map((c, i) => (
setActive(i)} style={{ cursor: "pointer" }}>
{c.icon}

{c.title}

{c.issuer}
Explore →
))}
setActive(null)}> {active !== null && ( <>
verified learning
Certification

{CERTS[active].title}

{CERTS[active].long}

Issued by

{CERTS[active].issuer}

Topics Covered

{CERTS[active].topics.map((t) => {t})}
)}
); } /* ===================== Hobbies ===================== */ const HOBBIES = [ { icon: , title: "Building Things", em: "side projects", short: "Solo founder of ShipOrBleed — my GitHub org where I ship open-source developer tools.", long: "I run ShipOrBleed, a GitHub organization where I build and maintain open-source developer tools solo. MindSwap, reqflow, and more — all shipped from here. Most weekends I'm tinkering on a new idea, and ShipOrBleed is where it all lives. I love the part where an idea becomes something you can deploy, use, and share with the world.", stats: [{ v: "3+", l: "projects shipped" }, { v: "ShipOrBleed", l: "GitHub org" }], links: [{ label: "ShipOrBleed on GitHub", url: "https://github.com/ShipOrBleed" }] }, { icon: , title: "Photography", em: "capturing moments", short: "Love capturing the world through a lens — streets, landscapes, and everyday life.", long: "Photography is my creative outlet. I enjoy street photography, landscapes, and finding beauty in everyday moments. It teaches me to observe details — a skill that helps in code reviews too. Check out my work on Instagram!", hasInstaGrid: true, links: [{ label: "Follow on Instagram", url: "https://www.instagram.com/thzseven" }] }, ]; function Hobbies() { const revealRef = useReveal(); const staggerRef = useStagger(HOBBIES.length); const [active, setActive] = useState(null); return (
{HOBBIES.map((h, i) => (
setActive(i)} style={{ cursor: "pointer" }}>
{h.icon}

{h.title} — {h.em}

{h.short}

Explore →

))}
setActive(null)}> {active !== null && ( <>
{HOBBIES[active].title === "Building Things" ? (
ShipOrBleed
) : ( {HOBBIES[active].em} )}
Outside Code

{HOBBIES[active].title}

{HOBBIES[active].long}

{HOBBIES[active].stats && (<>

By the numbers

{HOBBIES[active].stats.map((s, i) =>
{s.v}
{s.l}
)}
)} {HOBBIES[active].links && (<>

Links

{HOBBIES[active].links.map((l) => ({l.label} ))}
)}
)}
); } /* ===================== Contact ===================== */ function Contact() { const revealRef = useReveal(); return (

let's talk.

Got an idea, a project, or just wanna vibe about tech? I'm always down for a good conversation. Drop a message — worst case, we both learn something new.

Get in Touch
"Ship fast, learn faster, break nothing."
Pali, Rajasthan · © {new Date().getFullYear()} Gajendra Malviya · Built with Go, coffee & Claude Code
); } /* ===================== App ===================== */ const SECTION_IDS = ["about", "experience", "projects", "education", "stack", "achievements", "certifications", "hobbies", "contact"]; function App() { const [theme, setTheme] = useState(() => { const saved = localStorage.getItem("gm-theme"); if (saved) return saved; return window.matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark"; }); const activeSection = useActiveSection(SECTION_IDS); useEffect(() => { document.documentElement.setAttribute("data-theme", theme); localStorage.setItem("gm-theme", theme); }, [theme]); useEffect(() => { const el = document.getElementById("preloader"); if (el) { el.style.opacity = "0"; setTimeout(() => el.remove(), 500); } }, []); return ( <>