<?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: Piyush Yenorkar</title>
    <description>The latest articles on DEV Community by Piyush Yenorkar (@piyushyenorkar).</description>
    <link>https://dev.to/piyushyenorkar</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4011137%2Fd2fd5008-2e77-41cb-9985-ef01a52eaeff.png</url>
      <title>DEV Community: Piyush Yenorkar</title>
      <link>https://dev.to/piyushyenorkar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/piyushyenorkar"/>
    <language>en</language>
    <item>
      <title>Building a 3D WebGL &amp; macOS-Style Interactive Developer Portfolio in React</title>
      <dc:creator>Piyush Yenorkar</dc:creator>
      <pubDate>Sun, 08 Nov 2026 05:28:26 +0000</pubDate>
      <link>https://dev.to/piyushyenorkar/building-a-3d-webgl-macos-style-interactive-developer-portfolio-in-react-4mbh</link>
      <guid>https://dev.to/piyushyenorkar/building-a-3d-webgl-macos-style-interactive-developer-portfolio-in-react-4mbh</guid>
      <description>&lt;p&gt;Most developer portfolios look identical: a generic hero section, a grid of project cards, and a contact form. &lt;/p&gt;

&lt;p&gt;When building my own developer space, I wanted to treat it like a full-scale interactive web application rather than a static resume. I wanted visitors to explore, interact with 3D physics, run desktop OS windows, and chat with an autonomous portfolio AI assistant.&lt;/p&gt;

&lt;p&gt;Here is a breakdown of how I designed and engineered my 3D developer portfolio.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ The Live Experience
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;Live Website&lt;/strong&gt;: &lt;a href="https://piyushyenorkar.vercel.app/" rel="noopener noreferrer"&gt;piyushyenorkar.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💻 &lt;strong&gt;Tech Stack&lt;/strong&gt;: React 19, TypeScript, Three.js, @react-three/fiber, Framer Motion, Tailwind CSS, Groq API (LLaMA 3.3).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠️ Key Architectural Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. 3D WebGL Robot with Interactive Laser Targeting
&lt;/h3&gt;

&lt;p&gt;At the core of the experience is an interactive 3D robot rendered with &lt;strong&gt;Three.js&lt;/strong&gt; and &lt;code&gt;@react-three/fiber&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-time mouse tracking&lt;/strong&gt;: The robot's head and limbs dynamically calculate Euler angles based on normalized viewport coordinates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive laser targeting&lt;/strong&gt;: Clicking on interactive elements triggers an explosive laser beam with jitter physics and glowing particle decay.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asset Optimization&lt;/strong&gt;: Using Draco-compressed glTF models and deferred texture streaming to ensure sub-second initial load times even on mobile.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Desktop OS Window Stacking &amp;amp; Multi-Tasking Dock
&lt;/h3&gt;

&lt;p&gt;Inspired by macOS and cyberpunk terminals, the bottom navigation acts as an interactive desktop environment with 5 concurrent apps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Direct Messaging&lt;/strong&gt; &amp;amp; &lt;strong&gt;Anonymous Community Chat&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autonomous Portfolio AI Assistant&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interactive GitHub &amp;amp; LinkedIn OS Viewers&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  The Engineering Challenge: Real OS Z-Index Layering
&lt;/h4&gt;

&lt;p&gt;In traditional modals, clicking one popover closes or conflicts with another. To make it behave like an authentic desktop OS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Windows are portaled directly to &lt;code&gt;document.body&lt;/code&gt; to avoid local z-index trapping.&lt;/li&gt;
&lt;li&gt;Implemented an event-driven &lt;code&gt;bringToFront(windowKey)&lt;/code&gt; manager. Touching or clicking any window in the background increments the global z-index counter and transitions it above other windows without unmounting or reloading background states.&lt;/li&gt;
&lt;li&gt;Draggable with inertia via Framer Motion's &lt;code&gt;useDragControls&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Retro Memory Chip Insertion for Blog Articles
&lt;/h3&gt;

