Ali Nabipour — LLM Engineer in Milan

Each project, a lesson.

Thinking

Every project on this page comes with two lines. The first is what it was. The second is what it left behind. Excitement, dopamine, exhaustion, the humility of a side thing turning out better than the serious one. The first line is for the résumé. The second is the reason the page exists.

  1. 01 · Apr 2026

    Athenis

    A team-based subscription manager. Shipped solo in two weeks with a stack I still don't know well. The one that proved how fast a person with system sense and the right tools can move alone.

  2. 02 · Apr 2026

    MOTI.MATCH

    A curated social platform for padel, tennis, and golf players. Selected for TEF Ignition #2, where I bridge market findings and the technical roadmap. The one that taught me your team is everything, and what excitement costs when it isn't right.

  3. 03 · Nov 2025

    Yarnia

    An AI-powered personalized storybook startup for kids. Founded, built the flow, taken through TEF Ignition #1. The one that taught me the best technology in the world fails quietly when you don't go outside and show someone.

    → read the thinking
  4. 04 · Jun 2025

    Done.

    A habit tracker where the streak only counts if you prove it: photo, buddy, or sensor. Built for a course I never presented. The one that taught me ideas that look simple are usually the hardest ones.

  5. 05 · Mar 2025

    Komorebi

    A 2D platformer built with a team of musicians, artists, and programmers. The one that taught me how to translate between crafts until everyone agrees on the same small thing.

  6. 06 · Dec 2024

    hAIre

    An AI HR interviewer for first-round screenings, winner of the UC Berkeley LLM Agents Hackathon. The first thing I built that reached the world, and the one that taught me what dopamine feels like when the work finally lands.

  7. 07 · Sep 2024

    Sticker Generator

    A Python library that turns prompts into transparent-background stickers. Built to keep the CV honest. One of the ones I'm quietly proud of.

  8. 08 · Jun 2024

    MemexLLM

    A Python library for LLM memory. Built because I kept writing the same missing piece in every app I started. Turned out clean enough to be worth making public.

03 · Nov 2025

Yarnia

An AI-powered personalized storybook startup for kids. Founded, built the flow, taken through TEF Ignition #1. The one that taught me the best technology in the world fails quietly when you don't go outside and show someone.

Thinking

I'd been writing backends for other people's ideas for years; Yarnia was the first time I tried to ship a company instead of a feature, and the disciplines turned out to be different. Market research with real parents. Problem-validation calls that killed half of what I thought I knew. An MVP that wasn't a small product but the smallest question I could still get an answer to. TEF Ignition gave us a stage; the work, quietly, was getting comfortable not knowing, long enough to hear what parents actually wanted their children to read.

The one-minute pitch.
The idea

It started the way most of mine do, because I could, and because the technology was interesting. A personalized storybook generator for kids. You give it a photo of the child, or their favorite toy, a handful of traits, and it builds a story where they are the hero, not Batman. I didn't know yet that "because I could" isn't a reason. I hadn't heard the words problem validation.

The first pivot: from generator to teacher

A week of looking at the market taught me the obvious thing: storybook generators already existed. The idea had to carry more weight than novelty. So I moved toward learning: a platform that could understand where a child's knowledge was and grow them, book after book.

TEF Ignition, and the team that made it a company

With that idea I applied to TEF Ignition: a €2k grant and a mentor. I didn't apply alone. Hosein, a classmate from CS, and Yifan, studying design, came with me. Three people, three crafts. The idea got polished the way ideas only get polished when someone else is sitting across the table.

The second pivot: from book to loop

Somewhere in the program the real shape arrived. Not a book you read. A book the child made. First paragraph, first image, then a choice: write what happens next, pick from options, or draw it. The story wouldn't move without a creation. I stopped thinking about math and physics and started thinking about the next generation of writers and illustrators. The children who might leave this thing a little more confident in their own hands.

Write, choose, or draw. The story answers back.
Under the hood

Two hard problems, both about continuity.

Narrative. Long stories outrun a model's context window, and coherence frays when you try to cram everything in. I kept the opening scene as an anchor, summarized the middle into a single bridging line, and slid a window across the most recent beats: enough memory to hold a thread, small enough to stay lucid. Choices were never parsed out of free-form text; the model was asked for them in a schema, and the schema was enforced, so a malformed response was a provider problem rather than a silent bug.

Visual. A red dragon in scene one cannot quietly become blue in scene three. I fed the model what had been drawn and described: the child's creations, the character's description, the established palette. Each new image was a continuation, not a fresh guess. Art style and composition were guided through the prompt rather than the API.

Around it, child-safety guardrails on every path, age-tier vocabulary from three to eighteen, and a template system so parents could shape the container, or write their own.

Diagram: a narrative timeline anchored at its start with a sliding window over recent beats, and a visual filmstrip sharing a palette across frames, converge into the next story beat.
Two engines, one thread.
Stack

