My AI Journey | Russ Islamov

Essay

My AI
Journey

What two weeks off turned into: a phone number that answers itself, and a record catalog with my name on it.

Inbound call8 kHz · g711

In December 2025, LinkLive gave us the last two weeks of the year off. The intent was family time. I took the family time, and I also took something else: a decision to stop talking about AI and start building with it.

Eight months later, that decision has produced two things I did not expect. The first is a working AI voice receptionist that answers a real phone number. The second is a music catalog released under my own name on Spotify, Apple Music, and Amazon Music. Neither one is a business. Both are the same story.

Part One

The Receptionist

The gap I could not close in a meeting

I spend my days on discovery calls explaining how voice IVAs work. I can walk a credit union through context passing on transfer, describe how a knowledge base keeps an agent honest, and diagram a Salesforce screen pop on a whiteboard. What I could not do, before that December, was build any of it.

There is a difference between knowing what a product does and knowing what it costs to make it do that.

When a prospect asks “can it transfer with context,” the confident answer and the informed answer sound identical in a meeting. Only one of them survives a POC. So I set out to build a working AI receptionist by myself, in two weeks, with a coding background that had gone soft years earlier.

The build

The stack looks simple on paper: a phone number on Twilio, code in GitHub, deployment on Render, and OpenAI’s Realtime API doing the talking, wired together in Node.js. An inbound call hits a webhook, the webhook returns instructions that open a live audio socket, and from that moment the caller’s voice and the model’s voice stream past each other in real time. I named the agent Luma.

I did not write most of the code by hand. I directed it. The industry calls this vibe coding, which undersells it. What actually happens is that you become the architect and the quality gate, and the AI becomes a very fast, very literal engineer that will cheerfully build exactly the wrong thing if your specification is sloppy.

By the end, Luma could answer a call, greet the caller, search a knowledge base before responding so it would not invent facts, recognize when someone wanted a human and hand the call off, and write every call, every utterance, and a full conversation summary to a database.

The part worth reading is what broke

Call log4 failures
  1. DROP

    Calls that ended the instant they connected. Twilio could reach my endpoint and get valid instructions back, then hang up 189 milliseconds later. The instructions were fine. The audio socket behind them was unreachable.

  2. SILENT

    A silent agent with perfectly healthy logs. Every step reported success. No audio ever came back. The cause was an API key missing permission for the one capability the entire project depended on.

  3. SCOPE

    An agent answering questions about the weather and about planting trees. Confidently, and completely out of scope. My code said one thing. The model was reading a pinned older version of the instructions and had never seen the rules I thought I had written.

  4. TOOL

    An agent that insisted it could not transfer a call, while the transfer function sat right there in its own configuration.

Then the audio itself refused to cooperate for three weeks across multiple model versions. At that point I stopped. I had proof that a different, less elegant path worked: generate the speech separately and resample it down to the 8 kHz that telephony requires. I took it. The purist answer was to keep fighting the intended path. The right answer was to ship the thing that worked and spend the remaining time learning something new.

Every one of those failures is a version of a problem I have watched land in a real customer deployment. The difference is that now I have felt them in my own hands.

One point worth stating plainly: CallsAnswered.ai is a project, not a business. No revenue, no customers, no roadmap. It exists so that I understand what I sell.

Part Two

The Music

Where it started

I am not a musician. I have never played an instrument or written a song. Music has still been one of the strongest forces in my life. It shapes my mood, my attention, and the way I see the world.

But I grew up in a small country in Central Asia and I live in three languages. I listened to everything, without restriction, and I could still never find the music I wanted on unlimited repeat. Not because it does not exist, but because the thing I was looking for sits in the space between: a Tajik melody with a modern floor under it, a lyric that moves from English to Tajik to Russian the way my own head does, Khujand and Nebraska inside the same three minutes.

Nobody was ever going to make that record for me. So in June 2026, I made it.

What the work actually is

The artist name is KTONIC. The catalog now runs to eight singles, distributed to Spotify, Apple Music, and Amazon Music.

Cold Fire Miles Apart Atlas of My Heart Fill the Cup Drop by Drop Имя на песке Дидори дустон Seeing the Faces of Friends