&lt;p&gt;Instead of standard paginated blog lists, the reader treats articles as physical hardware cartridges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When a user selects an article card, the current memory chip ejects with sound and glowing slot animations.&lt;/li&gt;
&lt;li&gt;Dynamic bounding box coordinate tracking (&lt;code&gt;getBoundingClientRect&lt;/code&gt;) maps the exact screen trajectory from the sidebar dock to the central reader mainframe.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Embedded Autonomous AI Assistant
&lt;/h3&gt;

&lt;p&gt;I integrated a dedicated conversational AI into the OS dock powered by &lt;strong&gt;Groq Cloud API&lt;/strong&gt; and &lt;strong&gt;LLaMA 3.3&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built with client-side key rotation and streaming response fallbacks.&lt;/li&gt;
&lt;li&gt;Knows my full technical background: Pluto Campus (Play Store app with 1st place product pitch), FlowMind (Axion Hackathon 1st place &amp;amp; HackHazards Top 50), SafeShell, and NHAIFaceID (offline edge facial recognition SDK).&lt;/li&gt;
&lt;li&gt;Generates interactive follow-up suggestion chips so visitors can click through topics effortlessly.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 What I Learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;WebGL Performance on Mobile&lt;/strong&gt;: Mobile GPUs struggle with heavy shadows and post-processing bloom. Implementing adaptive pixel ratios (&lt;code&gt;dpr={[1, 1.5]}&lt;/code&gt;) and conditionally pausing Three.js render loops when out of view saved over 40% battery and CPU overhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layering Architecture&lt;/strong&gt;: Desktop OS window management inside a modern web app requires strict separation between DOM stacking contexts and portal mounts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build What Breaks You&lt;/strong&gt;: As I wrote in one of my blog posts: &lt;em&gt;"A simple todo app will never break in a way that teaches you real engineering. Build something broken and ambitious instead."&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🚀 Check It Out &amp;amp; Share Your Feedback
&lt;/h2&gt;

&lt;p&gt;Take a look at the live portfolio here: &lt;strong&gt;&lt;a href="https://piyushyenorkar.vercel.app/" rel="noopener noreferrer"&gt;https://piyushyenorkar.vercel.app/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’d love to hear your thoughts on the Three.js performance, UI/UX feel, and any features you'd like to see next! &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Connect with me on &lt;a href="https://github.com/piyushyenorkar" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/piyush-yenorkar-4366a8278/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>threejs</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How We Built an AI That Remembers Your Team's Failures — Before They Happen Again</title>
      <dc:creator>Piyush Yenorkar</dc:creator>
      <pubDate>Wed, 01 Jul 2026 16:09:00 +0000</pubDate>
      <link>https://dev.to/piyushyenorkar/how-we-built-an-ai-that-remembers-your-teams-failures-before-they-happen-again-281o</link>
      <guid>https://dev.to/piyushyenorkar/how-we-built-an-ai-that-remembers-your-teams-failures-before-they-happen-again-281o</guid>
      <description>&lt;p&gt;Built at HackHazards '26 · FlowMind&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;Every semester, student teams repeat the same mistakes.&lt;/p&gt;

&lt;p&gt;Wrong person assigned to the wrong task. Decisions made in week one forgotten by week three. One person carrying 80% of the work while nobody notices until submission day.&lt;/p&gt;

&lt;p&gt;We tried Trello. We tried Notion. We tried Jira.&lt;/p&gt;

&lt;p&gt;They all had the same fundamental flaw — they record what happened. None of them learn from it.&lt;/p&gt;

&lt;p&gt;So we built FlowMind.&lt;/p&gt;




&lt;h2&gt;
  
  
  What FlowMind Actually Is
&lt;/h2&gt;

