Поговорим о том, как связаны HR-бренд и внутриком и почему ваши сотрудники становятся главным каналом коммуникации — хотите вы этого или нет
Поговорим о том, как связаны HR-бренд и внутриком и почему ваши сотрудники становятся главным каналом коммуникации — хотите вы этого или нет

За последние годы поработал с разными уровнями фронтенда - от старого легаси-стека до современных R&D-задач.
На позапрошлом проекте - экосистема Яндекса: BEM, ENB, i-bem.js. Не просто методология, а старый фреймворк, со всеми его особенностями, архитектурой и ограничениями. Пришлось глубоко разбираться в том, как поддерживать и развивать такие проекты, где важна не только скорость, но и внимание к каждой детали в интерфейсе.
Последний проект - это уже чистый TypeScript без фреймворков и библиотек. Реализовал крупный компонент для работы с массивами данных в миллионы строк:
- получение и обработка данных с сервера,
- хранение на клиенте в IndexedDB,
- оптимизация и разгрузка основного потока через WebWorkers,
- рендеринг и визуализация в Canvas (без WebGL, что сильно усложнило задачу),
- динамическая сортировка, фильтрация, виртуальный скролл, drag-and-drop.
Фокус всегда один - чистый, быстрый и надёжный фронтенд, где важны и производительность, и внимание к UX. Опыт работы с легаси, помогает понимать, как улучшать старый код, не ломая его, а современные проекты, дают возможность строить архитектуру с нуля.
Telegram для связи: @blacksunder
Всё, что нужно обо мне знать, можно найти на GitHub: https://github.com/Fanzholl/.