People assume AI music means typing one sentence and accepting whatever comes back. That is not the work. The work is specification, and it looks remarkably like the receptionist project.

A style prompt for one of my tracks reads like an engineering document: tempo in BPM, key, the specific mode (for one wedding-energy fusion I went to a Bayati-Bhairavi scale with a flattened second), instrument by instrument (dutar, rubab, and doira for the Tajik layer; dholak and bansuri for the Bollywood layer), where the tempo drops for the folk breakdown, where the key lifts a whole step for the final chorus. Then I generate, listen, and rewrite the specification. It is the same loop as debugging.

Problems nobody warned me about3 blockers
  1. Қ Ӥ ӯ ҷ

    The generator could not pronounce my own language. Four Tajik Cyrillic characters broke it outright. I built a system around it: every Tajik line now exists in three parallel spellings, the correct literary version for the lyric sheet, a simplified substitution the model can actually say, and a Latin transliteration as a fallback.

  2. FILTER

    The generator refuses to imitate named artists, which is correct. So instead of naming a reference, I had to describe the sound itself, which forced me to understand what I actually liked about it.

  3. CLAIM

    Distribution has its own failure modes. My own upload drew a copyright claim against my own song, which turns out to be routine, and the fix was allowlisting through the distributor rather than fighting it on the platform.

Why any of it matters

The best songs in the catalog are not the technical ones.

One was written for my classmates from School No. 5 in Khujand, some still there, most scattered across the world. I built it out of our own group chat, using the words we still say to each other. Another was written for my sister Umeda’s birthday, a nasheed-style ballad that stops dead in the middle for a recitation, then lifts into a final chorus. Another is for my three children, with their names in it.

I did not need AI to feel those things. I needed AI to be able to hand them to people.

That is the honest summary of what these tools changed for me. They did not give me taste, an ear, or something to say. They removed the execution barrier between having something to say and being able to say it. Taste is still the bottleneck, and taste is still mine.

KTONIC44.1 kHz · eight singles

What they share

A phone system and a song catalog have nothing in common. The method does.

These are the five lessons I would take into any AI initiative.

The specification is the job

Both projects failed the same way. The model was always doing exactly what I told it, and what I told it was not what I meant. Vague input produces confident, wrong output, very quickly. This is the same discipline as writing requirements for a customer deployment, and I am measurably better at it than I was in November.

Symptoms lie

The dropped call was not a telephony problem. The out-of-scope answers were not a model quality problem, they were a version control problem. Nearly every hour I lost was lost to fixing the wrong layer.

An unconstrained AI will improvise

Luma answering weather questions on a company line is funny in a side project and unacceptable in production. Scope rules, grounded retrieval, and refusal behavior are not polish, they are the product. Everything I now tell prospects about guardrails, I have watched fail on my own phone number.

Knowing when to stop is a skill

Three weeks into the audio problem, the honest move was the workaround. Engineering pride is expensive. Shipping is the point.

The last mile is never the model

Permissions, sample rates, character encodings, distribution rights, allowlists. The AI part of an AI project is usually the part that works first. Everything around it is where the schedule goes. That is exactly what our customers hit, and it is why the boring integration questions in a discovery call deserve more respect than the demo does.

Conclusion

What it changed, and what comes next

I talk differently on calls now. When a prospect asks whether an IVA can be kept from answering out of scope, I do not reach for a slide. I describe what happens when it is not constrained, because I have heard it happen. That credibility cannot be trained into a presentation. It gets earned by building the thing badly a few times first.

Two weeks off turned into eight months of the most useful learning of my career, and I did not take a single course to get it.

None of it is finished. The receptionist deserves the supervisor dashboard it does not have yet. The catalog has songs in it that are not written. New models will arrive that make half of what I learned obsolete and open doors I cannot see from here.

That is the commitment I am making anyway: keep building, keep breaking things on purpose, and keep pulling what I learn back into the work. I intend to keep enhancing my own understanding of AI and to keep educating others on it, my team first, so that the outcomes I produce keep getting better. The tools will keep changing. The habit of learning them with my hands, in public, is the part I plan to keep.

Rustam “Russ” Islamov  /  CallsAnswered.ai, a project  /  KTONIC, on all platforms