Filipp MikheevFilipp MikheevФилипп Михеев
CV(PDF) Lebenslauf(PDF) Резюме(PDF)

Software development and business automation. Moscow, working remotelySoftwareentwicklung und Automatisierung. Moskau, remoteРазработка ПО и автоматизация бизнеса. Москва, работаю удалённо

Taking on projectsNehme Projekte anБеру проекты

FilippMikheev FilippMikheev ФилиппМихеев

Ten years auditing the accounts of large companies. Now I build systems where money and data reconcile and only the right people see the amounts: operations systems and CRMs, migrations off legacy platforms, AI in daily work, websites.Zehn Jahre habe ich die Abschlüsse großer Unternehmen geprüft. Heute baue ich Systeme, in denen Geld und Daten stimmen und Beträge nur sieht, wer sie sehen darf: Unternehmenssoftware und CRM, Umzüge von Altsystemen, KI im Arbeitsalltag, Websites.Десять лет проверял отчётность крупных компаний. Теперь пишу системы, где сходятся деньги и данные, а суммы видит только тот, кому положено: учёт и CRM, переезд со старых систем, ИИ в работе, сайты.

or by email:oder per E-Mail:или на почту: feelmetttt@gmail.com

What I work on nowWoran ich gerade arbeiteЧем занимаюсь сейчас

Client workFür KundenДля заказчиков

Business automation, end to endAutomatisierung aus einer HandАвтоматизация бизнеса под ключ

The usual picture: the process already works, but it lives in chats, spreadsheets and a few people’s memory, and a mistake in money or data costs more than the development itself. I take the work from the first conversation to a running system, and I stay for support.Das typische Bild: Der Prozess läuft bereits, hängt aber an Chats, Tabellen und dem Gedächtnis einzelner Mitarbeiter, und ein Fehler bei Geld oder Daten kostet mehr als die Entwicklung selbst. Ich begleite das Projekt vom ersten Gespräch bis zum laufenden System und bleibe danach für den Betrieb da.Типовая ситуация: процесс уже работает, но держится на переписке, таблицах и памяти отдельных людей, а ошибка в деньгах или данных обходится дороже самой разработки. Беру задачу от первого разговора до работающей системы и остаюсь на сопровождении.

  • Operations system or CRM for your processUnternehmenssoftware oder CRM für Ihren ProzessУчёт и CRM под ваш процессcleaning: office CRM, 6 rolesReinigung: Büro-CRM, 6 Rollenклининг: CRM офиса, 6 ролей
  • Migration off legacy systems and spreadsheetsUmzug von Altsystemen und TabellenПереезд со старой системы и таблиц11,055 old URLs still work, rollback in one command11.055 alte Adressen funktionieren weiter, Rollback mit einem Befehl11 055 старых адресов работают, откат одной командой
  • IntegrationsIntegrationenИнтеграцииPBX: customer card before pickupTelefonanlage: Kundenprofil vor dem AbhebenАТС: карточка клиента до ответа
  • AI in day-to-day operationsKI im TagesgeschäftИИ в операционной работеArgos: 500k journal lines anonymised in 85 sArgos: 500.000 Buchungszeilen in 85 s anonymisiertArgos: 500 тыс. строк журнала проводок обезличены за 85 секунд
  • Incident investigation and stabilityVorfallsanalyse und StabilitätРазбор инцидентов и устойчивостьroot cause found after 2 failed investigationsUrsache nach zwei erfolglosen Untersuchungen gefundenпричина найдена после 2 безрезультатных расследований
  • Apps for staff and customersApps für Mitarbeiter und KundenПриложения для сотрудников и клиентов~600 buyers across two messengers~600 Käufer in zwei Messengern~600 покупателей в двух мессенджерах
  • Websites and search optimisationWebsites und SuchmaschinenoptimierungСайты и поисковое продвижениеcrawler response 8.6 → 0.6 s after the repair, Lighthouse 98-100 on site prototypesAntwortzeit für Crawler 8,6 → 0,6 s nach der Reparatur, Lighthouse 98-100 bei Website-Prototypenответ поисковым роботам 8,6 → 0,6 с после ремонта, Lighthouse 98-100 на прототипах сайтов
Go-live / Reconciliation reportGo-live / AbstimmungsberichtЗапуск / Акт сверкиDiscrepancies: 0Abweichungen: 0Расхождений: 0

Go-live reconciliationAbstimmung zum Go-liveСверка при запуске

Source versus the new systemQuelle gegen neues SystemИсточник против новой системы

CheckPrüfungПроверкаSourceQuelleИсточникNew systemNeues SystemНовая системаStatusStatusСтатус
Site URLs after the moveSeitenadressen nach dem UmzugАдреса сайта после переезда11,05511.05511 05511,05511.05511 055
Order numbers: bot = panelAuftragsnummern: Bot = Admin-OberflächeНомера заказов: бот = панель383383
Wallet balance = sum of ledger entriesKontostand = Summe der BuchungenБаланс кошелька = сумма проводокΣΣ
Sums hidden from roles without accessBeträge für Rollen ohne Recht verborgenСуммы скрыты от ролей без права66 / 6

Crawler responseAntwortzeit für CrawlerОтвет поисковым роботам

0.6 s0,6 s0,6 с was 8.6 svorher 8,6 sбыло 8,6 с

Product page responseAntwortzeit ProduktseiteОтвет товарной страницы

0.5 s0,5 s0,5 с was 11.6 svorher 11,6 sбыло 11,6 с

Figures from the projects below, gathered on one screen as an example.Kennzahlen aus den Projekten unten, beispielhaft auf einem Bildschirm zusammengefasst.Показатели взяты из проектов ниже и собраны на одном экране для примера.

My own productEigenes ProduktМой продукт

An AI assistant for audit firms. Its agents work in steps, with the result checked at each one, and a custom MCP server for external AI assistants logs every call.Ein KI-Assistent für Prüfungsgesellschaften. Die Agenten arbeiten in mehreren Schritten, das Ergebnis wird bei jedem Schritt geprüft, und ein eigener MCP-Server für externe KI-Assistenten protokolliert jeden Aufruf.ИИ-помощник для аудиторских фирм. Агенты работают в несколько шагов с проверкой результата на каждом, свой MCP-сервер для внешних ИИ-ассистентов ведёт журнал каждого обращения.

