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