~ whoami

Евгений Гудошников

Фронтенд веб-приложений — SaaS, встраиваемые виджеты, внутренние системы, AI-чаты

Веду фронтенд B2B-продукта от архитектуры до релиза, включая продукты, которые работают внутри чужого сайта.

  • в продена сайтах брендов BMW Saudi Arabia и MINI KSA
  • единственный архитектормультитенантного виджета, работал напрямую с C-level инженерами
  • написал в одиночкуаналитическую платформу, которая дошла до прода и жила там

$ ls -la projects/ --sort=impact

Три продукта, которые показывают, за что меня берут: виджет, уезжающий в кодовые базы, которых я не контролирую; SPA, написанный в одиночку до прода; и внутренний инструмент, где работы было больше в логике, чем в интерфейсе.

~/work/salesteq.tsxв проде

SalesTeq AI Chat Widget

Встраиваемый ассистент для корпоративных сайтов — поставляется npm-пакетом и должен работать на стеках, которые я не контролирую.

период
Nov 2024 — Nov 2025
контекст
SalesTeq продаёт AI-ассистента, которого компании ставят на свои сайты. Фронтенд поставляется npm-пакетом, то есть работает внутри сайтов, собранных другими командами.
моя роль
Фронтенд-архитектор — единственный, кто его писал. Работал напрямую с C-level инженерами на стороне заказчика.
в чём сложность
Мультитенантная конфигурация и темизация, чат, совмещающий текстовый и голосовой ввод, и ответы языковой модели в виде markdown, которые нужно было отрисовать настоящими компонентами продукта, а не простынёй текста.

что сделал

  • Разделил продукт на core- и UI-пакеты, публикуемые в npm отдельно.
  • Задокументировал оба пакета в Storybook как контракт, под который строятся другие команды.
  • Сделал слой чата для текстового и голосового ввода.
  • Сделал рендерер, превращающий markdown от модели в компоненты интерфейса на лету.
  • Держал темизацию и настройки арендаторов изолированными от принимающей страницы.
ReactNext.jsTypeScriptnpm packagesStorybookLLM streaming

Провёл его от демо для инвесторов до первой публикации в прод. Ушёл в ноябре 2025, проработав год, — дальше им занимаются другие. Работает на сайтах брендов BMW Saudi Arabia и MINI KSA.

виджет работает на bmw-saudiarabia.com · mini-ksa.com

~/work/degenmasters.tsxвышел, затем закрыт

DegenMasters

Аналитическая платформа для web3-продукта — дашборды, представления данных и обмен токенов.

период
Sep 2023 — Jun 2024
контекст
Аналитическое dApp: дашборды, представления данных и сценарии обмена. Я был единственным фронтенд-разработчиком на нём.
моя роль
Единственный фронтенд-инженер. Собрал всё SPA по макетам, десктоп и мобильные, без перепинок и передачи задач.
в чём сложность
Продукт с тяжёлыми данными и строгим визуальным языком на всех разрешениях, плюс сценарии обмена, подключённые к контрактам другого разработчика.

что сделал

  • Архитектура SPA на React, TypeScript и Redux.
  • Полная реализация десктопа и мобильных по Figma.
  • Интеграция с существующими контрактами через ethers — разработка контрактов была не на мне.
ReactTypeScriptReduxethers.js

Запустился через три месяца после моего старта и прожил в проде до закрытия продукта по бизнес-решению.

~/work/geoma.tsxвнутренний инструмент

Geoma

Превращает данные анализа почвы в готовые к печати PDF-отчёты.

контекст
Внутренний инструмент для компании по анализу почвы на Мальорке. Их инженеры вводят результаты тестов, а система формирует отчёт для строительных или горнодобывающих задач.
моя роль
Фронтенд-разработчик — закрывал и интеграцию с бэкендом, где это требовалось.
в чём сложность
Не интерфейс, а данные. Структурированные результаты анализов должны были ложиться на шаблоны документов с таблицами, графиками и разбивкой страниц и оставаться верными в сотнях комбинаций.