One command checks all eight packagesEin Befehl prüft alle acht PaketeОдна команда проверяет все восемь пакетов

  • BuildBuildСборка
  • Type checkTypprüfungПроверка типов
  • API contractAPI-VertragКонтракт API
  • Tests in a full runTests im vollständigen LaufАвтотестов в полном прогоне23,87523.87523 875
  • 16journal-entry checksPrüfungen des Buchungsjournalsпроверок журнала проводок
  • 133k133.000133 тыс.lines of codeZeilen Codeстрок кода
  • 173k173.000173 тыс.lines of testsZeilen Testsстрок тестов
argos-audit.ru

StudioStudioСтудия

SitesstudioSitesstudioСайты и точка

My web studio for shops in Russia. It moves and redesigns online shops. Example: by-home.ru, a 13,000-product shop: all 11,055 old product URLs still work, and the first order on the new site came the next day.Mein Webstudio für Shops in Russland, die Website gibt es auch auf Englisch. Es zieht Onlineshops um und gestaltet sie neu. Beispiel: by-home.ru, ein Shop mit 13.000 Produkten: alle 11.055 alten Produktadressen funktionieren weiter, die erste Bestellung auf der neuen Website kam am nächsten Tag.Переезд и редизайн интернет-магазинов. Пример: by-home.ru, магазин на 13 000 товаров: все 11 055 старых адресов товаров работают, первый заказ на новом сайте пришёл на следующий день.

Home page of the Sitesstudio web studio, in Russian
sitesstudio.ru

Figures and where they come fromZahlen und woher sie stammenЦифры и откуда они взяты

As in an audit, every figure comes with its source. All of them are from the projects described below.Wie in der Prüfung steht bei jeder Zahl ihre Quelle. Alle stammen aus den unten beschriebenen Projekten.Как в аудите, у каждой цифры указан источник. Все они из проектов, описанных ниже.

Automated tests as of 9 November 2026Automatische Tests, Stand 9.11.2026Автотесты на 9 ноября 2026

Online shopOnlineshopИнтернет-магазин1,0231.0231 023
Grocery deliveryLebensmittel­lieferungДоставка продуктов752
Cleaning CRMReinigungs-CRMCRM клининга1,9901.9901 990
Country estate appApp fürs LandhausПриложение загородной недвижимости70
Argos23,87523.87523 875
Five systems in totalFünf Systeme insgesamtВсего в пяти системах27,71027.71027 710
Before and after on client projects, with sourcesVorher und nachher in Kundenprojekten, mit QuellenБыло и стало на проектах заказчиков, с источниками
MetricKennzahlПоказатель BeforeVorherБыло AfterNachherСтало SourceQuelleИсточник
Product page responseAntwortzeit ProduktseiteОтвет товарной страницыold site after the repair, template rebuilds removedalte Website nach der Reparatur, Neuaufbau der Vorlagen entferntстарый сайт после ремонта, пересборка шаблонов убрана 11.6 s11,6 s11,6 с 0.5 s0,5 s0,5 с server-side measurementMessung am Serverзамер на сервере
Crawler responseAntwortzeit für CrawlerОтвет поисковым роботамold site after the repair; crawlers made up 62% of trafficalte Website nach der Reparatur, Crawler machten 62 % des Traffics ausстарый сайт после ремонта, роботы давали 62% трафика 8.6 s8,6 s8,6 с 0.6 s0,6 s0,6 с server-side measurementMessung am Serverзамер на сервере
Database tablesTabellen in der DatenbankТаблиц в базе данныхonline shop: old and new platformOnlineshop: alte und neue Plattformинтернет-магазин: старая и новая платформа 373 13 database schemaDatenbankschemaсхема базы данных
Product URLs after the moveProduktadressen nach dem UmzugАдреса товаров после переездаevery one matched against the old sitejede mit der alten abgeglichenкаждый сверен с прежним 11,05511.05511 055 11,05511.05511 055 checked against the sitemapAbgleich mit der Sitemapсверка с картой сайта
Lighthouse on mobileLighthouse mobilLighthouse на телефонеmanufacturer’s website prototype, all categoriesPrototyp der Website eines Herstellers, alle Kategorienпрототип сайта производителя, все категории 57-92 98-100 Lighthouse runLighthouse-Messungзамер Lighthouse

ProjectsProjekteПроекты

Seven projects from 2026: before, what was done, after. Client names, domains and data are withheld, except by-home.ru, shown with the owner’s consent. Most screens are in Russian: the clients are in Russia.Sieben Projekte aus dem Jahr 2026: vorher, umgesetzt, Ergebnis. Kundennamen, Domains und Daten nenne ich nicht, außer by-home.ru, das mit Zustimmung des Betreibers gezeigt wird. Die meisten Oberflächen sind auf Russisch: die Kunden sitzen in Russland.Семь проектов 2026 года: что было, что сделано, что изменилось. Названия заказчиков, домены и данные не раскрываю, кроме by-home.ru: магазин показан с согласия владельца.

by-home.ru home page after the move
by-home.ru on a phone

LiveIm BetriebРаботаетE-commerce, 2026Onlinehandel, 2026Интернет-магазин, 2026

by-home.ru: repairing a 13,000-product shop and moving it to a new platformby-home.ru: Reparatur eines Shops mit 13.000 Produkten und Umzug auf eine neue Plattformby-home.ru: ремонт магазина на 13 000 товаров и переезд на новую платформу

