I build software that smaller markets usually get last: AI products in Russian and Kyrgyz that businesses and lawyers can actually trust.
I also believe every person deserves equal opportunity, whatever language they speak. That’s why so much of what I build works in Russian and Kyrgyz, not only English.
Most of my recent work is about putting AI into places where a wrong answer costs trust.
Three stories
aqlex
AI legal platform for Kyrgyzstan
Cite or say nothing.
Legal professionals in Kyrgyzstan work with Russian and Kyrgyz texts spread across several official portals, with every historical edition of every act. Generic AI chatbots answer confidently and invent articles that don’t exist.
aqlex is our answer: a legal database and AI assistant for notaries, lawyers and compliance teams. My scrapers brought 422,644 documents from six official sources into one corpus, and answers on the Claude API point to specific articles.
422,644laws, editions and court decisions from six official sources, searchable in one place
Early on, users received answers with claims about legal articles that were unconfirmed or missing from the actual law. For lawyers and notaries that is serious: our credibility dropped and retention fell.
We rebuilt the pipeline so every claim is checked against the source text, with a second model re-checking every mismatch. Retention recovered. That is why I now believe the definition of “correct” for an AI product must stay in-house.
What I’d do differently. The index was built Russian-first, so the 211,637 court decisions that exist only in Kyrgyz are not yet searchable. Next time I’d model language from day one.
To extend aqlex’s rule-based citation extractor, I trained RuBERT-family NER models on 300K auto-labelled spans.
An AI-run training and evaluation of a new DistilRuBERT model concluded it was a regression. The drop looked too big to believe, so before accepting it I had the agent check input coverage instead of the scores.
The tokenizer’s overflow windows were silently dropping text: 25% of training tokens, including citations at the end of long chunks, never reached the model.
0.71 to 0.84gold F1 after fixing inference alone, with the same weights
Fixing inference alone, with the same weights, raised gold F1 from 0.71 to 0.84. We rebuilt tokenization to build windows explicitly over the whole chunk.
Lesson. When a result surprises you, check the inputs before you trust the metric.
Giving AI agents access without giving away the keys.
Sales teams in Central Asia sell through WhatsApp, Instagram and Telegram, not email. Their conversations are scattered across phones, leads get lost, and the AI tools on the market either auto-reply coldly or invent facts.
Boolut CRM puts those channels in one inbox. Its AI assistant, Boot, drafts replies and briefs leads on the Claude API, but Boot reads and the rep writes: every change is a proposal the rep accepts under their own permissions.
Then we let Claude and ChatGPT work inside the CRM through an MCP server. The obvious design is to use a service-role key and add a workspace filter to every query, which is one forgotten filter away from leaking another company’s data.
Instead, every tool call mints a 120-second token for the connected user and runs through the same Postgres row-level security policies as the web app. The token is never logged or stored.
In a later review I added a second layer: RLS answers “may this user see this row”, but a user can belong to several workspaces, so every query is also pinned to the workspace the connection was approved for. The pin can only narrow access, never widen it.
The MCP connector for Claude and ChatGPT shipped in September 2026.
A retrieval change ships when the gold set says it's better, not when a demo looks good. When a result surprises me, I check the inputs before I trust the metric.
Keep “correct” in-house.
I'm happy to use models to grade at scale, but the gold set and the rules for what counts as a correct answer belong to us, because only we know our domain.
constrain it,
AI reads, people decide.
In every AI feature I build, the model proposes and a person approves anything that changes data or reaches a customer. Speed comes from good drafts, not from removing the human.
Put the hard guarantees in one place.
Permissions live in Postgres row-level security, and everything else, including the web app, the mobile app and AI agents, goes through them. No second copy of the rules to drift out of sync.
and make it honest about its limits.
A rule from our mobile project file that sums up my approach to AI’s limits:
“Expo’s API surface moves fast; check the versioned page rather than recalling it.”
In everyday work
Design for how people actually work.
Our clients live on their phones, so the mobile app is native, not a website in a frame. Desk work gets a dense web UI; field work gets one-handed mobile.
Honest estimates, smaller first slices.
When a deadline doesn't fit the work, I say so early and propose the slice that does fit, production-quality, with the rest in a clear phase 2.
How I use AI in development
Claude Code is my main tool, and I use it every day across the stack; over 1,000 commits in our CRM repository are co-authored with it. Every repo has a CLAUDE.md and AGENTS.md with our stack, design system and security rules, so Claude Code and Codex follow the same conventions.
What I keep for myself: the data model, service boundaries, auth and permissions, and anything that touches money or personal data. For large changes I split the work into an audit and then the implementation: when we made our admin panel mobile-native, the agent first audited every page into a ledger file, then changed pages one at a time on a feature branch that I reviewed as a pull request.
Full-Stack Developer & Team Lead · Bishkek · 09/2021 – 09/2022
Makers Bootcamp Built the bootcamp's web platform on a Feature-Sliced Design architecture (React, TypeScript, Redux, Firebase, Node.js, Jest, RxJS, Docker), added online payments with Node.js edge functions, and improved the gamified test-submission experience with in-browser IDE libraries. I led code reviews for a team of 5–9 developers, mentored students, and cut technical debt from 90% to 20% within the first month.
2025
Accepted — Ask Consulting Improved the UI and UX of a global mentorship marketplace and integrated localization sync for easier locale management. Vue, Nuxt, TypeScript, WebSocket, PostgreSQL.
2026
Edge face recognition with liveness detection On-device face recognition on an ESP32-S3 camera (ESP-DL) with a web admin for enrolling people from several photos. For anti-spoofing I combined a head-turn challenge with a small MiniFASNet model. Finding so far: the passive model is unreliable on the OV2640 sensor, so the next step is fine-tuning on data from our own camera.
Alipp An interpreter in Go for a programming language with Kyrgyz keywords, with a hand-written lexer and parser. Work in progress, and a small love letter to my language.
Client discovery and product work at Boolut Beyond our own products, I've run discovery and written product requirements and proposals for 20+ systems across construction, manufacturing, education, travel, logistics, healthcare and security, including a government digitization project.
Background
I studied Computer Science at UNIST in South Korea, then spent my first years as a frontend engineer and team lead. At Makers Bootcamp in Bishkek I led a team, reviewed code for 5–9 developers and mentored new ones. For four years I worked remotely at Springdel, on a device management platform used across 100,000 devices, where I made remote file transfers up to 10x faster and cut build times by more than half.
In parallel I co-founded Boolut Technologies, a software studio in Bishkek that builds products for business and government clients across the CIS. As CTO I lead a team of six and own the work end to end: discovery, architecture, code, delivery and the client conversations around them.
Kyrgyz culture and history, especially the Manas epic and the street history of Bishkek; PC hardware; mentoring developers.
Now, October 2026
Building and improving Boot, the MCP connector and the native mobile app for Boolut CRM
Growing aqlex and working on search for the Kyrgyz-language half of the corpus
Building the QR access control platform and its door controller
Open to Applied AI, forward deployed and senior full-stack roles (remote, or relocation), and to building MCP servers and AI integrations for products that need them.
Have a product that needs AI people can trust? Let’s talk.