что сделал

  • Собрал конвейер «данные → документ» на библиотеках генерации PDF.
  • Типизировал слой маппинга между данными анализа и структурой отчёта.
  • Оставил интерфейс утилитарным — это внутренний инструмент, а не витрина.
ReactMaterial UIReduxPDF generationNode.js

Используется внутри компании. Интерфейс намеренно простой, вся суть в логике.

# под NDA — ход генерации и отчёты содержат данные клиентов

$ ls projects/ --brief

Меньше объёма, тот же стандарт. Перечислены все, включая проект, который так и не вышел.

AsiaTour KG

в проде

Платформа туроператора по Центральной Азии: публичный сайт, контент туров, бронирование и админка.

  • Админка для контента туров и цен.
  • Поток бронирования и интеграции с внешними сервисами.
  • Автоматический сбор цен по партнёрским отелям через Playwright.
Next.jsPayload CMSPostgreSQLPlaywrightDocker

Используется.

MPInside / Bloggerscan

не вышел

Платформа для поиска блогеров и продажи им рекламных размещений.

  • Каталог, фильтрация и карточки авторов, собранные по макетам.
Next.jsTypeScriptMaterial UI

Фронтенд был закончен; продукт не вышел.

Telegram mini apps

в проде

Фронтенд четырёх web3 мини-приложений, подключённых к существующему бэкенду.

  • Загрузка аудио и видео.
  • Вертикальная лента в стиле TikTok для просмотра видео-NFT.
Next.jsTypeScriptTelegram WebApp

Выпущено внутри Telegram.

$ grep -r "also shipped" ./

  • Barter marketplaceМиграция блокчейн-слоя на актуальные версии ethers в работающем маркетплейсе. Объём небольшой, риск высокий: платёжные и обменные сценарии не должны были сломаться.
  • Lead scraperАвтоматический сбор B2B-лидов для туристической отрасли. Playwright с ротацией прокси и парсингом контактов по туроператорам Евразии.

$ cat working-agreement.md

working-agreement.md
  1. 01Беру фронтенд целиком: архитектура, дизайн-система и сам релиз.
  2. 02Выпускаю то, что написал, сам, а не передаю готовый код кому-то на выкат.
  3. 03Выпускал виджет, которому полагалось работать на сайтах, мне не подконтрольных, так что встраиваемые продукты для меня обычная работа.
  4. 04Когда проекту нужен один человек вместо двух, закрываю и бэкенд.
  5. 05Работаю асинхронно, отвечаю в течение дня.

$ cat ./toolkit --grouped

Сгруппировано по слоям, а не вывалено облаком слов. Пояснения важнее списков.

~/toolkit
$ ls core/TypeScriptReactNext.jsApp RouterReduxZod
$ ls ui/Material UITailwind CSSshadcn/uiDesign systemsResponsive layoutFigma handoff
$ ls packaging/npm publishingCore + UI package splitStorybookComponent API design

# Продукт внутри чужой кодовой базы живёт по другим правилам, чем приложение, которое выпускаешь сам.

$ ls backend/Node.jsNestJSPostgreSQLPrismaRedisRabbitMQRESTWebSocket

# Берусь за это, когда проекту нужен один человек вместо двух.

$ ls delivery/DockerGitHub ActionsCI/CDNginxLinuxPlaywright
$ ls ai/LLM API integrationStreaming responsesMarkdown to componentsVoice inputMCP
$ ls chain/ethers.jsWallet connectionContract integration

# Продукты для fintech и web3-заказчиков. Контракты писали другие команды.


$ ssh eugenegudoshnikov@gmail.com

Если делаешь B2B-продукт и нужен человек, который возьмёт фронтенд от архитектуры до релиза, — присылай задачу. Отвечаю в течение дня.

contact — ready
имя
Евгений Гудошников
нахожусь
Кыргызстан

$