First the old site was repaired: a product page went from 11.6 s to 0.5 s, crawler responses from 8.6 s to 0.6 s. Then the shop moved to the new platform: all 11,055 old product URLs still work, the old site kept for a one-command rollback.Zuerst wurde die alte Website repariert: Eine Produktseite lud in 0,5 statt 11,6 Sekunden, Crawler bekamen ihre Antwort in 0,6 statt 8,6 Sekunden. Danach zog der Shop auf die neue Plattform um: alle 11.055 alten Produktadressen funktionieren weiter, die alte Website blieb für ein Rollback mit einem Befehl erhalten.Сначала починен старый сайт: товарная страница стала открываться за 0,5 секунды вместо 11,6, поисковые роботы - получать ответ за 0,6 вместо 8,6. Потом магазин переехал на новую платформу: все 11 055 старых адресов товаров работают, старый сайт сохранён для отката одной командой.

  • 13,53213.53213 532products movedProdukte übernommenтовара перенесено
  • 11,05511.05511 055old URLs still workalte Adressen funktionierenстарых адресов работают
  • 13tables instead of 373Tabellen statt 373таблиц вместо 373
  • 1,0231.0231 023testsTestsавтотеста
Before, what was done, stackVorher, Umsetzung, TechnikБыло, сделано, технологии

BeforeVorherБыло

An end-of-life platform. Malware came back three times in a month; two previous investigations found nothing. A product page took 11.6 s to load.Eine Plattform ohne Herstellersupport. Die Schadsoftware kehrte innerhalb eines Monats dreimal zurück, zwei frühere Untersuchungen fanden nichts. Eine Produktseite brauchte 11,6 Sekunden zum Laden.Платформа снята с поддержки. За месяц трижды возвращалось заражение, два предыдущих расследования ничего не нашли. Товарная страница открывалась за 11,6 секунды.

DoneUmgesetztСделано

  • Process monitoring showed the intruders came in past the web server, through a service port open to the internet. The port is closed, and the fix survives a reboot.Die Prozessüberwachung zeigte, dass der Zugang am Webserver vorbei über einen offenen Dienstport lief. Der Port ist geschlossen, die Korrektur übersteht einen Neustart.Мониторинг процессов показал вход мимо веб-сервера через служебный порт, открытый в интернете. Порт закрыт, правка сохраняется после перезагрузки.
  • A replacement platform built in parallel; all 11,055 old product URLs open the product or, if it was withdrawn, its section.Parallel eine neue Plattform aufgebaut; alle 11.055 alten Produktadressen öffnen das Produkt oder, wenn es nicht mehr verkauft wird, seine Rubrik.Параллельно собрана новая платформа; все 11 055 старых адресов товаров открывают товар, а снятый с продажи - его раздел.
  • Search: crawlers made up 62% of traffic and waited 8.6 s for a response. That is now 0.6 s, and every URL after the move was matched one-to-one against the old ones.Suche: Crawler machten 62 % des Traffics aus und warteten 8,6 Sekunden auf eine Antwort. Jetzt sind es 0,6 Sekunden, und jede Adresse nach dem Umzug wurde eins zu eins mit der alten abgeglichen.Поиск: роботы давали 62% трафика и ждали ответа по 8,6 секунды. Ответ ускорен до 0,6 секунды, адреса после переезда сверены с прежними один к одному.

StackTechnikТехнологии

Python, FastAPI, SQLAlchemy, PostgreSQL, Alembic, React, TypeScript, Docker Compose, nginx, iptables, fail2ban, PrestaShop / MariaDB

by-home.ru
Prototype of a building materials manufacturer’s website, name hidden

Prototype with the clientPrototyp beim KundenПрототип у заказчикаBuilding materials, 2026Baustoffe, 2026Стройматериалы, 2026

A manufacturer’s website: from audit to a site that picks the right product itselfWebsite eines Herstellers: vom Audit zu einer Website, die das passende Produkt selbst auswähltСайт производителя: от аудита до сайта, который сам подбирает материал

Lighthouse on mobile: old site 57-92, new site 98-100 across all categories. The client’s change list is done; next is moving it onto their CMS.Lighthouse mobil: alte Website 57-92, neue 98-100 in allen Kategorien. Die Änderungswünsche des Kunden sind umgesetzt, als Nächstes folgt der Umzug in sein CMS.Lighthouse на телефоне: старый сайт 57-92, новый 98-100 по всем категориям. Правки заказчика внесены, дальше перенос на его систему управления сайтом.

  • 170URLs crawled in the auditAdressen im Audit gecrawltадресов обойдено при аудите
  • 684profiles in the calculatorProfile im Rechnerпрофиля в калькуляторе
Before, what was done, stackVorher, Umsetzung, TechnikБыло, сделано, технологии

BeforeVorherБыло

93 pages and not a single enquiry form: emails went to seven branch inboxes and no analytics goals were set, so nobody knew how many enquiries the site produced. The sitemap listed 9 of 93 URLs, 21 links were broken, 1,785 of 1,912 images had no alt text, 61 titles were duplicated. The calculation page said “please contact our specialists” instead of calculating anything.93 Seiten und kein einziges Anfrageformular: E-Mails landeten in den Postfächern von sieben Niederlassungen, Ziele in der Webanalyse waren nicht eingerichtet, also wusste niemand, wie viele Anfragen die Website bringt. Die Sitemap enthielt 9 von 93 Adressen, 21 Links waren defekt, 1.785 von 1.912 Bildern hatten keinen Alt-Text, 61 Titel kamen doppelt vor. Auf der Berechnungsseite stand statt einer Berechnung „wenden Sie sich an unsere Fachleute“.93 страницы и ни одной формы заявки: обращения шли письмами на ящики семи филиалов, цели в веб-аналитике не настроены, поэтому сколько заявок даёт сайт, не знал никто. В карте сайта 9 адресов из 93, 21 битая ссылка, у 1 785 картинок из 1 912 нет подписи, 61 заголовок повторяется. На странице расчёта вместо расчёта было «обращайтесь к специалистам».

