<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shivam Gawali</title>
    <description>The latest articles on DEV Community by Shivam Gawali (@shiv669).</description>
    <link>https://dev.to/shiv669</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3705394%2F50361dfb-8bd8-4111-9803-d21028c577d8.png</url>
      <title>DEV Community: Shivam Gawali</title>
      <link>https://dev.to/shiv669</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shiv669"/>
    <language>en</language>
    <item>
      <title>A Portfolio You Query, Not Scroll</title>
      <dc:creator>Shivam Gawali</dc:creator>
      <pubDate>Sat, 31 Jan 2026 15:48:36 +0000</pubDate>
      <link>https://dev.to/shiv669/a-portfolio-you-query-not-scroll-12p7</link>
      <guid>https://dev.to/shiv669/a-portfolio-you-query-not-scroll-12p7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Most developer portfolios create friction.&lt;br&gt;
You scroll. You skim. You guess what matters.&lt;/p&gt;

&lt;p&gt;Under time pressure, reviewers miss important details not because they are absent, but because they are buried inside presentation choices. The reader is forced to adapt to the portfolio.&lt;/p&gt;

&lt;p&gt;That is backwards.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Information systems should adapt to the user, not the other way around.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The Portfolio
&lt;/h2&gt;

&lt;p&gt;This project treats a portfolio as an information system, not a webpage.&lt;/p&gt;

&lt;p&gt;It is a &lt;strong&gt;search-first developer portfolio&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No navigation menu&lt;/li&gt;
&lt;li&gt;No “About / Projects / Skills” tabs&lt;/li&gt;
&lt;li&gt;No fixed narrative to scroll through&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;You do not browse it. You query it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What projects has Shivam built?”&lt;br&gt;
“Tell me about &lt;strong&gt;Still&lt;/strong&gt; (his hackathon-winning forum project)”&lt;br&gt;
“What skills does he have?”&lt;br&gt;
“How can I contact him?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The portfolio retrieves only the information relevant to the question and presents it as a clear, grounded answer.&lt;/p&gt;

&lt;p&gt;The result is immediate clarity.&lt;br&gt;
No scanning.&lt;br&gt;
No guessing.&lt;br&gt;
No interpretation of layout decisions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Interactive Demo:&lt;/strong&gt;&lt;br&gt;


&lt;/p&gt;
&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://ai-portfolio-1005735332019.us-central1.run.app"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;




&lt;p&gt;&lt;em&gt;(If the embed above does not load, view the full site here: &lt;a href="https://ai-portfolio-1005735332019.us-central1.run.app" rel="noopener noreferrer"&gt;https://ai-portfolio-1005735332019.us-central1.run.app&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;--labels dev-tutorial=devnewyear2026&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;This portfolio is implemented as a &lt;strong&gt;Retrieval Augmented Generation (RAG)&lt;/strong&gt; system.&lt;/p&gt;

&lt;p&gt;It is not a chatbot.&lt;br&gt;
It does not paste a resume into a prompt.&lt;/p&gt;

&lt;p&gt;All portfolio content is prepared and indexed ahead of time. At runtime, the system retrieves only what is relevant to the query and generates a response strictly from that retrieved context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In practice:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; The user asks a question&lt;/li&gt;
&lt;li&gt; The system identifies &lt;strong&gt;intent&lt;/strong&gt; (projects, skills, contact, background)&lt;/li&gt;
&lt;li&gt; Relevant portfolio content is retrieved using &lt;strong&gt;semantic similarity&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; Only that content is sent to the model&lt;/li&gt;
&lt;li&gt; The response includes &lt;strong&gt;direct citations&lt;/strong&gt; pointing back to real sources&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This keeps answers predictable, inspectable, and grounded in real data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yokz28da1m4vkvgcvj7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yokz28da1m4vkvgcvj7.png" alt="Portfolio Architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Flow:&lt;/strong&gt;&lt;br&gt;
Query → Intent Classification → Query Embedding (text-embedding-004) → Cosine Similarity Search (threshold ≥ 0.25) → Top Relevant Chunks with Source Metadata → &lt;strong&gt;Gemini 3 Flash&lt;/strong&gt; → Structured Response with citations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Design Decisions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Retrieval before generation:&lt;/strong&gt; The AI never sees the entire portfolio. It only sees the content relevant to the question being asked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intent-aware filtering:&lt;/strong&gt; Project questions prioritize project data. Contact questions do not pull unrelated background information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inspectable answers:&lt;/strong&gt; Every answer is grounded in a specific source. Readers can see exactly where information comes from instead of trusting opaque output.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Precomputed embeddings:&lt;/strong&gt; Embeddings are generated at build time. Runtime work is limited to retrieval and generation, keeping latency and cost predictable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graceful limits:&lt;/strong&gt; The demo runs on Gemini’s free tier. If usage limits are reached, the system transparently falls back to retrieved portfolio data and clearly indicates the change in behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Next.js 16, TypeScript, Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; Gemini 3 Flash (Google AI Studio)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embeddings:&lt;/strong&gt; text-embedding-004&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search:&lt;/strong&gt; Custom cosine similarity retrieval&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Animations:&lt;/strong&gt; Framer Motion, Three.js, Unicorn Studio WebGL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI built using open-source React components (including 21st.dev).&lt;/strong&gt; *&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Google Cloud Run&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system is intentionally small.&lt;br&gt;
Every component exists for a reason.&lt;/p&gt;

&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;Hi, I’m &lt;strong&gt;Shivam Gawali&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I’m a student of Artificial Intelligence and Data Science with a strong interest in software engineering fundamentals and backend systems. I enjoy building small, complete systems and understanding how they behave under real constraints.&lt;/p&gt;

&lt;p&gt;I care about correctness, clarity, and making reasoning visible more than surface-level polish.&lt;/p&gt;

&lt;p&gt;This portfolio reflects how I think:&lt;br&gt;
&lt;strong&gt;focus on the question, reduce noise, and answer precisely.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;Portfolios are usually reviewed under severe time pressure.&lt;br&gt;
Scrolling rewards presentation.&lt;br&gt;
&lt;strong&gt;Search rewards understanding.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If we can search documentation to understand a system,&lt;br&gt;
we should be able to search a person’s work to understand how they think.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>portfolio</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
