The old claim form asked for everything at once, and quietly filed the claim before the customer had finished. I rebuilt it as a short sequence that adapts to what actually happened and commits to nothing until the last button.
Customers had to check three different places to find out what happened to their requests, and most gave up and phoned the call centre instead. I merged them into a single list where every request looks the same and shows exactly which step it is on.
Buying a policy online meant typing out your documents, then your spouse's, then every driver's — on a phone, with the papers in another room. Most of that information was already in the customer's account, so I taught the forms to offer it.
In Uzbekistan, Telegram is where people already are all day, so asking them to open a browser and log in somewhere else costs real customers. I put the whole insurance site inside the chat window instead.
When a request failed, our customer area would show a developer's error text, a spinner that never stopped, or an empty page that looked like the customer had no policies at all. I replaced all of it with one honest answer.
The cabinet's "My family" form was four fields long and had a problem in every layer: you could add yourself as your own relative, it demanded an ID nobody remembers, impossible dates crashed it, errors ignored your language, the dropdown wouldn't close, and backspace didn't delete. This is the whole repair — backend rules, state-service integration, and frontend polish — of one deceptively simple form.
On a fast connection, the site opened as a gray void for seconds, then images crawled in one by one. The fixes turned out to be small. The work was proving why every slow thing existed —because each one, it turned out, was somebody's earlier fix.
Booking a doctor on a corporate medical policy meant messaging a Telegram bot. I moved that into the cabinet — a five-step form that reaches the operators' group in seconds. The interesting part was deciding how little the browser is allowed to say.
People who cancelled a policy through the website kept seeing it listed as active, because the national registry doesn't reliably report cancellations. I fixed the status at its source, and made every new cancellation announce itself to the office in Telegram the moment it is submitted.
The insurer already knew what your plan covers and what you had spent, but it lived in a system built for insurance staff. This is the page that turns those raw records into the two answers people actually want: what am I covered for, and how much is left.
Corporate health cover belongs to the employer, not the employee, so it never showed up in anyone's personal account. I built the missing link: your card, your remaining limit and every visit you've claimed, sitting alongside the rest of your policies.
Corporate medical insurance existed in people's accounts as a name and nothing else. I built the endpoint behind it and wired the cabinet to it, so the page now answers the questions people actually have: what's covered, how much has been spent, and what happens next.
Signing in to the cabinet meant a biometric face scan — and three hours later you had to do it again. The session length wasn't the bug; the missing half was renewal. Now the site quietly renews itself for fifteen days, and the hardest part was making sure it never renews twice at once.
We retired the registration form on an insurance site - now your first face scan simply creates your account. Then a real user got locked out by an account they made back in 2023, and the fix taught me more than the feature did.
Our insurance site logs people in with a face scan through MyID, Uzbekistan's national ID system. A face proves who you are - but not how to reach you. I rebuilt the login so that every sign-in also checks whether the phone number on the account is still real.
The policy-cancellation wizard already worked — users could verify identity, pick a policy, and submit a refund request. Then came a focused afternoon, the kind that actually decides whether a feature ships: cutting the product list to what the insurance core can really cancel, replacing scan-on-every-cancellation with a 30-minute verification window, making the wizard survive page reloads and language switches, and teaching the reason chips to match the product. About three hours of work, none of it a rewrite — all of it the difference between "works" and "ready".
We added a reason step with an optional PDF to our policy-cancellation wizard. My first upload design had two new endpoints, a new table, and a cleanup cron — what shipped has none of them. How walking the real user flow one more time made the feature smaller, safer, and done faster.
We were releasing sign-in via MyID, Uzbekistan's face-recognition identity system — and found that on phones a successful face scan dropped users back on the login page as if nothing happened. Here's how we prepared the release, hunted the bug down to a single line, and fixed it.
A user's cancellation refund was approved and paid, yet their cabinet showed "in progress" forever. The bug lived between two systems that never talked to each other — here's how I found it, made the status update itself before the user's eyes, and prepared the flow for the statuses still to come.
Three improvements around our online policy cancellation: every attempt now starts with a real identity check through MyID, the page no longer asks for card details when a request already exists, and "nothing here yet" screens finally help instead of confusing.
Cancelling a policy used to mean a trip to the office. I wired our customer cabinet to a new cancellation service built by my teammate, so now a customer picks a policy, sees the exact refund, enters a card, and tracks the request — all online.
A three-day sprint on the gross.uz personal cabinet: switching it to a single trustworthy data source, finding policies users didn't know they had, and polishing the interface until it feels like an app instead of a website.
I rebuilt the logged-in area of an insurance website from the ground up — a multi-page "personal cabinet" where customers see every policy they hold across the whole company, verify their identity with the national ID system, and manage their cars, property and profile. It's live in production and I'm still adding to it.
On my first day at an insurance company, I was asked to "edit the feedback form." It grew into a feature that touched everything — a floating button on the homepage, a pop-up form, and a change deep in the database so the support team could call users back instead of emailing them.