DoneUmgesetztСделано

  • An outside-in audit with no access granted: 170 URLs crawled, Lighthouse runs, five competitors reviewed, a five-step plan.Audit von außen, ohne Zugänge: 170 Adressen gecrawlt, Lighthouse-Messungen, fünf Wettbewerber analysiert, ein Plan in fünf Schritten.Аудит снаружи, без доступов: обход 170 адресов, замеры Lighthouse, разбор пяти конкурентов, план работ из пяти шагов.
  • A new site: product and coating thickness picked for the required fire-resistance rating, with the certificate number; a consumption calculator over the steel section catalogue (684 profiles, checked against two sources); enquiries routed to the right branch by region.Eine neue Website: Auswahl von Produkt und Schichtdicke für die geforderte Feuerwiderstandsklasse samt Zertifikatsnummer, ein Verbrauchsrechner über den Stahlprofilkatalog (684 Profile, gegen zwei Quellen abgeglichen), Anfragen gehen je nach Region an die richtige Niederlassung.Новый сайт: подбор материала и толщины покрытия под требуемый предел огнестойкости с номером сертификата, калькулятор расхода по сортаменту металлопроката (684 профиля, сверены по двум источникам), заявки с выбором региона уходят в нужный филиал.
  • A map of 123 old URLs: 84 stay, 21 get permanent redirects, 18 greeting posts move to the news section, rules tested on the same server type. One domain version and canonical URLs instead of duplicates.Eine Zuordnung von 123 alten Adressen: 84 bleiben, 21 erhalten dauerhafte Weiterleitungen, 18 Grußbeiträge wandern in die News, die Regeln sind auf demselben Servertyp getestet. Eine Domainvariante und kanonische Adressen statt Duplikaten.Карта 123 старых адресов: 84 остаются, 21 переводится постоянной переадресацией, 18 поздравлений уходят в раздел новостей, правила проверены на сервере того же типа. Одна версия домена и канонические адреса вместо дублей.

Also foundAußerdem gefundenЧто ещё нашлось

Questions about the product documents and the specification tables; both went to the technologist to check.Fragen zu den Produktunterlagen und zu den Normtabellen, beides ging zur Prüfung an den Technologen.Вопросы к документам на продукцию и к таблицам норм; оба переданы технологу.

StackTechnikТехнологии

HTML, CSS, JavaScript, Node.js, schema.org, Apache 301 / canonical, Caddy, Docker, Lighthouse, axe

Online furniture catalogue for dealers: solid beech collections

LiveIm BetriebРаботаетFurniture, 2026Möbel, 2026Мебель, 2026

A dealer catalogue in two days: 817 items, none missedHändlerkatalog in zwei Tagen: 817 Artikel, keiner vergessenКаталог для дилеров за два дня: 817 позиций без единой пропущенной

The catalogue runs on the client’s hosting. All 2,750 files were checked by size during the transfer.Der Katalog läuft beim Hoster des Kunden. Beim Umzug wurden alle 2.750 Dateien nach Größe abgeglichen.Каталог работает на хостинге заказчика. При переносе все 2 750 файлов сверены по размеру.

  • 42sections checkedRubriken geprüftраздела сверены
  • 2days from voice note to catalogueTage von der Sprachnachricht zum Katalogдня от голосового до каталога
Before, what was done, stackVorher, Umsetzung, TechnikБыло, сделано, технологии

BeforeVorherБыло

A dealer needed its own catalogue of the factory’s full range, but the factory site had 42 sections and no export. The brief arrived as two voice messages.Ein Händler brauchte einen eigenen Katalog des gesamten Sortiments einer Fabrik, deren Website 42 Rubriken und keinen Export hatte. Der Auftrag kam als zwei Sprachnachrichten.Дилеру нужен был свой каталог всей продукции фабрики, а на её сайте 42 раздела и никакой выгрузки. Задачу прислали двумя голосовыми сообщениями.

DoneUmgesetztСделано

  • The voice messages were transcribed locally. The factory site was crawled in two independent passes, completeness checked section by section.Die Sprachnachrichten wurden lokal transkribiert. Die Website der Fabrik wurde in zwei unabhängigen Durchläufen gecrawlt, die Vollständigkeit Rubrik für Rubrik geprüft.Голосовые расшифрованы локально. Сайт фабрики обойдён двумя независимыми проходами, полнота сверена по каждому разделу.
  • An Excel workbook with every attribute and a formula-driven summary. An online catalogue: collections, a filtered storefront, product pages with galleries, an order form on every product page. Hidden from search engines.Eine Excel-Tabelle mit allen Merkmalen und einer Zusammenfassung per Formeln. Ein Onlinekatalog: Kollektionen, Katalogansicht mit Filtern, Produktseiten mit Galerie, Bestellformular auf jeder Produktseite. Von der Indexierung ausgeschlossen.Таблица Excel со всеми характеристиками и сводкой на формулах. Электронный каталог: коллекции, витрина с фильтрами, карточки с галереей, форма заказа в карточке товара. Закрыт от индексации.

StackTechnikТехнологии

JavaScript, HTML, CSS, Python, Excel, whisper.cpp, Vercel

Prototype of a concert musician’s website, name replaced

PrototypePrototypПрототипMusician, Germany, 2026Musiker, Deutschland, 2026Музыкант, Германия, 2026

A concert musician’s website prototype: a personal invitation for every guestPrototyp für die Website eines Konzertmusikers: eine persönliche Einladung für jeden GastПрототип сайта концертного музыканта: личное приглашение каждому гостю

Six screens; every guest gets a personal invitation link in their own channel and language.Sechs Ansichten; jeder Gast bekommt einen persönlichen Einladungslink in seinem Kanal und seiner Sprache.Шесть экранов; каждый гость получает личную ссылку-приглашение в своём канале и на своём языке.

  • 6screensAnsichtenэкранов
  • 3invitation channelsEinladungskanäleканала приглашений
Goal, what was done, stackAufgabe, Umsetzung, TechnikЗадача, сделано, технологии

GoalAufgabeЗадача

A German and Russian site for a musician based in Germany. The point is to invite each guest to concerts personally.Eine Website auf Deutsch und Russisch für einen in Deutschland lebenden Konzertmusiker. Das Wichtigste: jeden Gast persönlich zu Konzerten einladen.Сайт на немецком и русском для музыканта, который живёт в Германии. Главное - приглашать на концерты лично, каждого отдельно.

