This is a submission for the New Year, New You Portfolio Challenge Presented by Google AI
About Me
I'm Zeeshan Mohammad, an AI researcher and developer.
With this portfolio, I wanted to move beyond static “About Me” pages. Instead, I built an AI twin — a conversational version of myself that visitors can actually talk to. It understands my background, projects, skills, research interests, and even a few personal stories. You don’t browse this portfolio — you talk to it.
Ask it anything.
Portfolio

Open in full screen: https://portfolio-249733701526.us-central1.run.app
Google AI Integration
The core of this portfolio is powered by Google Gemini 2.5 Flash, used through two AI-driven backend functions:
1. Chat Function
- Handles natural, conversational queries
- Uses streaming responses for real-time interaction
- Configured with a detailed system prompt containing my:
- education and research background
- professional experience
- projects and technical skills
- communication style and personality
The AI responds in first person, as if you’re talking directly to me.
2. Suggested Questions Function
- After each response, Gemini generates three contextual follow-up questions
- Uses structured tool calling
- Categorized by intent (projects, skills, personal, contact)
- Helps visitors explore naturally without thinking about “what to ask next”
Design Decisions
Conversation-first UX
No navigation menus. Exploration happens through natural language.Dynamic contextual UI
Ask about skills → skill cards appear
Ask about contact → contact panel appears
Ask about projects → project highlights surface automaticallyPhysics-based visualizations
The Knowledge Graph uses spring physics to feel organic and alive.Security guardrails
The AI twin is constrained to portfolio-related topics and protected against prompt injection.
What I’m Most Proud Of
Interactive Knowledge Graph
A Connected-Papers-style visualization where skills, education, and experience appear as physics-based nodes.
Hover to explore relationships, click to instantly ask the AI about that topic.
Hidden Easter Eggs
- Konami Code (↑ ↑ ↓ ↓ ← → ← → B A) Unlocks a “Code Master” achievement with confetti 🎉
- Night Owl Automatically unlocks for visitors browsing between 2–5 AM 🦉
- Time-aware greetings “Good morning” vs. “Working late?” based on the visitor’s local time
The AI Twin Personality
This isn’t a generic chatbot.
Ask it about:
- my research on student performance prediction
- why I moved from India to Hungary
- my skydiving hobby
- how I think about learning, teaching, and AI in education
It knows the stories — because they’re mine.
Skills Radar Chart
An animated SVG radar chart built with Framer Motion.
Each category is clickable and expands into detailed skill breakdowns with smooth transitions.
Tech Stack
- Frontend: React 18, TypeScript, Vite
- Styling: Tailwind CSS, shadcn/ui
- AI: Google Gemini 2.5 Flash
- Backend: Supabase (Database + Edge Functions)
- Animations: Framer Motion
- Deployment: Google Cloud Run (via Cloud Build & Artifact Registry)
Try asking my AI twin
- “What’s your background?”
- “Tell me about your coolest project”
- “What drives you?”
- “Any fun facts?”
Built with ❤️ using Google Gemini 2.5 Flash
Top comments (2)
Hey Mohammad, I’m unable to view your website. When I try to access it in my browser, I get the following error message:
index-CZ92Kijn.js:740 Uncaught Error: supabaseUrl is required.at x6 (index-CZ92Kijn.js:740:38785)
at new b6 (index-CZ92Kijn.js:740:39155)
at S6 (index-CZ92Kijn.js:740:42421)
at index-CZ92Kijn.js:740:42885
Do you know how I could fix this?
And I’m also participating in the challenge: I Built an Accessible Retro Gamified Portfolio (With Pixel Art, Games & OS System Vibes) 🎮
What do you think of mine? Feel free to give feedback, positive or negative, as I plan to improve it after the evaluation date.
Hi thanks, it should work now!
Yours is cool, how long does it take you to make all of it?! Really impressive!