Python · FastAPI · Next.js · LiteLLM · Gemini (text + image) · Langfuse · Supabase (Postgres + Storage) · Pydantic.

Thinking

After TEF the team scattered and the project stopped. The lesson stayed. Being a good engineer gets you a working product. It does not get you a customer. A startup needs someone who goes outside, who can listen long enough to hear what the person across from them actually wants. I could build the thing. I could not, then, be the person asking whether the thing should exist.

Two tracks, one question.

Thinking

Two tracks, in parallel for a long time. The university one, because I believed that was where the serious questions lived, and the years proved me right. Teaching taught me how much of a good explanation is patience. Research taught me the shape of a hard problem. The industry one, for experience first and learning second, taught me what building looks like when the work is for a stranger. The two kept each other honest. Then I had an idea of my own. Then I moved countries, which resets you to zero. What survived was a direction for both. Build things I can watch people use. Research what those things do to them once they have them. Two desks, one question.

  1. LLM Engineer

    • Built Origin Finder, an LLM tool that extracts a product's country of origin from any e-commerce page at 90% accuracy.
    • Rebuilt the fashion attribute extractor with VLMs in place of classical ML: +10% accuracy, −50% cost.
  2. Product Lead

    • Led a small engineering team and owned technical direction for hAIre, an AI product for HR automation.
    • Coordinated with stakeholders and investors while balancing hands-on development with leadership in an early-stage setting.
  3. Machine Learning Engineer

    • Built enterprise agricultural chatbots on LLMs; controlled hallucinations with RAG and fine-tuning.
    • Improved a Persian ASR system's word/character error rate from 15 to 9 using language decoder models.
    • Implemented a waveform-only recommender using unsupervised contrastive learning.
  4. Teaching & Research Assistant

    • Developed an unsupervised anomaly detection model for sperm morphology; co-authored the paper.
    • Designed and evaluated course projects, produced educational videos, and guided students through assignments.

Two schools, one thread.

Thinking

Two schools, one thread. Rasht gave me the fundamentals and the patience to sit with them. Milan is showing me where I actually want to point those fundamentals, which is somewhere closer to people. The best classes in both places taught me the vocabulary. The self-teaching in between taught me the rest.

  1. Politecnico di Milano

    Master of Science in Computer Science.

    • Member, Polimi Data Scientists Association.
  2. University of Guilan

    Bachelor of Science in Computer Science. GPA 3.86 / 4.

    • Member, Scientific Association of Computer Engineering.

A short note about me.

Thinking

I'm Ali, based in Milan, a CS master's at Politecnico di Milano working in AI. The path here has been long, and I'm proud of the whole of it. Pure engineering first, then academia, then product, each stage the one I wanted most at the time. For a while the dream was Google. For another while, becoming the next Hinton. Somewhere between those the question changed shape: the AI stopped being the interesting half of the picture, and the person using it started. What the tool does to how someone works, how it feels in their hands, whether it's even the right tool for the job. That's where I want to spend the next stretch: building startups and doing research close to human–computer interaction.

Things with a footnote.

Thinking

Research is the slowest kind of work I know how to do, which is maybe why I keep coming back to it. I like the part where you don't know yet. I like the part where the question you asked turns out to be the wrong one, and you have to write it down properly and start again. I like it most when the answer changes something about the person who was looking for it. That last part is what I want to spend the next years on.

  1. EvoToxPlusPlus: adversarial testing of LLMs via evolutionary prompts

    Research project completed under the supervision of Prof. Matteo Camilli. An open-source framework extending EvoTox with multi-objective evaluation: toxicity and perplexity measured together, evolutionary algorithms generating and refining prompts, outputs assessed for both harmful content and fluency, with visualization and analysis utilities for examining how results progress.

  2. Less-supervised learning with knowledge distillation for sperm morphology analysis

    Peer-reviewed paper in Computer Methods in Biomechanics and Biomedical Engineering: Imaging & Visualization. A knowledge-distillation approach to sperm morphology classification: a small student model trained to imitate a much larger teacher on only a sliver of labeled data, showing how little supervision is actually load-bearing once the distillation signal is doing its work.

Distance covered.

Thinking

Recognition has always been slightly embarrassing to me, which is why the list here stays small. What I kept was not a shelf. It is a short arc, in order: the moment I first had the vocabulary for this work, the moment I got new vocabulary for the newer shape of it, and the moment someone else looked at something I had built and decided it had gone far enough to matter.

  1. Winner: LLM Agents Hackathon

    First place in the hackathon run alongside the Berkeley LLM Agents MOOC.

  2. Large Language Model Agents MOOC: Legendary tier

    Top completion tier of the Berkeley LLM Agents MOOC.

  3. Machine Learning: Andrew Ng

    Stanford / Coursera's foundational machine learning course.

Email is the quietest way in.

Thinking

Email is the quietest way in and the one I pay attention to. I read everything. I answer most things within a week. Letters over pitches, and the ones that sound like the person actually wrote them stay with me longest. Short notes are welcome. Long ones are better.