DoneUmgesetztСделано

  • Each guest gets a message with their own name and form of address in their language (“Liebe …”, “Sehr geehrte Frau Dr. …”, “Дорогая …”) through their own channel: WhatsApp, SMS or email. A personal link leads to a reply page.Jeder Gast bekommt eine Nachricht mit eigenem Namen und eigener Anrede in seiner Sprache („Liebe …“, „Sehr geehrte Frau Dr. …“, „Дорогая …“) über seinen Kanal: WhatsApp, SMS oder E-Mail. Ein persönlicher Link führt zur Antwortseite.Каждый гость получает сообщение со своим именем и обращением на своём языке («Liebe …», «Sehr geehrte Frau Dr. …», «Дорогая …») в своём канале: WhatsApp, SMS или почта. Личная ссылка ведёт на страницу ответа.
  • schema.org MusicEvent markup so Google can show date and venue right in the results.Strukturierte Daten nach schema.org (MusicEvent), damit Google Datum und Ort direkt in den Suchergebnissen zeigt.Разметка концертов schema.org MusicEvent, чтобы Google показывал дату и место прямо в выдаче.

ChecksPrüfungenПроверки

The layout was checked at 390, 768, 1024 and 1280 px: no horizontal scroll.Das Layout wurde bei 390, 768, 1024 und 1280 px geprüft: kein horizontales Scrollen.Вёрстка проверена на ширине 390, 768, 1024 и 1280 пикселей: горизонтальной прокрутки нет.

StackTechnikТехнологии

HTML, CSS, JavaScript, schema.org MusicEvent, WhatsApp / SMS / email, Lighthouse, axeHTML, CSS, JavaScript, schema.org MusicEvent, WhatsApp / SMS / E-Mail, Lighthouse, axeHTML, CSS, JavaScript, schema.org MusicEvent, WhatsApp / SMS / почта, Lighthouse, axe

~600buyers order through the messenger they already useKäufer bestellen über ihren gewohnten Messengerпокупателей заказывают через привычный мессенджер

LiveIm BetriebРаботаетGrocery delivery, 2026Lebensmittellieferung, 2026Доставка продуктов, 2026

A delivery service moved from chats and spreadsheets into one systemEin Lieferdienst ist von Chats und Tabellen in ein System umgezogenСлужба доставки ушла с переписки и таблиц в одну систему

Order numbers agree between bot and panel, and risky features ship switched off until the client decides.Die Auftragsnummern stimmen zwischen Bot und Oberfläche überein, und riskante neue Funktionen bleiben abgeschaltet, bis der Kunde entscheidet.Номера заказов в боте и панели сходятся, а рискованные новые функции выходят выключенными до решения заказчика.

  • 383old orders renumberedalte Aufträge neu nummeriertстарых заказа перенумерованы
  • 752testsTestsавтотеста
Before, what was done, stackVorher, Umsetzung, TechnikБыло, сделано, технологии

BeforeVorherБыло

Orders, operators, purchasing, delivery and customer money lived in a messenger and spreadsheets. The bot and the panel showed different numbers for the same order.Aufträge, Disponenten, Einkauf, Lieferung und Kundenguthaben liefen über einen Messenger und Tabellen. Bot und Admin-Oberfläche zeigten für denselben Auftrag unterschiedliche Nummern.Заказы, операторы, закупка, доставка и деньги клиентов велись в мессенджере и таблицах. Бот и панель показывали разные номера одного заказа.

DoneUmgesetztСделано

  • An office panel and two storefront bots with the same features: Telegram and a second messenger whose API client I wrote from scratch.Eine Büro-Oberfläche und zwei Shop-Bots mit gleichem Funktionsumfang: Telegram und ein zweiter Messenger, dessen API-Client ich von Grund auf geschrieben habe.Панель офиса и два магазина-бота с одинаковыми возможностями: Telegram и второй мессенджер, клиент к API которого написан с нуля.
  • Customer balances are kept as a ledger; a second click during cash reconciliation cannot double an amount.Kundenguthaben werden als Buchungsjournal geführt, ein zweiter Klick bei der Bargeldabrechnung verdoppelt keinen Betrag.Деньги клиента ведутся журналом проводок, сверка наличных не удваивает сумму при повторном нажатии.

StackTechnikТехнологии

Python 3.12, FastAPI, SQLAlchemy async, PostgreSQL, Redis, aiogram, React 18, TypeScript, Ant Design, TanStack Query, Docker Compose

6roles with distinct rightsRollen mit eigenen Rechtenролей с разными правами

DeliveredAn Kunden übergebenСдана заказчикуCleaning services, 2026Reinigungsdienste, 2026Клининг, 2026

Office CRM and a field app where only the right people see the moneyBüro-CRM und App für Einsatzkräfte, in denen Beträge nur sieht, wer sie sehen darfCRM офиса и приложение исполнителя, где суммы видит только тот, кому положено

The system passed four acceptance rounds. Managers and workers see only the sums they are entitled to, and the customer card pops up while the phone is still ringing.Das System hat vier Abnahmerunden bestanden. Büro und Einsatzkräfte sehen nur die Beträge, die ihnen zustehen, und das Kundenprofil erscheint, während das Telefon noch klingelt.Система прошла четыре круга приёмки. Менеджеры и исполнители видят только свои суммы, а карточка клиента всплывает, пока телефон ещё звонит.

  • 1,9901.9901 990testsTestsавтотестов
  • ~550customers migratedKunden übernommenклиентов перенесено
Before, what was done, stackVorher, Umsetzung, TechnikБыло, сделано, технологии

BeforeVorherБыло

One-off jobs and contracted sites lived in spreadsheets. Boxed CRMs did not fit field-staff settlements or access control around money.Einzelaufträge und Vertragsobjekte lagen in Tabellen. Standard-CRMs passten weder zur Abrechnung mit den Einsatzkräften noch zur Rechtevergabe bei Beträgen.Разовые заказы и объекты на договоре жили в таблицах. Коробочные CRM не ложились на расчёты с исполнителями и разграничение доступа к деньгам.

