
How do you know the number is still live?
On a monitoring panel numbers sit quietly. Whether they are updating or the screen has frozen was impossible to tell.
Hello, I'm
Frontend Engineer
Results-driven Frontend Developer with nearly 2 years of professional experience building data-intensive government web applications. Specialized in React, Redux, and interactive data visualization (GIS maps, charts, dashboards). Proven ability to collaborate with cross-functional teams and deliver performant, accessible, and responsive UIs at scale.
What I Know
My Work

The largest system I have built: an internal portal that covers the full employee lifecycle for a large organization. Attendance is collected from Hikvision turnstiles through a dedicated onboarding flow, then aggregated into per-employee and per-department monitoring views. Beyond attendance it carries an employee directory, org-structure management, an appeals workflow with multi-step approval, internal news and messaging, OAuth client management for integrating downstream systems, an audit log, and an analytics layer built on Highcharts. Around 30 distinct pages, each with its own role-based access rules. ONNX Runtime runs in the browser for on-device inference without sending data to a server.

A large Vue 2 administrative panel for managing statistical classifiers and registry data. Handles multi-level classifier hierarchies with full CRUD at every degree, an internal messaging system with create/edit/view flows, and an integration log viewer for tracing data exchange with external systems. Rich text editing through Quill, charts via Chart.js, client-side encryption with crypto-js, and full i18n. The largest single-framework codebase I have worked on — roughly 37k lines of Vue single-file components plus 16k of SCSS.
A full-stack learning platform where Claude acts as a tutor. Courses break down into modules and topics; each topic carries lesson content, practice tasks that are graded by the model, and a chat thread scoped to that topic so the conversation keeps its context. Progress is tracked per user and per topic. Includes an admin panel for per-user course access control and a progress viewer. Built on the Next.js App Router with NextAuth for credentials and Google sign-in, Prisma over SQLite (libSQL), and a glassmorphism UI. Deployed with Docker behind Caddy with automatic HTTPS.

A field-survey monitoring system built around interactive maps. Surveyors' coverage of agricultural land parcels and social-sphere facilities is plotted on Leaflet maps with Geoman drawing tools, so polygons can be drawn and edited directly in the browser. Includes district-level search with a dedicated modal and loading states for mahalla-level data, several distinct map pages for different survey rounds, and a dashboard aggregating completion rates. Ant Design for the interface, Redux Toolkit for state, with a test suite on React Testing Library.

A consumer-price analytics product covering Uzbekistan. Prices are broken down by market, by region and by product, with a dedicated comparison view for putting several products or regions side by side, a forecasting page, and an inflation-expectations section. Region geometry is rendered from GeoJSON for every province, giving a choropleth view of price levels. Each product has its own detail route with historical series. A methodology page documents how the figures are derived. Built on the Next.js App Router with Recharts, including a fullscreen chart mode and light/dark theming.

A GIS dashboard that tracks registration coverage down to mahalla level across Uzbekistan's provinces. Maps are rendered with MapLibre GL through react-map-gl, and polygon-clipping is used to compute overlaps and merge administrative boundaries on the fly. The mahalla view drills from province to district to neighbourhood with live counters, and generated QR codes link field staff straight to the relevant record. Multilingual interface, Redux Toolkit for state, animated transitions with Framer Motion.

The one project where I owned all three tiers. A NestJS backend exposes the API with JWT auth, TypeORM over PostgreSQL, scheduled jobs, WebSockets for live booking updates, and a Telegram bot for notifications. The React Native (Expo) client separates barber and client roles: barbers manage their portfolio, bookings and earnings; clients browse, book and review. Auth supports OTP, Telegram login and role selection, with device and location APIs for finding nearby barbers. A React admin panel on top covers barbers, bookings, services, reviews, users and a Leaflet map view, with Recharts dashboards.
A Telegram bot that delivers films by subscription, paired with a separate admin PWA. A user picks a plan, pays, an admin confirms the payment, and from then on films arrive by numeric code straight from a private channel. The admin side is a standalone installable web app with web push notifications, so a pending payment reaches the phone without opening Telegram. Plan prices and card details are stored in the database and edited from the admin app, not hardcoded. Runs in Docker behind a shared Caddy reverse proxy with automatic HTTPS.
A real-time dashboard for the VPS that hosts all of these projects. Ten screens covering CPU, memory, disk and network, project directories with their sizes and git state, Docker containers, systemd services and timers, attack attempts parsed from auth.log with fail2ban and firewall state, HTTP traffic read from Caddy access logs, live log streaming and deployment. Measurements arrive every two seconds over Server-Sent Events, with a single shared timer on the server so ten open tabs still cost one measurement. Deployment is triggered by a GitHub webhook whose signature is verified over the raw request body. The panel is deliberately read-only.
Career Path
Developed and maintained GIS-based web applications for visualizing regional statistical data of Uzbekistan. Built interactive maps using Leaflet and GeoJSON to display demographic, economic, and social indicators. Implemented dynamic charts and dashboards (bar, donut, line, population pyramid) for data analysis. Refactored and optimized frontend components using React, Redux, MUI, and Styled Components. Integrated REST APIs and handled large datasets with graceful error and null-data handling.
Led development and support of internal statistical web systems used by government analysts. Designed and implemented frontend architecture using React, Redux, and modern UI libraries. Developed interactive data visualization modules (charts, tables, dashboards) for regional and national statistics. Worked with GIS data and maps to visualize location-based statistical indicators. Integrated and optimized REST APIs, ensuring data accuracy and system stability.
Academic Background
Bachelor's Degree · Software Engineering
Tashkent, Uzbekistan
Studied computer science fundamentals, software engineering, algorithms, data structures, and modern web development technologies. Actively participated in university projects and programming competitions.
My Thoughts

On a monitoring panel numbers sit quietly. Whether they are updating or the screen has frozen was impossible to tell.

I fixed about ten bugs in one day. One of them was a serious hazard I noticed by accident.

I built a materials catalogue for students. If search cannot find it, the whole thing is pointless.

As screens multiplied they stopped resembling each other. The cause was styling each one separately.

Publishing the course content needed a certain tool. The server did not have it, and installing it was not right either.

Writing a form is easy; making it reliable is not. After thinking it through, I removed it entirely.
Get In Touch
I'm always open to new opportunities and interesting projects. Feel free to reach out!
Phone
+998 99 579 8545Location
Tashkent, Uzbekistan