&lt;p&gt;FlowMind is an AI-powered group project manager built on persistent memory. The one-line definition we kept coming back to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"FlowMind is an AI project manager that learns your team and predicts failures before they happen."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every other tool starts fresh every project. FlowMind's memory compounds. The longer your team uses it, the smarter it gets.&lt;/p&gt;




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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;React 18 + Vite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Node.js + Express&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI / LLM&lt;/td&gt;
&lt;td&gt;Groq API (llama3-70b-8192)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Persistent Memory&lt;/td&gt;
&lt;td&gt;Hindsight by Vectorize&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Knowledge Graph&lt;/td&gt;
&lt;td&gt;Neo4j&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Voice Transcription&lt;/td&gt;
&lt;td&gt;Web Speech API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment&lt;/td&gt;
&lt;td&gt;Vercel + Render&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  How We Used Each Partner Track
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Hindsight by Vectorize — The Memory Layer
&lt;/h3&gt;

&lt;p&gt;Hindsight gives AI agents three core primitives: &lt;code&gt;retain()&lt;/code&gt;, &lt;code&gt;recall()&lt;/code&gt;, and &lt;code&gt;reflect()&lt;/code&gt;. Every intelligent feature in FlowMind maps to one of these.&lt;/p&gt;

&lt;p&gt;retain() — Every task completion, decision, and meeting gets stored:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;hindsight&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;retain&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`task_&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;assignedTo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;assignedTo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;estimatedHours&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;estimatedHours&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;actualHours&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;actualHours&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;completedOnTime&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;completedOnTime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;taskType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;taskType&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;task&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;performance&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;assignedTo&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;reflect() — Generating pre-failure warnings from memory patterns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;warning&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;hindsight&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reflect&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Flag delay risks based on this team's past patterns`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;memoryBank&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`team_&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;team&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;includeObservations&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="c1"&gt;// Returns: "72% delay risk — backend tasks took 2x estimate in past cycles"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The most powerful part was Observation Consolidation — Hindsight automatically synthesizes raw retained facts into behavioral insights. We planned to write 200 lines of custom pattern-detection logic. We found auto-consolidation and deleted all of it. The system learned our team's patterns on its own.&lt;/p&gt;




&lt;h3&gt;
  
  
  Neo4j — The Knowledge Graph
&lt;/h3&gt;

&lt;p&gt;We used Neo4j to model team relationships as a graph. Members, skills, tasks, and outcomes all exist as nodes connected by edges.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cypher"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Create member-skill relationships&lt;/span&gt;
&lt;span class="k"&gt;MATCH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="py"&gt;m:&lt;/span&gt;&lt;span class="n"&gt;Member&lt;/span&gt; &lt;span class="ss"&gt;{&lt;/span&gt;&lt;span class="py"&gt;name:&lt;/span&gt; &lt;span class="s2"&gt;"Piyush"&lt;/span&gt;&lt;span class="ss"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;MATCH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="py"&gt;s:&lt;/span&gt;&lt;span class="n"&gt;Skill&lt;/span&gt; &lt;span class="ss"&gt;{&lt;/span&gt;&lt;span class="py"&gt;name:&lt;/span&gt; &lt;span class="s2"&gt;"React"&lt;/span&gt;&lt;span class="ss"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="ss"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;:HAS_SKILL&lt;/span&gt; &lt;span class="ss"&gt;{&lt;/span&gt;&lt;span class="py"&gt;level:&lt;/span&gt; &lt;span class="s2"&gt;"advanced"&lt;/span&gt;&lt;span class="ss"&gt;}]&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// Find best person for a frontend task&lt;/span&gt;
&lt;span class="k"&gt;MATCH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="py"&gt;m:&lt;/span&gt;&lt;span class="n"&gt;Member&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="ss"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;:HAS_SKILL&lt;/span&gt;&lt;span class="ss"&gt;]&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="py"&gt;s:&lt;/span&gt;&lt;span class="n"&gt;Skill&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;s.name&lt;/span&gt; &lt;span class="ow"&gt;IN&lt;/span&gt; &lt;span class="ss"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"React"&lt;/span&gt;&lt;span class="ss"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"CSS"&lt;/span&gt;&lt;span class="ss"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"JavaScript"&lt;/span&gt;&lt;span class="ss"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;AND&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="ss"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;:COMPLETED&lt;/span&gt;&lt;span class="ss"&gt;]&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;:Task&lt;/span&gt; &lt;span class="ss"&gt;{&lt;/span&gt;&lt;span class="py"&gt;type:&lt;/span&gt; &lt;span class="s2"&gt;"frontend"&lt;/span&gt;&lt;span class="ss"&gt;,&lt;/span&gt; &lt;span class="py"&gt;onTime:&lt;/span&gt; &lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="ss"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;RETURN&lt;/span&gt; &lt;span class="n"&gt;m.name&lt;/span&gt;&lt;span class="ss"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;score&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is what makes FlowMind's task assignment genuinely intelligent. When the AI assigns a task to someone, it's not guessing — it's traversing a graph of real team relationships and past performance data.&lt;/p&gt;

&lt;p&gt;Before Neo4j, assignment reasons were generic. After Neo4j:&lt;br&gt;
"Assigned to Piyush — 6 frontend tasks completed, 90% on-time rate, React and Vite in skill graph."&lt;/p&gt;

&lt;p&gt;That's the difference between a chatbot and an actual AI project manager.&lt;/p&gt;




&lt;h3&gt;
  
  
  Groq — The AI Brain
&lt;/h3&gt;

&lt;p&gt;We used Groq's llama3-70b-8192 for three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Meeting Analysis — After a voice meeting ends, the full transcript + member skill profiles + Neo4j team graph gets sent to Groq. It returns structured JSON with extracted tasks, assignments with reasoning, decisions, and follow-up items. Response time: under 3 seconds.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI Chat — Full conversational access to team memory. Leader asks "why did last sprint fail?" — Groq reads Hindsight memory context and answers from real team history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conflict Predictor — Groq analyzes Hindsight observation consolidations and Neo4j patterns together to generate percentage delay risks per task before deadlines break.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://api.groq.com/openai/v1/chat/completions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Authorization&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Bearer &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;GROQ_API_KEY&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;llama3-70b-8192&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;system&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;systemPrompt&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userPrompt&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="na"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The Core Features We Built
&lt;/h2&gt;

&lt;p&gt;🎙️ AI Voice Meetings&lt;br&gt;
Leader starts a meeting — FlowMind AI joins as a participant, transcribes speech in real time via Web Speech API, and when the meeting ends, Groq analyzes the transcript and auto-extracts tasks assigned by skill profile. Tasks appear on the board automatically.&lt;/p&gt;

&lt;p&gt;⚠️ Conflict Predictor&lt;br&gt;
Reads Hindsight memory patterns and Neo4j relationship graph to flag delay risks per task before deadlines break. Not generic rules — actual team history powering the prediction.&lt;/p&gt;

&lt;p&gt;🧠 Decision Log&lt;br&gt;
Every team decision stored with full context in Hindsight memory. AI recalls these to prevent repeated arguments in future meetings.&lt;/p&gt;

&lt;p&gt;💬 AI Chat&lt;br&gt;
Full conversational access to complete team memory. Answers "what did we decide about X?" instantly from Hindsight recall.&lt;/p&gt;

&lt;p&gt;📊 AI Insights&lt;br&gt;
Surfaces behavioral patterns: peak productivity windows, recurring bottlenecks, estimation biases — all derived from Hindsight observation consolidation and Neo4j graph traversal.&lt;/p&gt;

&lt;p&gt;👤 Member Skill Profiles&lt;br&gt;
Members build profiles with skills, past experience, availability, and preferred task types. These get stored in both Hindsight memory and Neo4j. AI cross-references profiles against team outcomes to make assignments smarter over time.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Implementation Journey
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What We Got Right
&lt;/h3&gt;

&lt;p&gt;Multi-bank memory architecture was the right call.&lt;br&gt;
Separating per-user memory from shared team memory in Hindsight let the AI cross-reference individual skill profiles against team-wide outcomes. That cross-reference is what makes assignment reasoning genuinely useful rather than generic.&lt;/p&gt;

&lt;p&gt;Groq's speed changed what was possible.&lt;br&gt;
At under 3 seconds for full meeting analysis, the feature feels instant. If we had used a slower model, the voice meeting → task extraction flow would feel broken. Speed is a UX feature.&lt;/p&gt;

&lt;p&gt;Neo4j + Hindsight together is more powerful than either alone.&lt;br&gt;
Hindsight stores temporal patterns — what happened over time. Neo4j stores relationship patterns — who is connected to what. When both feed into Groq's context, the AI has both dimensions. That combination is what makes FlowMind's predictions feel eerily accurate.&lt;/p&gt;




&lt;h3&gt;
  
  
  What We Got Wrong
&lt;/h3&gt;

&lt;p&gt;Cold start is a real problem.&lt;br&gt;
FlowMind is dramatically better after 2-3 projects. Week one predictions are weak because there's nothing in memory yet. We should have built a smarter onboarding flow that pre-seeds memory with team information before the first project starts.&lt;/p&gt;

&lt;p&gt;Web Speech API is inconsistent.&lt;br&gt;
Chrome works reliably. Safari doesn't. Firefox has partial support. We ended up using manual transcript input as fallback more than we expected. The lesson: always build the fallback first, make it feel intentional, not like a workaround.&lt;/p&gt;

&lt;p&gt;We underestimated the schema design for Neo4j.&lt;br&gt;
Getting the node and relationship types right for the knowledge graph took longer than building any feature. The graph schema is the hardest part of the Neo4j integration — plan it on paper before writing a single Cypher query.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Moment That Made It Real
&lt;/h2&gt;

&lt;p&gt;We were testing the voice meeting feature. Pasted in a transcript from a real college project meeting we'd had the week before.&lt;/p&gt;

&lt;p&gt;3 seconds later, FlowMind said:&lt;/p&gt;

&lt;p&gt;"Assigned to Piyush — React listed in skill profile, 3 similar frontend tasks completed on time, prefers frontend work. Assigned to Debashree — research and documentation in past work experience, preferred task types include research."&lt;/p&gt;

&lt;p&gt;It read the room. From a transcript. Using memory it had built over previous sessions.&lt;/p&gt;

&lt;p&gt;That's when we stopped thinking of FlowMind as a hackathon project and started thinking of it as something real.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Sarvam AI integration for multilingual meeting transcription — Indian teams don't always speak English in meetings&lt;/li&gt;
&lt;li&gt;Expo mobile app for members — phone notification when a meeting assigns you a task&lt;/li&gt;
&lt;li&gt;Automated sprint retrospectives — AI generates a weekly team performance report from Hindsight memory&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Try FlowMind
&lt;/h2&gt;

&lt;p&gt;🔗 Live Demo: &lt;a href="https://flowwithmind.vercel.app/" rel="noopener noreferrer"&gt;https://flowwithmind.vercel.app/&lt;/a&gt;&lt;br&gt;
📁 GitHub: &lt;a href="https://github.com/piyushyenorkar/FlowMind" rel="noopener noreferrer"&gt;https://github.com/piyushyenorkar/FlowMind&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Built at HackHazards '26 by Piyush Yenorkar and Debashree Mal&lt;br&gt;
Theme: Human Experience &amp;amp; Productivity&lt;br&gt;
Tracks:  Neo4j · Render · Base44 · Sarvam · Expo&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>hackathon</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
