ilya
doronkin
Full-stack developer. Websites, CMS and admin panels, CRM, dashboards, integrations. I write the backend and the frontend, deploy it myself and keep it running.
A site for a school
of young doctors
The school has been running intakes since 2018 and its site had aged badly. The real problem was not how it looked: staff could not change anything themselves, every edit went through a developer.
I rebuilt the site from scratch and gave it an admin panel for non-technical people: add a speaker, publish a review, update the information for participants, open enrolment for an intake, look through applications. All of it in a week, from nothing to live.
Search was a separate job. The school’s pages were barely indexed: people found it neither by name nor by searches about training in HIV care. Now they do.
And I made it fast. The site crawled under heavy photographs from the classes; I compressed them so that the quality still reads the same and the pages open quickly.


The foundation’s CRM
The foundation could not measure what its testing and counselling actually achieved: one questionnaire covered every situation, and the situations differ. Out in the field a counsellor has a couple of minutes, yet the form in front of them was the same one used for a full consultation in the office.
I separated the scenarios. Field work got its own short form, its own table and its own report, and the reports finally show the result of the work.
I also built stock tracking for the medicine cabinet, which simply did not exist: it lived in spreadsheets and nobody knew how much therapy was actually on hand. Now the coordinator records what arrives, whoever hands medication out picks it from a list, and packs are written off automatically. If someone needs a few tablets rather than a whole pack, the pack is opened and the remainder is counted in tablets.
Along the way I refreshed the interface and closed the door: the CRM used to be open to anyone who knew the address, now people sign in through Telegram and only staff get in. Two weeks altogether, and I keep it running.


Redesign of the
foundation site
People could not find what they needed right then. Picture someone who has just learned they are HIV positive: they land on the home page and have no idea where to click. There are articles, there is the foundation’s mission, and there is no page that says what help is available.
That is what the redesign is about: a clearer path for someone who needs help, and a clearer view of what the foundation does and where the money goes. The dated interface got a refresh, and I extended the existing design system with the pieces it was missing.



A bot for shifts
and rotas
Volunteer shifts and the helpline rota lived in group chats and spreadsheets. The real problem was not convenience: someone could quietly delete themselves from a shift at the last moment and tell no one.
In the bot the coordinator opens the slots and a volunteer signs up on their own, but cannot sign themselves out: they have to message the coordinator and arrange cover. Control stays with the person responsible for the shift.
The helpline coordinator keeps their rota the same way, and staff with access can see who is on the line now, who comes in tomorrow and who is on next week.
The bot also hands out CRM access, so nobody has to chase an administrator for it.
- Signs people up. The coordinator opens slots, the volunteer picks one
- Stops silent no-shows. Signing out goes through the coordinator
- Keeps the helpline rota. Who is on the line now, tomorrow and next week
- Gives out CRM access. Staff get it themselves, in the chat with the bot
The foundation’s
analytics dashboard
Almost all of the foundation’s analytics in one place: money, donors, site traffic, service reach. Every number used to live in its own system and had to be pulled together by hand.
The data arrives on its own from the banks, the payment provider, the internal CRM, Yandex Metrica and Google Search Console. Bank access is read-only: the dashboard can look, it cannot move money.




Dictation for macOS
on a local model
A personal project and my only public repository. Hold the right ⌘, speak, and the text appears at your cursor in any app about two seconds later. Recognition runs on the machine itself, so the audio never leaves it.
One command to install. The glossary is tuned to your own field so names and terms do not come out mangled.
A knowledge base
for AI agents
The founding documents, the design system, the projects and the analytics all sit in one place, with a graph of links built over them. People do not need it and will never read it. AI agents do.
With that graph an agent understands what the organisation is about in seconds: it finds the document you need and whatever sits next to it, instead of walking through thousands of files. I ask where the document we made in spring is and get a path, not a suggestion to search.
Access to the foundation’s working systems is wired into the same place, and the analytics dashboard is built from it.

Search and visibility
The foundation’s site was losing traffic, and most of the loss came down to indexing: the articles simply never made it into search results and nobody had looked at it. I fixed that. Someone searching for a specific topic now finds the foundation’s article.
The second half is about AI search. When someone asks an assistant where to get tested for HIV, or which sources on HIV can be trusted, the foundation should be among the answers: its body of information is one of the most carefully checked in Russia.
Not everything is solved: part of the traffic loss is outside my control, and it is only fair to say so.
- Moved the hosting. Migrated more than 80 GB of data for two live sites from Reg.ru to Yandex Cloud in two days, with no downtime.
- Payment security. Found an attack on the donation form and a personal data leak, worked out the causes and wrote the plan to close them.
- Design production. Dozens of booklets, leaflets and posters without a staff designer.
- Annual report without Readymag. The 2024 report was built on a paid platform that is hard to pay for from Russia. I am building the 2025 one myself.
Write to me
Mostly project and contract work. Permanent roles only on a Russian employment contract.