Skip to results

Suggestions appear as you type. Use the up and down arrow keys to review them, Enter to search.

AI Companion

a companion that listens and speaks at the same time

Client
Ainoviq, Blackngreen's AI division
Role
Full-stack and AI Engineer
Duration
ongoing since 2026
Delivered
1 Jun 2026
Status
live

The problem

Half-duplex voice assistants take turns: you speak, they wait, they answer. Real conversation does not work that way — people overlap, interrupt, murmur agreement while the other person is still talking. A system that can only take turns feels like a walkie-talkie, and every awkward pause reminds you what you are talking to.

Constraints

  • Full-duplex means the model is listening while it is speaking, so interruption is a normal input rather than an error case
  • Barge-in has to stop generation mid-sentence and keep enough context to carry on sensibly
  • Latency budget is tighter than a phone call's, because overlap makes any lag audible immediately
  • The failure mode of a companion is being uncanny, which is a design problem as much as an engineering one

What I did

  • Built the companion around a full-duplex conversational model, so listening and speaking overlap instead of alternating
  • Handled barge-in as a first-class path: generation stops, the interruption is heard, and the thread survives it
  • Built the surrounding product — state, memory of the conversation so far, and the behaviour that decides when to stop
  • Tuned the behaviour against recorded exchanges rather than by feel, because “does this sound natural” is not a spec

The hard part

Full-duplex changes what a “turn” even is. In a half-duplex system you can wait for silence and then act; here audio is arriving while audio is going out, so the question stops being “has the user finished” and becomes “is what they just said something I should stop for”. A cough is not an interruption. “Mm-hm” is not an interruption. “No, wait —” very much is, and you have perhaps a few hundred milliseconds to decide.

Outcome

The companion holds an overlapping conversation rather than a turn-based one, and interruption behaves the way it does between two people.

What this did not do

  • This is current work at my employer. The product, its users and its numbers are not mine to publish; the engineering problem is.
  • The full-duplex model itself is not mine — I built the companion around one. The work here is everything that has to be right for overlap to feel natural.
  • Full-duplex is better, not solved. It still occasionally stops for a cough or talks over something it should have stopped for.
  • I am one engineer on this, not the whole team.

Stack

Results

  1. viditparashar.meviditparashar.me › projects › conversational-agents

    Conversational AI Platform — the layer other teams build voice and chat…

    Case studyLive2026

    1 Jul 2026… seems broken. Real conditions make it worse — compressed audio, a noisy line, and people who trail off mid-sentence. A working platform for building voice and chat…

    • Python
    • TypeScript
    • Next.js
    • Node.js
    • LangChain
    • LLMs
    • +4 more
  2. viditparashar.meviditparashar.me › experience › ainoviq

    Full-stack and AI Engineer at Ainoviq (Blackngreen) (Mar 2026 – present)

    Full-timeMar 2026 – present

    1 Mar 2026Building AI products inside Blackngreen's AI division and running several at once — an AI companion on a full-duplex model, and the automation that now handles hiring,…

  3. viditparashar.meviditparashar.me › projects › clinical-agents

    Clinical Agent Suite — four AI agents for the parts of care that are…

    Case studyShipped2025

    31 Aug 2025… pilots, not asserted. Designed and built four separate agents — medical scribe, patient intake, clinical decision support, and medical coding — on Next.js, LangChain…

    • 40%physician documentation time saved
    • 4clinical agents designed and shipped
    • 2academic health systems integrated
    • Next.js
    • TypeScript
    • Python
    • LangChain
    • LLMs
    • Node.js
    • +2 more