This is a submission for the New Year, New You Portfolio Challenge Presented by Google AI
About Me
I’m Hrishikesh Dalal, a Computer Engineering student at Sardar Patel Institute of Technology (SPIT), Mumbai. I don't just write code; I build experiences. Currently, I’m engineering a Jumanji-themed gamified portfolio that turns the standard resume into an adventure.
My focus lies in Full Stack Development (Next.js, React) and creating developer tools—I recently published envalyze and env-fault to the NPM registry to help devs manage environments better. When I'm not pushing commits to Open Source projects like Drupal or contributing to MDN Web Docs, I'm exploring the intersection of AI and law with projects like VerdictAI.
I write about system design, open source, and the reality of building software.
Portfolio
Link: https://hrishikesh-dalal-portfolio-571902073238.europe-west1.run.app
How I Built It
My Tech Stack
To build an experience this immersive, I needed a stack that balanced performance with high-end visuals:
- Frontend: Next.js & Tailwind CSS
- Animations: GSAP (for that cinematic feel)
- 3D Elements: Three.js (for the interactive globe and hero patterns)
- AI:Gemini API (powering the NPC-style chatbots)
The Process: From Chaos to Clarity
Building a portfolio is a trap. You want to show off everything, but if you're not careful, you end up with a bloated mess.
1. The Affinity Mapping Phase
Initially, I was drowning in ideas from my UI/UX course. I had a laundry list: a full 3D world, a terminal, hidden easter eggs, business-centric project stats, and a Jumanji-themed game. I used Affinity Mapping to dump every "cool" idea onto a board and then ruthlessly segregated them.
2. The "Reality Check"
I had to ask the most important question: Why is someone here?
Hiring managers are busy. They might be tech-savvy, or they might not be. They might want to play a game, or they might just want to see my resume and leave in 30 seconds.
The Decision: A "Clean & Clear" landing page with a defined Call to Action (CTA) is non-negotiable. The "wow" factor should enhance the info, not hide it.
Design Breakdown: Section by Section
The Hero (The First 5 Seconds)
I treated the Hero section like a movie opening. I implemented a preloader with a cinematic transition that drops you into an interactive dot pattern. It’s meant to grab attention immediately.
The Impact (Big Numbers & Open Source)
Instead of just saying "I build tools," I used big, bold typography to showcase my NPM stats. I wanted the real-world impact of envalyze and env-fault to be unavoidable. I also dedicated space to my Open Source journey—showing my Hacktoberfest badges and my role as a project admin.
The Experience Timeline
I used a scroll-triggered timeline with GSAP micro-interactions. When you hover over an entry, there’s a slight movement—just enough to feel alive, but not enough to be distracting.
The Terminal (For the Geeks)
I built a fully functional terminal for my projects. You can change themes, run an echo, or see animations.
Pro Tip: Try typing
sudo. You’ve been warned.
The Accessibility Switch: If you aren't a terminal person, there's a toggle to switch back to a standard grid. No one gets left behind.
The "Jungle" Experience
This was the hardest part to get right. My first version was just a collection of games, and the feedback from friends was brutal: "It’s disconnected. I don't see YOU in this."
I went back to the drawing board and turned it into a narrative. I added:
- A Prologue & Epilogue: To give the "quest" a purpose.
- Level 2 (The Jumper): While you play, the character narrates my tech stack and experience journey.
- Secret Cheat Codes: Because what's a game without them?
Bringing it to life with AI
My main chatbot you have different answers queries, sample questions that you can ask to make it better.
While the game chatbot is like NPC character answering you.
The Architecture
The diagram below shows how the game chatbot is integrated to handle context-aware queries, ensuring it knows where you are in the game and who I am as a developer.
The User Interaction Layer
User Sends Message: The process begins with the user interacting with the interface.
Frontend App (NEXT JS): The core UI is built using React. It features a React Markdown Renderer, which ensures that the AI's responses—often containing code snippets or formatted text—are displayed cleanly and professionally to the user.Security and Traffic Management
Backend API Gateway & Security Layer: Instead of calling the Gemini API directly from the frontend (which would expose your API keys), the app calls a secure backend gateway. This layer handles authentication and protects your credentials.
Load Balancer: To prevent any single server from becoming overwhelmed, a load balancer sits in the middle. It analyzes incoming requests and routes them efficiently across multiple active instances.The Processing Core
Chat Model Instances: The system uses multiple parallel instances (Instance 1, 2, and 3) to process requests.
Least Used Routing: The load balancer is shown routing a request specifically to "Instance 1" because it is currently the "Least Used," ensuring optimal performance and low latency.
Google's Gemini API: These instances act as the bridge to Google’s infrastructure. They send the processed user prompt to the Gemini API and receive the raw AI generation in return.The Response Loop
Forwards Response: Once a chat instance receives the data from Google, it forwards that response back through the secure backend.
Final Display: The message is sent back to the NEXT JS app, where it is rendered as Markdown, completing the loop and appearing on the user's screen.
Easter Eggs
I have a game at the start where the user can press the "?" button and play that simple.
"Stay Hungry, Stay Foolish." My portfolio ends with this quote because it sums up my approach to engineering. Whether it's deep-diving into the Drupal source code or building a terminal from scratch, I’m always looking for the next thing that feels slightly impossible to build.
What I'm Most Proud Of
If you’re a developer, you know the feeling: you spend 10% of your time on the features people see and 90% of your time on the "over-engineered" systems that make you feel like a wizard. Here are the pillars of this portfolio that I obsessed over.
1. The Terminal (Because real devs use a CLI)
I didn't want a static "Projects" page; I wanted something that felt like home. I built a fully functional, web-based Terminal where you can actually interact with my work.
- The Experience: It’s a working CLI where you can navigate projects, change themes, or trigger animations.
-
The "Sudo" Trap: I’ve hidden easter eggs for people who like to poke around—try typing
sudo. - The Hybrid UI: I know recruiters aren't always looking to type commands, so I built a "safety net" toggle that instantly switches the terminal into a standard project grid.
2. Projects with a "Business First" Logic
Most portfolios just show a screenshot and a GitHub link. I decided to treat my projects like real products.
- Beyond the Code: When you click into a project, I don't just list the tech stack. I break down the Business Perspective, the Impact, and the Stats.
- The "Why" Factor: I included the reasoning behind my architectural choices so that a non-technical stakeholder can understand the value I created, not just the code I wrote.
- Deep Dives: Each project page is designed to show the journey from a pain point to a scalable solution.
3. The Jumanji Game Engine
I turned my professional experience into a narrative quest. This wasn't just about putting a game on a website; it was about making the resume playable.
- The Narrative: I added a full prologue and epilogue to make sure it felt like a real quest, not just a random mini-game.
- The Career Jumper: In Level 2, the character literally narrates my tech stack and my journey through different roles while you play.
- Recruiter Mode: I even made the game adaptive—a recruiter can upload a job description, and the game will fine-tune the information it highlights to match what they need.
4. The Chatbot Architecture
I’m most proud of what’s happening "under the hood" here. I built a production-ready pipeline for the Gemini-powered Chatbot.
- The Load Balancer: My system uses three different chat model instances. I implemented a load balancer that routes traffic to the "least used" instance to keep things snappy, no matter the traffic.
- Security & Scalability: I kept the logic on the backend. The React frontend talks to a secure API Gateway, which handles the Gemini API calls to keep my keys safe.
- The NPC Persona: I used the Gemini API to give the bot a specific "In-game NPC" persona—it knows it’s in the Jungle, but it also knows my GitHub stats.









Top comments (1)
Wow!