DoneUmgesetztСделано

  • Access to sums is enforced on the server, side doors included: Excel exports, PDF quotes, the calculator, the field app.Der Zugriff auf Beträge ist serverseitig gesperrt, einschließlich aller Umgehungswege: Excel-Exporte, PDF-Angebote, Rechner, App für Einsatzkräfte.Доступ к суммам закрыт на сервере вместе с обходными путями: выгрузки в Excel, коммерческие предложения в PDF, калькулятор, приложение исполнителя.
  • Two years of data and ~550 customers migrated; two-way virtual PBX integration.Zwei Jahre Daten und rund 550 Kunden übernommen, Anbindung an die Cloud-Telefonanlage in beide Richtungen.Перенесены два года данных и около 550 клиентов, связь с виртуальной АТС в обе стороны.

StackTechnikТехнологии

Python, FastAPI, PostgreSQL, React, TypeScript, Ant Design, Telegram Mini App, virtual PBX API, Excel / PDFPython, FastAPI, PostgreSQL, React, TypeScript, Ant Design, Telegram Mini App, API der Cloud-Telefonanlage, Excel / PDFPython, FastAPI, PostgreSQL, React, TypeScript, Ant Design, Telegram Mini App, API виртуальной АТС, Excel / PDF

23screens verifiedAnsichten geprüftэкрана проверены

In daily useIm täglichen EinsatzВ ежедневной работеProperty management, 2026Immobilienverwaltung, 2026Управление недвижимостью, 2026

A country estate: an app that reads receipts and understands voiceLandhaus: eine App, die Belege liest und Sprache verstehtЗагородная недвижимость: приложение, которое читает чеки и понимает голос

Voice input is transcribed on the server and works the same on iPhone and Android; notifications were verified on a real device. Used every day.Die Spracheingabe wird auf dem Server erkannt und funktioniert auf iPhone und Android gleich, Benachrichtigungen sind auf einem echten Gerät geprüft. Die App wird täglich genutzt.Голосовой ввод распознаётся на сервере и одинаково работает на iPhone и Android, уведомления проверены на живом устройстве. Приложением пользуются каждый день.

  • 70testsTestsавтотестов
  • 0app stores involvedApp-Stores nötigмагазинов приложений
Before, what was done, stackVorher, Umsetzung, TechnikБыло, сделано, технологии

BeforeVorherБыло

The owner and the manager ran expenses, tasks and purchasing in chats and on paper.Eigentümer und Verwalter führten Ausgaben, Aufgaben und Einkäufe in Chats und auf Papier.Собственник и управляющий вели расходы, задачи и закупки в переписке и на бумаге.

DoneUmgesetztСделано

  • An app installed on the phone as an icon, no app store, with 3 roles.Eine App, die ohne App Store als Symbol aufs Handy kommt, mit 3 Rollen.Приложение ставится на телефон иконкой без магазина приложений, в нём 3 роли.
  • Receipts go through a chain of recognisers with a local fallback; line items attach to the pending order.Belege laufen durch eine Kette von Erkennungsdiensten mit lokaler Reserve, die Positionen werden automatisch dem offenen Auftrag zugeordnet.Чеки разбирает цепочка распознавателей с запасным локальным вариантом, позиции сами привязываются к заказу.

StackTechnikТехнологии

Python, FastAPI, PostgreSQL, PWA, Web Push, Tesseract, Whisper, Docker Compose

From audit to engineeringVon der Prüfung zur EntwicklungПуть: от аудита к разработке

From 2017 I checked how money reconciles at large companies, who can see which figures and what gets lost when data moves. Now I check the same things in my own code before go-live.Ab 2017 habe ich in großen Unternehmen geprüft, ob das Geld aufgeht, wer welche Zahlen sieht und was beim Datenumzug verloren geht. Heute prüfe ich genau das in meinem eigenen Code vor dem Go-live.С 2017 года я проверял, как у крупных компаний сходятся деньги, кто и к каким цифрам имеет доступ и что теряется при переносе данных. Теперь проверяю это в собственном коде до запуска.

EducationAusbildungОбразованиеMEPhI (National Research Nuclear University), economic security, degree with honours, 2017MEPhI (Moskau), Wirtschaftssicherheit, Abschluss mit Auszeichnung, 2017НИЯУ МИФИ, экономическая безопасность, диплом с отличием, 2017

CourseWeiterbildungКурсEPAM, systems analysis, 2024EPAM, Systemanalyse, 2024EPAM, системный анализ, 2024

  1. Audit and internal controlWirtschaftsprüfung und interne KontrolleАудит и внутренний контроль

    IFRS and Russian GAAP audits of large industrial, IT and state companies. Internal control assessment under COSO and SOX, operational audit, forensics, reporting to CFOs and audit committees. Led teams of up to ten.Prüfungen nach IFRS und russischer Rechnungslegung (RAS) bei großen Industrie-, IT- und Staatsunternehmen. Bewertung interner Kontrollen nach COSO und SOX, operative Prüfung, forensische Untersuchungen, Berichte an Finanzvorstände und Prüfungsausschüsse. Teams mit bis zu zehn Personen geleitet.Аудит по МСФО и РСБУ крупных промышленных, ИТ и государственных компаний. Оценка внутреннего контроля по COSO и SOX, операционный аудит, расследования. Отчитывался перед финансовыми директорами и комитетами по аудиту. Руководил командами до десяти человек.

  2. 2017-2018
    FBK Grant ThorntonAudit AssistantPrüfungsassistentАссистент аудитора
  3. 2018-2019
    Baker Tilly RussiaExperienced AssistantErfahrener PrüfungsassistentСтарший ассистент аудитора
  4. 2019-2020
    Manufacturing companyProduktionsunternehmenПроизводственная компанияInternal AuditorInterner RevisorВнутренний аудитор
  5. 2020-2021
    FBK Grant ThorntonAuditorPrüferАудитор
  6. 2021-2022
    ADE Professional SolutionsAudit Project ManagerProjektleiter PrüfungРуководитель аудиторских проектов
  7. 2023
    HaierSenior Internal Control SpecialistSenior-Spezialist interne KontrollenСтарший специалист по внутреннему контролю
  8. 2023-2024
    FRESH AUTOSenior AuditorSenior AuditorСтарший аудитор
  9. EngineeringEntwicklungРазработка

    Commercial .NET development in a product team and, since 2024, my own projects, where I lead the development: from the first client conversation to deployment and incident duty.Kommerzielle .NET-Entwicklung in einem Produktteam und seit 2024 eigene Projekte, in denen ich die Entwicklung verantworte: vom ersten Kundengespräch bis zu Betrieb und Störungsbereitschaft.Коммерческая разработка на .NET в продуктовой команде и с 2024 года собственные проекты, где разработку веду я: от разговора с заказчиком до выкладки и дежурства при инцидентах.

  10. 2024-2026
    AltenarBackend Developer, C# and .NETBackend-Entwickler, C# und .NETРазработчик на C# и .NET
  11. since 2024seit 2024с 2024
    IndependentSelbstständigСобственные проектыClient systems: operations software, CRMs, migrations, AI. Argos. Sitesstudio.Kundensysteme: Unternehmenssoftware, CRM, Umzüge, KI. Argos. Sitesstudio.Системы для заказчиков: учёт, CRM, переезды, ИИ. Argos. «Сайты и точка».