Выберите навык, чтобы посмотреть, какие тесты специалист уже прошел.
Проектирование и реализация архитектуры клиентской части с использованием TypeScript и Canvas/WebGL для отображения сложных инженерных данных.
Работа с потоковыми данными: обработка, трансформация и отображение телеметрии в режиме реального времени.
Разработка кастомных графических компонентов без использования сторонних библиотек визуализации.
Участие в построении системы анализа данных: выявление аномалий, визуализация параметров бурения, поддержка принятия решений.
Оптимизация производительности рендеринга и обработки данных.
Взаимодействие с backend-частью (Node.js / Express), интеграция API и работа с базами данных.
Разрабатывал высоконагруженные внутренние интерфейсы для банковских систем с акцентом на производительность, управляемость состояния и масштабируемость решений. Работа велась преимущественно на нативном JavaScript и TypeScript без использования фреймворков, что требовало самостоятельного проектирования архитектуры компонентов, механизмов рендеринга и управления состоянием. В рамках задач реализовывал собственную систему UI-компонентов, ориентированную на переиспользуемость и изоляцию логики, применяя ООП-подход для инкапсуляции поведения и контроля жизненного цикла. Проектировал структуру приложений с разделением на слой представления, бизнес-логику и работу с данными, минимизируя связанность модулей и повышая предсказуемость поведения интерфейсов.
Особое внимание уделял оптимизации производительности при работе с большими объёмами данных: разрабатывал интерфейсы с динамическими таблицами и списками, реализовывал частичную отрисовку и механизмы, аналогичные виртуальному скроллу, минимизировал количество операций с DOM за счёт батчинга изменений и контроля перерисовок, снижая нагрузку на основной поток. Для тяжёлых вычислений использовал Web Workers, вынося ресурсоёмкую логику из UI-потока и предотвращая блокировки интерфейса. Работал с асинхронными процессами, включая взаимодействие с API, обработку ошибок и синхронизацию состояния, обеспечивая стабильную работу интерфейсов при сложных пользовательских сценариях. Реализовывал кастомные подходы к управлению состоянием без сторонних библиотек, разделяя временное состояние интерфейса, бизнес-данные и кешируемые структуры.
В части стилизации строил масштабируемую систему на SCSS с применением методологии BEM, обеспечивая независимость компонентов, читаемость и предсказуемость стилей, а также упрощая дальнейшее развитие интерфейсов. Настраивал и поддерживал сборку проекта с использованием Webpack и Node.js, оптимизировал процесс сборки и структуру бандлов. Участвовал в развитии внутреннего UI-стека, принимал архитектурные решения по новым компонентам, занимался рефакторингом существующего кода с целью повышения производительности, поддерживаемости и прозрачности логики. Работал в условиях высокой степени автономности, где требовалось не только реализовывать задачи, но и самостоятельно определять технические подходы, оценивая их влияние на систему в долгосрочной перспективе.
Разрабатывал интерфейсы корпоративных систем с использованием методологии БЭМ и экосистемы ENB/BEMJSON, что предполагало строгий декларативный подход к построению UI и высокой дисциплины в архитектуре фронтенда. Основная работа заключалась не просто в верстке, а в проектировании масштабируемых и переиспользуемых интерфейсных решений, где каждый блок представлял собой изолированную сущность с чётко определённой ответственностью и контрактами взаимодействия.
Использовал BEMJSON как декларативный слой описания интерфейса, формируя структуру страниц и компонентов через данные, а не через прямые манипуляции DOM, что позволяло выстраивать предсказуемую и расширяемую архитектуру. Работал с ENB как основной системой сборки, настраивал пайплайны, контролировал зависимости между блоками и обеспечивал корректную сборку сложных интерфейсных страниц. Параллельно использовал Gulp для вспомогательных задач, включая обработку стилей и оптимизацию ассетов.
Проектировал и реализовывал UI-компоненты с упором на переиспользуемость и масштабирование, строго следуя принципам БЭМ: декомпозиция интерфейсов на независимые блоки, минимизация вложенности и отказ от избыточной специфичности CSS. Это позволяло создавать устойчивую к изменениям кодовую базу, где добавление нового функционала не приводило к деградации существующих частей системы.
Занимался адаптивной и кроссбраузерной версткой сложных интерфейсов, обеспечивая корректную работу в различных окружениях и на разных устройствах. Особое внимание уделял единообразию отображения, предсказуемости поведения и устранению несовместимостей между браузерами. Работал со SCSS/Sass, выстраивал структуру стилей таким образом, чтобы они оставались читаемыми, масштабируемыми и не конфликтовали между собой даже при росте проекта.
Активно взаимодействовал с системой контроля версий Git, участвовал в командной разработке, поддерживал консистентность кодовой базы и следовал принятым стандартам. В процессе работы регулярно сталкивался с необходимостью балансировать между скоростью разработки и качеством архитектуры, принимая решения, которые позволяли системе развиваться без накопления критического технического долга.
Работа в рамках БЭМ-экосистемы сформировала глубокое понимание компонентного подхода, изоляции логики и важности архитектурной дисциплины на фронтенде, что в дальнейшем позволило уверенно переходить к более сложным задачам, связанным с производительностью, управлением состоянием и построением собственных UI-решений без опоры на сторонние фреймворки.
Учусь в направление "Прикладная информатика в экономике" по специальности "Анализ Данных".
Образование юриста, работал в адвокатской кабинете.
Здравствуйте! Меня зовут Митрий, я - веб-разработчик с опытом в TypeScript, JavaScript, C, C# и PHP. Создаю эффективные приложения, ориентированные на производительность и пользовательский опыт.
Некоторые из моих ключевых проектов:
White_Inc_Bomber - мощный и гибкий инструмент для отправки SMS через различные API-сервисы: https://github.com/Fanzholl/White_Inc_Bomber/releases/tag/latest
ani-libri-m – сервис для поиска аниме, написанный на TypeScript с использованием React: https://github.com/Fanzholl/ani-libri-m
Punctum-Space – личная социальная сеть, разработанная с нуля на JavaScript и Node.js с использованием React, с поддержкой взаимодействий в реальном времени: https://github.com/Fanzholl/Punctum-Space
Game of Life – реализация клеточного автомата на C, демонстрирующая навыки работы с алгоритмами: https://github.com/Fanzholl/game_of_life
Shablonizator – генератор HTML-шаблонов, написанный на JavaScript, для упрощения процесса веб-разработки: https://github.com/Fanzholl/Shablonizator
SalaryCalculation – приложение для расчёта зарплат, написанное на JavaScript: https://github.com/Fanzholl/SalaryCalculation
Также приглашаю вас ознакомиться с моим визуализированным резюме, где можно найти больше информации о моих проектах: https://github.com/Fanzholl/resume