// dovlet

// Backend & Infrastructure Engineer

I build the systems behind the apps.

Distributed systems, real-time infrastructure, and self-hosted AI platforms — shipped, not just diagrammed.

visits
// systems map

Everything, connected

Hover or tap a node to preview it, click to jump to it.

$ ls systems/Jump to a system
// featured systems

Systems I've shipped

01TypeScript

AI-Mugallym

On-premise AI platform for organizations — retrieval-augmented chat that runs entirely inside the client's network.

on-premise deployment

The problem

Organizations wanted an AI assistant grounded in their own documents, but couldn't send that data to a third-party API. The platform had to run fully on-premise, on the client's own hardware, with zero external calls.

Browser
Next.js
web + tRPC API
AI Service
FastAPI
Ollama / vLLM
self-hosted LLM
data layerPostgreSQLRedisChromaDB

Key decisions

Hybrid retrieval, not just embeddings

Pure vector search missed exact-match queries — names, codes, short phrases. Dense retrieval (ChromaDB) is fused with sparse BM25 via Reciprocal Rank Fusion, then re-ranked with a cross-encoder for meaningfully better recall on short queries.

Query expansion before retrieval

HyDE (hypothetical document embeddings) and multi-query rephrasing widen the net before hybrid search runs, cached in Redis for 24h so repeat queries are instant.

Self-hosted models end to end

Ollama/vLLM for generation, Sentence Transformers for embeddings — nothing leaves the network. Rate limits are enforced per role (guest / user / moderator / admin) directly in Redis.

Built and measured a Turkmen-language benchmark

General LLM benchmarks don't cover Turkmen. Wrote an evaluation suite scoring language consistency, refusal avoidance, keyword coverage and latency, specific to this deployment.

Stack

Next.js 15React 19TypeScripttRPCDrizzle ORMBetter AuthBullMQFastAPIOllama / vLLMChromaDBPostgreSQLRedisDocker

Where it stands

Live admin panel with real-time CPU / RAM / Disk / GPU monitoring; every RAG behavior — reranking, MMR diversity, query expansion — is toggleable per deployment without a restart.

Need something like this built or run?

02Go

Paylash

Local cloud storage and real-time collaboration for an architecture studio — fully offline, single Go binary.

in productionView source

The problem

An architecture studio needed shared storage, real-time document collaboration, and team chat — but the studio's network has no reliable internet and no IT team to run a multi-service stack.

Browser
Caddy
TLS, reverse proxy
Go binary
API + embedded UI
Collabora
WOPI co-editing
data layerPostgreSQLMinIO

Key decisions

One binary, not a stack

Go with go:embed ships the entire frontend inside a single executable. Docker Compose (Postgres, MinIO, Collabora, Caddy) runs the whole thing on one machine, on the LAN, nothing exposed to the internet.

Uploads that survive a dropped connection

Presigned multipart uploads go directly to MinIO, so a 100GB+ project file can resume after a reload instead of restarting from zero.

Real-time co-editing without reinventing it

Wired up Collabora Online over WOPI instead of building a collaborative editor from scratch — Google Docs-grade reliability, fully self-hosted.

Recoverable by default

Every save keeps a 90-day version history; deletes go to a 30-day trash before permanent removal. No accidental data loss without an undo path.

Stack

GoPostgreSQLMinIOCollabora Online (WOPI)CaddyDocker ComposeWebSocket

Where it stands

In daily use by the studio's team for file storage, document collaboration, and internal chat — real-time reactions, read receipts, and message search included.

Need something like this built or run?

03TypeScript

KITAP

Digital reading and audiobook platform for Turkmenistan — monorepo, custom EPUB engine, built like a product, not a prototype.

sprint 11 in progress

The problem

Turkmen readers needed a modern reading platform, but the market also straddles two alphabets — Latin and Cyrillic both still circulate. A generic e-reader wasn't going to cut it.

Browser
Next.js
RSC + admin
NestJS API
modular monolith
Meilisearch
full-text search
data layerPostgreSQLRedisMinIO

Key decisions

A transliteration engine as a first-class package

packages/translit converts between Latin and Cyrillic Turkmen, so the same content library serves readers regardless of which script they grew up with.

A reading engine, not just a page viewer

packages/reader is a custom EPUB engine with its own theming, rather than wrapping an off-the-shelf reader that wouldn't fit the transliteration or performance needs.

Process discipline from day one

Architecture decisions are recorded as ADRs, work runs in sprints (11 and counting), and every release ships against Lighthouse CI performance budgets — including reduced-motion and slow-network adaptations.

Search and media as their own services

Meilisearch for full-text search, MinIO for media, both kept independent of the NestJS API so either can scale or get swapped without touching the other.

Stack