How audit experience lowers your riskWie Prüfungserfahrung Ihr Risiko senktЧем аудиторский опыт снижает ваш риск

I brought three rules from audit into code. Each comes with a bug from a real project.Drei Regeln aus der Prüfung habe ich in den Code übernommen. Zu jeder gehört ein Fehler aus einem echten Projekt.Из аудита я перенёс в код три правила. Под каждым - ошибка из реального проекта.

Money reconciles by entriesGeld stimmt auf BuchungsebeneДеньги сходятся по проводкам

Balances are derived from operation history. Any figure can be traced to its source entry, and a second click never creates a second payment.Salden entstehen aus der Buchungshistorie. Jeder Betrag lässt sich bis zur Ursprungsbuchung zurückverfolgen, und ein zweiter Klick erzeugt nie eine zweite Zahlung.Баланс выводится из истории операций. Любую сумму можно разложить до первичной записи, а повторное нажатие кнопки не создаёт второй платёж.

from practiceaus der Praxisиз практикиHanding over cash doubled a worker’s debt because the sign came from the button. Fixed before go-live.Die Abgabe von Bargeld verdoppelte die Schuld eines Mitarbeiters, weil das Vorzeichen vom Button kam. Vor dem Go-live behoben.Сдача наличных удваивала долг исполнителя, потому что знак брался от кнопки. Исправлено до запуска.

Rights are enforced on the serverRechte werden auf dem Server durchgesetztПрава проверяются на сервере

Hiding a button is not enough. I check the side doors: exports, printed forms, calculators, the “view as role” mode.Einen Button auszublenden reicht nicht. Ich prüfe die Umgehungswege: Exporte, Druckformulare, Rechner, den Modus „Ansicht als Rolle“.Скрыть кнопку в интерфейсе мало. Проверяю обходные пути: выгрузки, печатные формы, калькуляторы, режим «посмотреть глазами роли».

from practiceaus der Praxisиз практикиThe role mode swapped only the menu while sums still arrived under the manager’s rights. Closed on the server.Der Rollenmodus tauschte nur das Menü, Beträge kamen weiter mit den Rechten des Managers. Auf dem Server geschlossen.Режим роли менял только меню, суммы приходили под правами управляющего. Закрыто на сервере.

Migrations are reconciled row by rowMigrationen werden Zeile für Zeile abgestimmtПеренос данных сверяется построчно

Before the move: a backup and a tested restore. After: counts and totals reconciled with the source. A discrepancy stops go-live.Vor dem Umzug: Sicherung und getestete Wiederherstellung. Danach: Anzahl und Summen mit der Quelle abgestimmt. Eine Abweichung stoppt den Go-live.До переезда - копия базы и проверенное восстановление, после - сверка количества и сумм с источником. Расхождение останавливает запуск.

from practiceaus der Praxisиз практикиSpreadsheet sums arrived as 6094.999999999999 and broke the re-run. Handled in the migration.Beträge aus Tabellen kamen als 6094.999999999999 an und brachen den Wiederholungslauf ab. In der Migration abgefangen.Суммы из формул таблиц приходили как 6094,999999999999 и ломали повторный прогон. Учтено в переносе.

How a project runsSo läuft ein Projekt abКак идёт проект

  1. Process reviewProzessanalyseРазбор процесса

    Talking to the people who do the work, plus exports and documents. Finding where money and time leak.Gespräche mit den Menschen, die die Arbeit machen, dazu Exporte und Dokumente. Ich ermittle, wo Geld und Zeit verloren gehen.Разговоры с теми, кто делает работу, разбор выгрузок и документов. Ищу, где теряются деньги и время.

    Output: process mapErgebnis: ProzesslandkarteИтог: карта процесса
  2. Written estimateSchriftliche SchätzungПисьменная оценка

    Scope, stages, timeline and the risks visible already. No back-of-envelope numbers.Umfang, Phasen, Zeitplan und bereits sichtbare Risiken. Keine Zahlen aus dem Bauch.Состав работ, этапы, сроки и риски, которые видны уже сейчас. Без оценки «на глаз».

    Output: staged plan and budgetErgebnis: Phasenplan und BudgetИтог: план и смета по этапам
  3. Staged deliveryUmsetzung in PhasenСдача по этапам

    Each part is accepted on your real data.Jeder Teil wird mit Ihren echten Daten abgenommen.Каждая часть принимается на ваших реальных данных.

    Output: working incrementErgebnis: lauffähiger TeilИтог: рабочая часть системы
  4. Launch with a rollback planStart mit RückfallplanЗапуск с планом отката

    Backup, rollback plan, risky features switched off until you decide.Sicherung, Rückfallplan, riskante Funktionen abgeschaltet, bis Sie entscheiden.Копия базы, план отката, рискованные функции включаются только после вашего решения.

    Output: data reconciliation reportErgebnis: Bericht zur DatenabstimmungИтог: акт сверки данных
  5. Handover and supportÜbergabe und BetreuungПередача и сопровождение

    Code, credentials, guides and tests stay with you. Support as agreed.Code, Zugänge, Anleitungen und Tests bleiben bei Ihnen. Betreuung nach Vereinbarung.Код, доступы, инструкции и автотесты остаются у вас. Сопровождение - по договорённости.

    Output: everything is yoursErgebnis: alles gehört IhnenИтог: всё у заказчика

