Резюме

Ewsirdev

Веб-разработчик: сайты, лендинги и сервисы на Go

Сайт: ewsir.space

О себе

Я веб-разработчик: делаю лендинги, сайты, веб-приложения и бэкенды, чаще всего на Go. В каталоге 30 проектов: 6 лендингов, 4 многостраничных сайта, 3 веб-приложения, 14 бэкендов и 3 CLI-утилиты; 12 из них работают вживую на Cloudflare. Почти все проекты учебно-демонстрационные: бренды вымышленные, данные демо, код приватный и открывается по запросу. Исключение — один реализованный клиентский сайт (клиента не называю).

Здесь нет отзывов и цифр о заказах: показываю только то, что можно проверить, то есть работающий код, тесты и README с ограничениями. Безопасность проверяю отдельно: подход и таблица закрытых классов уязвимостей на странице «Инженерия».

Опыт: проекты

Работодателей и дат здесь нет. Опыт показан проектами: 30 в каталоге, 12 из них живые на Cloudflare. Шесть сильнейших:

  • Плот: KV на Raft
    Raft с нуля: выборы, репликация, WAL с CRC и HMAC между узлами, снапшоты, детерминированная симуляция сбоев. 2 646 строк Go, 27 тестов.
  • Ключница: сервис аутентификации
    Провайдер входа: JWT EdDSA и JWKS, TOTP, роли, секреты шифруются AES-256-GCM. 2 826 строк Go, 50 тестов, 35 маршрутов.
  • Пульс: монитор доступности
    SSRF-защита на реальном соединении против DNS rebinding. 1 445 строк Go, 18 тестов.
  • Шлюз: API-gateway
    Обратный прокси: лимиты, circuit breaker, защита от open proxy и request smuggling, fuzz нашёл и закрыл ошибки. 2 334 строки Go, 48 тестов.
  • Конверт: записки с шифрованием в браузере
    Одноразовые записки со сквозным шифрованием в браузере (AES-256-GCM, ключ только в #-фрагменте), Cloudflare Workers + D1, 52 проверки vitest. Живое демо.
  • ОКСО Т1: 3D-лендинг
    WebGL2 лендинг: raymarching по SDF, шейдеры GLSL ES 3.00, хореография по скроллу. Живое демо.

Навыки

Языки
Go, TypeScript, Python, JavaScript
Бэкенд
Go net/http, stdlib-first, WebSocket с нуля, Raft, JWT EdDSA, TOTP, RBAC, FastAPI, Node.js (Express, node:sqlite)
Фронтенд
Nuxt 4 / Vue 3, Vue 3 + Vite, Astro 7, Node.js SSG с нуля, HTML, CSS, vanilla JS
Графика и WebGL
WebGL2 / GLSL, Canvas 2D, SVG
Данные
SQLite (WAL), FTS5 / bm25, Cloudflare D1, IndexedDB
Инфраструктура
Cloudflare Pages, Cloudflare Workers + D1, Docker, GitHub Actions
Качество и безопасность
go test, go vet, gofmt, fuzzing, govulncheck, gitleaks, vitest, fast-check, pytest, hypothesis, bandit, pip-audit, axe-core, CDP, WebDriver BiDi (puppeteer-core)

Безопасность

  • Модель угроз в README каждого проекта: кто атакует и что хочет получить.
  • Аудит всех 13 Go-проектов и Bad Club; на каждую найденную проблему добавлен тест.
  • Fuzz-тесты по 20 с на цель; ошибки найдены и исправлены в api-gateway, notes-search и envguard.
  • SAST, зависимости и секреты в CI: govulncheck, gitleaks, bandit, pip-audit, npm audit.
  • Секреты только из окружения, репозитории приватные, CSP без unsafe-inline и HSTS во всех проектах.

Границы

  • Почти все проекты учебно-демонстрационные; один сайт — реализованный клиентский, имя клиента не называется. Отзывы и цифры по заказам здесь не заявляются.
  • Race-детектор (go test -race) на моей рабочей машине не запускается из-за отсутствия C-компилятора; он выполняется в CI.
  • Свой слой WebSocket не проходил Autobahn Test Suite: корректность проверена собственными тестами. В продакшене разумнее брать проверенную библиотеку.
  • Демо-данные в проектах (история мониторинга, ссылки, задачи) сгенерированы и помечены в интерфейсах как демо.
  • Контакты: Telegram, ссылка на GitHub и почта djrciv@gmail.com.

Почти все проекты учебно-демонстрационные, один сайт — реализованный клиентский. Места работы, имена клиентов, даты и места учёбы здесь намеренно не указаны; цифры взяты из замеров проектов.