Next.js 15 (RSC)NestJSPrismaPostgreSQLRedisMeilisearchMinIOTurborepoTypeScript

Where it stands

10 sprints in, with performance budgets, view transitions, and reduced-motion support already shipped — built to scale past a single reading app into a full platform.

Need something like this built or run?

04Python

Face ID

3D face recognition with real anti-spoofing — depth, not just pixels.

hardware prototypeView source

The problem

Camera-based face login is easy to fool with a photo or a video replay. Beating that requires actual depth data, not just a 2D confidence score.

RealSense D415
RGB + depth
Camera Service
pyrealsense2
Face Processing
RetinaFace + ArcFace
Auth
JWT
Gateway
data layerPostgreSQL + pgvectorRedis

Key decisions

Depth is the security model, not an add-on

Intel RealSense D415 captures RGB + depth together. A photo on a screen or a printed face reads as a flat surface — no nose protrusion, no depth gradient — and gets rejected before matching even runs.

One microservice per concern

Camera service streams frames, Face Processing handles detection/embedding/anti-spoof, Auth issues JWTs, Gateway ties it together over REST and WebSocket. Each is independently testable and replaceable.

Vector search for the match, not brute force

512-dimensional ArcFace embeddings, indexed in Postgres with pgvector's HNSW index, matched by cosine similarity in real time.

Live camera feed over WebSocket

The React frontend streams RGB + depth preview live during enrollment and login, so the anti-spoofing check is visible, not a black box.

Stack

PythonFastAPIIntel RealSense D415InsightFace / ArcFaceRetinaFacePostgreSQL + pgvectorRedisReactTypeScriptWebSocket

Where it stands

Rejects photo, printed-photo, video-replay and flat-mask spoofing attempts by construction — the attack has to fake real depth, not just a picture.

Need something like this built or run?

// more systems

Systems registry

Streaming Platform

TypeScript

Production-grade backend for a mobile streaming service — WebRTC ingest/playback via SRS, TypeScript microservices, NATS events.

TypeScriptSRSWebRTCNATSPostgreSQL
private

Presence Service

Go

Real-time presence tracking — WebSocket hub, Redis pub/sub fan-out, Prometheus metrics, clean architecture.

GoWebSocketRedisPrometheus
Source

Annajams

TypeScript

Full-stack commerce platform — NestJS modular monolith, React admin panel, Redis-backed queues, one-command Docker deploy.

NestJSReactPostgreSQLRedisMinIO
private

App Usage Monitor

TypeScript

Cross-machine usage monitoring — a native Windows agent (Python service) reporting to a TypeScript microservice backend with a live dashboard.

PythonTypeScriptPostgreSQLMinIO
private

Digital Library Microservices

Go

Six-service digital library architecture — Go, Python/FastAPI and Node.js services behind one gateway, each with its own datastore.

GoFastAPINode.jsElasticsearchRabbitMQ
Source

Excalidraw (Turkmen)

TypeScript

Localized Excalidraw into Turkmen — one of three languages in my fork, alongside English and Russian.

TypeScriptReacti18n
Source

Art Collection

TypeScript

Online art gallery and sales platform — microservices architecture, 5-language storefront.

Node.jsReactMongoDBi18n
private
// capabilities

Stack health

LanguagesOK
GoPythonTypeScriptC#
DataOK
PostgreSQLpgvectorMySQLMongoDBRedisElasticsearchMeilisearch
InfrastructureOK
DockerRabbitMQNATSMinIO (S3)NginxCaddyGitHub ActionsPrometheus
Real-timeOK
WebSocketWebRTC (SRS)Server-Sent EventsWeb Push
AI / MLOK
RAG pipelinesSelf-hosted LLMs (Ollama / vLLM)Hybrid retrieval + re-rankingChromaDBInsightFace / OpenCV
// about

Who's running this

I'm Dovlet — a backend and infrastructure engineer based in Ashgabat, Turkmenistan. Four years in, most of my time has gone into the parts of software people don't see until they break: message queues, vector search, WebRTC media pipelines, biometric anti-spoofing, self-hosted AI infrastructure. I like systems that have to stay up — real-time chat with delivery guarantees, uploads that resume after a dropped connection, face verification that has to be right the first time. Outside client work, I localize open-source tools into Turkmen, because good software shouldn't stop at English and Russian.

// dovlet@systems

os
Ashgabat, Turkmenistan
uptime
0 years
shell
go + python + typescript + c#
packages
0 (systems shipped)
focus
distributed systems, real-time, AI infra
locale
en_US, ru_RU, tk_TM
status
Open to remote opportunities
// contact

Let's talk

Open to remote opportunities

Distributed systems, real-time infrastructure, and self-hosted AI platforms — shipped, not just diagrammed.