Middle-Frontend/Fullstack-разработчик
Москва, РоссияМиддл • Сеньор
Удаленная работа
Опыт работы какой-то естьот 80 000 ₽
Опыт работы какой-то естьот 80 000 ₽
Есть файл резюме (защищен)
Короткая ссылка: gkjb.ru/g1BTY
О себе
На данный момент Fullstack-разработчик.
Мои компетенции и опыт
Fullstack-разработчик на TypeScript. Два года коммерческой разработки на React в продуктовой команде, плюс собственные проекты, которые довожу до работы на сервере: от схемы PostgreSQL и HTTP API до интерфейса, Docker-образа, CI/CD и резервных копий. Мне интересно понимать приложение целиком и разбирать, почему что-то упало, а не только писать свой слой.
Проекты
Service Desk — портал заявок с выкаткой на VPS fullstack + DevOps
нужен доступ к резюме
TypeScript · Fastify · PostgreSQL · Kysely · OpenAPI · React · TanStack Query · Vitest · Playwright · Docker Compose · GitHub Actions · Ansible · SOPS · Caddy
Личный кабинет заявок с ролями «клиент / исполнитель / администратор»: статусы, комментарии, журнал изменений. Сессии в httpOnly cookie, проверка прав на каждом маршруте, ошибки в едином формате (problem+json, 400/401/403/404/409).
PostgreSQL: связи и индексы, миграции на Kysely. OpenAPI-спека генерируется из схем Fastify, типизированный клиент для фронтенда генерируется из неё же; CI падает, если клиент отстал от API.
Тесты: Vitest на бизнес-логику и интеграционные тесты API на настоящей БД, сквозной сценарий на Playwright от логина до смены статуса.
Инфраструктура: Docker Compose (Caddy, API, миграции, Postgres, бэкапы), Ansible-плейбук готовит VPS с нуля (пользователь, SSH по ключам, ufw, Docker), секреты зашифрованы SOPS. GitHub Actions: проверки на PR, сборка образов в GHCR, выкатка, smoke-тест и откат на прошлый тег.
Ежедневный pg_dump с ротацией и скрипт, который поднимает дамп во временной БД и проверяет восстановление. Runbook и разборы сбоев в docs/.
Сделан с Claude Code: задачи агенту в docs/agent-tasks (цель / границы / готовность), ревью PR — Claude и я.
English Words — тренажёр лексики по уровням CEFR
нужен доступ к резюме
React · TypeScript · TanStack Query · нужен доступ к резюме · Express · Prisma · PostgreSQL · JWT + Google OAuth · Docker Compose · pnpm workspaces
Полный цикл в одиночку: схема БД и миграции на Prisma, REST API на Express, сидирование словаря ~2700 слов, собранного скриптом из открытых источников.
Авторизация: access-токен в памяти, refresh в httpOnly cookie с ротацией и хранением хэша в БД; на клиенте параллельные 401 ждут один общий refresh. Вход через Google с проверкой id-токена на сервере.
Централизованный обработчик ошибок: ошибки валидации → 400 по полям, гонка на unique-индексе → 409 вместо 500. PostgreSQL в Docker Compose с volume и healthcheck.
Green Chat — веб-клиент MAX / Telegram / WhatsApp через GREEN-API
нужен доступ к резюме · демо: нужен доступ к резюме
React 19 · TypeScript · Vite · Vitest · GitHub Actions
Работа со сторонним HTTP API: проверка авторизации инстанса, long-polling входящих уведомлений с подтверждением обработки, статусы доставки и повторная отправка при ошибке.
Тесты на Vitest (редьюсер, разбор уведомлений, нормализация телефонов). GitHub
Actions: npm ci → тесты → сборка → деплой на GitHub Pages.
SAM-Vision — автоматическая разметка изображений нейросетями
нужен доступ к резюме
Python · PyTorch · YOLOv8 · Segment Anything 2.1 · OpenCV
Сравнил три подхода и собрал автоматический пайплайн YOLOv8 → SAM 2.1: Dice нужен доступ к резюме против нужен доступ к резюме у исходной модели, около 2 секунд на фото на CPU. Исследование вёл вместе с Claude Code, гипотезы проверял на отложенной выборке.
Mini Task Manager — Kanban и виртуализированная таблица
нужен доступ к резюме
React 19 · TypeScript · Zustand · React Hook Form + Zod · TanStack Table / Virtual · dnd-kit · MSW · Vitest + Testing Library · Feature-Sliced Design
~800 задач в двух представлениях с общими фильтрами, оптимистичное перемещение карточек с откатом при ошибке API, Zod-схема как единый источник типов и валидации.
Как работаю с ИИ
Claude Code — ежедневный инструмент. Задачу агенту ставлю как мини-ТЗ: цель, границы (какие файлы можно трогать, что запрещено), признак готовности (какие тесты и проверки должны пройти). Конвенции проекта держу в нужен доступ к резюме , чтобы агент не изобретал их заново.
Читаю каждый дифф агента и отвечаю за него как за свой код. Типичные находки: лишние абстракции, «зелёные» тесты, которые ничего не проверяют, тихо проглоченные ошибки.
Инфраструктура
Linux в консоли: файлы и права, процессы, systemd и journalctl, переменные окружения, SSH по ключам, ufw. Docker и Docker Compose: multi-stage сборка, порты, тома, healthcheck, разбор незапускающегося контейнера по логам. CI/CD на GitHub Actions и GitLab CI, Ansible, HTTPS через Caddy (Let's Encrypt), секреты в SOPS + age, pg_dump-бэкапы с проверкой восстановления.
Есть файл резюме (защищен)
Интересные кандидаты
Мы используем куки, потому что без кук наш сайт не работал бы, другие сайты не работали бы, да и вообще весь
интернет не работал бы
