AI Engineer — production LLM systems
I build the parts of AI products that keep them dependable in production — provider failover with circuit breakers, per-call cost tracking, admission control for async generation queues and real-time streaming — with Python, FastAPI and Next.js.
- Based in
- Yerevan, Armenia · UTC+4
- Currently
- AI Engineer, UpSound AI
- Languages
- English · Russian · Armenian
- Education
- B.Sc. Software Engineering, NPUA ’27
2,000+
users
on UpSound AI, where I’m one of three core engineers
42
AI operation types
cost-tracked per call — tokens, USD and RUB — by a recorder I built
12
async job queues
behind per-user admission control I wrote in Redis Lua
1,700+
commits
≈20% of UpSound’s backend, frontend and admin since May 2026
UpSound AI — AI platform for independent musicians
One of three core engineers since May 2026 — about 1,740 commits (≈20%) across backend, frontend and admin, top committer in May and September. Below is the part I own.
- Role
- AI Engineer
- Period
- May 2026 — Present
- Product
- upsound.ai
Problem
What I built
Results
- 2,000+ users across the web app and Telegram bot
- Every AI call has a known cost: 42 operation types tracked in USD and RUB, priced from live provider rates
- Image generation keeps running through a provider outage — traffic fails over across three providers automatically
System architecture
Built by me
- Clients
- Next.js web app
- Telegram bot · aiogram
- Admin app (built by me)
- API
- FastAPI · public API
- Admin API (built by me)
- SSE live streams (built by me)
- Async work
- Admission control · Redis Lua (built by me)
- 12 RabbitMQ queues · DLX · outbox
- AI layer
- Image failover + circuit breaker (built by me)
- Audio ingestion (built by me)
- LLM gateway · Gemini / OpenRouter / xAI
- Data & cost
- AI usage log · USD / RUB (built by me)
- PostgreSQL · pgvector
- PostHog · Sentry
Team codebase: 72 Next.js pages · 289 Alembic migrations · 14,000+ backend tests · 94 Playwright specs
01
Per-call AI cost tracking
One recorder writes the tokens and USD / RUB cost of every AI call to Postgres and to PostHog as $ai_generation events, across 42 operation types. Model prices sync on a schedule from 6 providers and feed the generation-pricing service I built, which turns them into per-operation token prices.
02
Failover behind a circuit breaker
GPT Image 2 generation fails over across three providers. My Redis circuit breaker opens after 2 failures in 5 minutes, stays open for 30 minutes and fails open if Redis itself is down — one outage never blocks generation.
03
Admission control for 12 queues
Atomic per-user workflow slots in Redis Lua in front of 12 RabbitMQ job queues (quorum queues, dead-letter exchange, transactional outbox). I wrote about a third of the task-queue layer, including the RabbitMQ topology.
04
Audio ingestion → artist profile
Multi-source ingestion — Yandex Music, Bandcamp, yt-dlp search, previews — that rejects audio more than ±3 s off Spotify’s duration. Top committer on the Gemini pipeline that turns a track into a structured JSON artist profile.
05
Neuro-photoshoot pipeline
Queue, worker, provider adapters and API for reference-based artist photoshoots generated with GPT Image 2.
06
Live streaming & admin
Server-sent-event live streams for generations, including live EN → RU translation of generated song prompts. Started admin.upsound.ai (Next.js 15, 26 pages, 63 test files) and split the admin API from the public one.
Stack
- Python
- FastAPI
- SQLAlchemy 2
- PostgreSQL
- Redis · Lua
- RabbitMQ
- Gemini
- OpenRouter
- GPT Image 2
- PostHog
- aiogram 3
- Next.js 15
- React 19
- TypeScript
- Railway
Product screens
More AI systems I’ve designed and shipped
Agents, vision pipelines and LLM automations — each card names the mechanism that makes it reliable.

Own product · AI workspace · 2026
Dizzit AI
An AI workspace for interior designers: render enhancement, style transfer, new camera views, seamless materials, photo → 3D and a PDF presentation with AI-written copy. About 29k lines of TypeScript.
- Vision “scene inventory” before every generation: lights, exact materials and easily misread objects go into the image prompt so the model stops swapping fixtures — about $0.005 per analysis, ~$0.05 per 4K render.
- Three-model vision fallback chain (Gemini → Claude Haiku → Gemini) with a 100 s deadline, typed provider errors, one retry on 429 / 5xx and a doubled token budget when a reasoning model runs out.
- Near-copy guard: every new camera view is compared with the source (24×24 grayscale correlation) and regenerated once if it’s a copy.
- Next.js 15
- TypeScript
- GPT Image 2
- Gemini
- Claude Haiku
- Meshy
- Postgres (Neon)