FormatsFormateФорматы работы

  • Turnkey systemSystem aus einer HandСистема под ключ

    From process review to launch and handover. For teams without in-house developers or with a busy one.Von der Prozessanalyse bis zu Start und Übergabe. Für Teams ohne eigene Entwickler oder mit ausgelasteter Entwicklung.От разбора процесса до запуска и передачи. Подходит, когда своей разработки нет или она занята.

  • Rescuing an existing systemRettung eines bestehenden SystemsВосстановление существующей системы

    It crashes, crawls, was breached or the numbers do not add up. I find the cause first, then fix it.Es stürzt ab, ist langsam, wurde gehackt oder die Zahlen gehen nicht auf. Erst finde ich die Ursache, dann behebe ich sie.Падает, тормозит, взломана или расходится в цифрах. Начинаю с разбора причины, потом чиню.

  • Extending your teamVerstärkung für Ihr TeamУсиление вашей команды

    I take one area: a migration, an integration, an AI module. In your repository, by your rules.Ich übernehme einen Bereich: eine Migration, eine Integration, ein KI-Modul. In Ihrem Repository, nach Ihren Regeln.Беру отдельный участок: перенос данных, интеграцию, ИИ-модуль. Работаю в вашем репозитории и по вашим правилам.

What your security team will askWas Ihre IT-Sicherheit fragen wirdЧто важно вашей службе безопасности

  • Code and credentials belong to youCode und Zugänge gehören IhnenКод и доступы принадлежат заказчику

    Repository, servers and keys are in your name. Code, guides and tests let another developer take over, so you do not depend on me.Repository, Server und Schlüssel laufen auf Ihren Namen. Code, Anleitungen und Tests erlauben einem anderen Entwickler die Übernahme, Sie sind nicht von mir abhängig.Репозиторий, серверы и ключи оформлены на вас. Код, инструкции и автотесты позволяют передать систему другому разработчику, поэтому вы от меня не зависите.

  • Deployed inside your perimeterBetrieb in Ihrer InfrastrukturРазвёртывание в вашем контуре

    On your servers or in a Russian cloud. Personal data stays within the agreed infrastructure; external AI models are connected only with your approval.Auf Ihren Servern oder in einer Cloud Ihrer Wahl. Personenbezogene Daten bleiben in der vereinbarten Infrastruktur, externe KI-Modelle werden nur mit Ihrer Zustimmung angebunden.На ваших серверах или в российском облаке. Персональные данные не покидают согласованную инфраструктуру, внешние ИИ-модели подключаются только с вашего разрешения.

  • Role-based rights and an audit logRollenrechte und ProtokollПрава по ролям и журнал действий

    Access control on the server; significant actions logged: who changed what and when.Zugriffskontrolle auf dem Server, wichtige Aktionen werden protokolliert: wer was wann geändert hat.Разграничение доступа на сервере, запись значимых действий: кто, что и когда изменил.

  • Backups with a tested restoreSicherungen mit getesteter WiederherstellungРезервные копии с проверенным восстановлением

    A backup before every migration, regular off-server copies on an agreed schedule, restore verified in practice.Eine Sicherung vor jeder Migration, regelmäßige Kopien außerhalb des Servers nach vereinbartem Plan, Wiederherstellung praktisch erprobt.Копия до каждой миграции, регулярные копии за пределами сервера по согласованному графику, восстановление проверено на практике.

  • NDA before any data changes handsGeheimhaltungsvereinbarung vor jeder DatenübergabeСоглашение о неразглашении до передачи данных

    I sign the agreement before I receive any data. I name clients only with their consent, as with by-home.ru.Ich unterschreibe die Vereinbarung, bevor ich Daten erhalte. Kunden nenne ich nur mit ihrer Zustimmung, wie bei by-home.ru.Подписываю соглашение до того, как получу данные. Заказчиков называю только с их согласия, как by-home.ru.

  • Verifiable qualityÜberprüfbare QualitätПроверяемое качество

    Tests on business rules, “deployed” confirmed by a request to the live service, every bug traced to its cause.Tests auf Geschäftsregeln, „ausgerollt“ wird durch eine Anfrage an den laufenden Dienst bestätigt, jeder Fehler bis zur Ursache verfolgt.Автотесты на бизнес-правила, подтверждение выкладки запросом к работающему сервису, разбор каждой ошибки до причины.

StackTechnikТехнологии

BackendBackendСервер

  • Python
  • FastAPI
  • SQLAlchemy, Alembic
  • PostgreSQL
  • Redis
  • C# / .NET

FrontendFrontendИнтерфейсы

  • React
  • TypeScript
  • Ant Design
  • Vite
  • TanStack Query
  • PWA

Bots and AIBots und KIБоты и ИИ

  • aiogram
  • Telegram Mini App
  • LLM agentsLLM-AgentenИИ-агенты
  • MCP
  • Whisper
  • Tesseract

InfrastructureInfrastrukturИнфраструктура

  • Docker Compose
  • nginx, Caddy
  • Linux
  • iptables, fail2ban
  • pytest
  • Lighthouse, axe

Get in touchSchreiben Sie mirНапишите мне

Telegram or email. If it is about a task, a few lines help make the first call concrete:Per Telegram oder E-Mail. Geht es um eine Aufgabe, helfen ein paar Zeilen, damit das erste Gespräch konkret wird:В Telegram или на почту. Если речь о задаче, пришлите в нескольких фразах, чтобы первая встреча была предметной:

  • how the process works today and what it runs on;wie der Prozess heute läuft und womit;как процесс устроен сейчас и в чём его ведут;
  • how many people and operations per day or month;wie viele Personen und Vorgänge pro Tag oder Monat;сколько людей и операций в день или в месяц;
  • where money, time or control get lost.wo Geld, Zeit oder Kontrolle verloren gehen.где теряются деньги, время или контроль.

I will reply with an approach, a preliminary estimate and the risks I can already see.Ich antworte mit einem Lösungsweg, einer ersten Schätzung und den Risiken, die ich schon sehe.В ответ пришлю подход, предварительную оценку и первые риски.