
Development
development
career
automation
Past weeks were hectic, client meetings, trips.... As I was teasing in my previous post, I've been building solutions with AI that solve real world problems, and lately, I've been working on my CV quite a lot. Well, things just got a lot easier 👀.
Vivek Bhaugeerutty
October 17, 2025 · 3 min read · 76 views
Most portfolios are mirrors. Static reflections of who you were when you last updated them.
Mine became something else: a self-aware system.
It doesn’t just display my projects.
It understands, indexes, and talks about them.
This is possible thanks to vector embeddings, retrieval-augmented generation, and an admin panel I built to teach it who I am.
Everything in my portfolio lives inside a structured Supabase database.
Each project record contains:
A bilingual narrative (French and English)
Technical architecture stored as JSON
Vector embeddings generated from OpenAI models
Metadata linking tech stacks, roles, and impact
The result is not a list but a knowledge graph of my career.
When you type "show me the projects where you used AutoGen or RAG", it doesn’t just search text.
It searches meaning.
It finds Vivva, Lucca Orchestra, and Nora, and replies naturally:
"These are systems where you orchestrated agents and used retrieval pipelines to turn ambiguity into intelligence."
That’s not a script. That’s awareness.
Here is how it works internally:
Vectorization
Each project's description, impact, and skills are embedded into a vector space using OpenAI embeddings.
Retrieval Layer (RAG)
When someone asks a question, the system retrieves the most semantically relevant chunks instead of relying on keywords.
Reasoning Layer
GPT-4o synthesizes the answer based on the retrieved context, allowing the portfolio to "speak" about its own data dynamically.
Admin Layer
A custom Next.js interface lets me edit projects visually and regenerate embeddings automatically.
It feels less like a CMS and more like a control room for intelligence.
The boundary between "portfolio" and "AI system" has disappeared.
What I have is a mini-Vivva, tuned to a single subject: me.
Frontend: Next.js with MUI, designed like a personal operating system
Backend: Node.js and Supabase for data and real-time queries
AI Layer: Python services for embeddings, retrieval, and summarization
Editing Layer: An admin panel that controls memory, regeneration, and narrative tone
I can correct its memory, rewrite its summaries, and see how it learns.
Most developers struggle to keep their portfolios updated.
Mine does that on its own.
When I finish a project, I just feed it structured data:
{
"project_id": "nora",
"mission": "Optimize job applications and automate fiscal management using AI.",
"tech": ["Next.js", "TypeScript", "Python", "OpenAI", "Tailwind"]
}
The system embeds it, categorizes it, and updates every related section: cards, filters, timelines, and conversational responses.
It’s not documentation. It’s dialogue.
This project is not about novelty.
It’s about how we represent ourselves as engineers.
We build systems that learn and self-document.
Our portfolios should do the same.
A true portfolio is not a museum of the past. It is a living interface between who you were and who you are becoming.
The next step is not adding more projects.
It’s adding context.
Temporal embeddings so the system understands when each skill evolved
Reasoning chains to connect one project’s insights to the next
Voice and multimodal inputs so it can literally talk
At that stage, it will stop being a website and become a personal cognitive layer.
I started this project to showcase my work.
Somewhere along the way, it started showcasing me.
It remembers better than I do.
It reasons, speaks, and learns.
And in that reflection of code, I finally see what I wanted to build all along:
Technology that remembers us not as users, but as creators.
development ·career ·automation