AI agent · n8n · 2026
ElevenLabs Agent Manager
A Telegram agent that manages ElevenLabs voice agents in plain language: list and select agents, rewrite system prompts and welcome messages, update knowledge bases.
- The LLM returns a structured decision — one of 6 intents plus a confidence score — instead of free text, so every action is validated before it runs.
- Authorization lives outside the model: each read or update re-checks in MySQL that the Telegram user owns the agent, and every change goes to an audit log.
- 34-node workflow shipped in 2 days over 4 iterations, with 11 Python scripts verifying its behaviour.
- n8n AI Agent
- OpenAI GPT-5 mini
- ElevenLabs API
- Telegram Bot API
- MySQL

n8n · DEO HOME · 2025
AI automations for e-commerce
Workflows that took manual work out of a furniture retailer’s sales and catalogue operations.
- PDF quotes: the bot pulls live product photos and prices from WooCommerce, renders a branded proposal through CloudConvert and sends it in Telegram — proposal creation became hands-off.
- AI inventory assistant: the team adds, updates and removes catalogue products from plain-language Telegram messages via the WordPress / WooCommerce API.
- n8n
- OpenAI
- WooCommerce API
- CloudConvert
- Telegram Bot API
LLM app · this website · 2026
Portfolio AI assistant
The chat on this site answers questions about my work in English or Russian and links to the right section.
- Its system prompt is generated from the same typed data that renders this page, so the assistant can’t drift from the CV.
- Hardened route handler: only user / assistant turns are accepted from the client, with length and history caps and no internal errors leaked.
- Next.js route handler
- OpenAI API
- TypeScript
Where I’ve shipped production systems
- One of three core engineers: about 1,740 commits across the FastAPI backend, Next.js frontend and admin since May 2026; top committer in May and September.
- Built per-call AI cost tracking across 42 operation types and the generation-pricing service that turns live provider prices into per-operation token prices.
- Built GPT Image 2 failover across three providers behind a Redis circuit breaker, and atomic Redis-Lua admission control for 12 RabbitMQ job queues.
- Built the audio-ingestion gateway and the neuro-photoshoot pipeline, shipped SSE live streaming with live EN → RU translation, and started admin.upsound.ai.
Apr 2025 — May 2026
DEO HOME
Full-Stack Developer & AI Automation Engineer
Home and office furniture retailer
- Sole developer: built and launched two commercial e-commerce sites on WordPress / WooCommerce, from build to deployment.
- Built n8n pipelines connecting OpenAI with WooCommerce, Telegram and CloudConvert that generate PDF quotes and manage the catalogue from chat.
- Shipped an installable, offline-ready PWA catalogue that became the team’s daily internal sales tool on tablets.
2022 — 2023
IMUSIC
Web Developer
- Built and maintained responsive frontend interfaces in HTML and CSS, focused on cross-device layout and usability.
2022 — 2027 (expected)
Education
B.Sc. in Software Engineering
National Polytechnic University of Armenia
Tools I use in production
Grouped by where they sit in the system.
AI & LLM engineering
- LLM APIs: OpenAI, Gemini, Claude, xAI, OpenRouter
- Provider failover & circuit breakers
- Per-call cost tracking & pricing
- Structured outputs: JSON mode, Pydantic
- Agents & tool calling (n8n AI Agent)
- Image & vision models: GPT Image 2, Gemini
- Speech & voice: ElevenLabs
- Embeddings & vector search: pgvector
- Real-time streaming (SSE)
Backend
- Python
- FastAPI (async)
- SQLAlchemy 2 + asyncpg
- Alembic
- PostgreSQL / Supabase
- Redis & Lua
- RabbitMQ
- aiogram 3
- pytest
Frontend
- TypeScript
- Next.js 15
- React 19
- TanStack Query
- Zustand
- Tailwind CSS
- PWA
- Playwright
Infrastructure & ops
- Docker
- Railway
- Vercel
- PostHog
- Sentry
- Git
Automation & tooling
- n8n
- Telegram Bot API
- WooCommerce API
- CloudConvert
- Claude Code
- Codex
- Cursor
Websites I’ve built for businesses
End-to-end delivery for small brands: an installable PWA catalogue, a web-3D studio site and a multilingual storefront.
Activity snapshot
Production work for UpSound AI and Dizzit AI lives in private repositories, so this graph is the public tip of it. I’m happy to walk through the architecture in an interview.
16
Weeks
84
Active days
GitHub activity snapshot
07 · Contact
Hiring an AI engineer? Let’s talk.
I’m open to AI Engineer roles. Email is the fastest way to reach me — the CV has the full details.


