Обо мне
Кто делает сайты и как
Я веб-разработчик: делаю лендинги, сайты, веб-приложения и бэкенды, чаще всего на Go, а также на Rust, Python и TypeScript. В каталоге 50 проектов: 6 лендингов, 8 многостраничных сайтов, 6 веб-приложений, 24 бэкендов и 6 CLI-утилит; 43 из них работают вживую: 19 на Cloudflare и 24 серверных проекта на собственном VPS (ewsir.space). Почти все проекты учебно-демонстрационные: бренды вымышленные, данные демо, код приватный и открывается по запросу. Исключение — один реализованный клиентский сайт (клиента не называю).
Здесь нет отзывов и цифр о заказах: показываю только то, что можно проверить, то есть работающий код, тесты и README с ограничениями. Безопасность проверяю отдельно: подход и таблица закрытых классов уязвимостей на странице «Инженерия».
Принципы
- 01
Просто и проверяемо
Стандартная библиотека Go, понятная структура пакетов, тесты на то, что действительно важно: конкурентный захват задач, двойная бронь, протокол WebSocket.
- 02
Честные ограничения
В каждом README есть раздел «Ограничения»: один токен вместо ролей, один процесс, at-least-once вместо exactly-once. Лучше сказать заранее, чем объяснять потом.
- 03
Доступность по умолчанию
Контраст по WCAG AA, видимый фокус, работа с клавиатуры, уважение к prefers-reduced-motion, mobile-first вёрстка.
- 04
Без секретов в коде
Настройки идут через переменные окружения, токены генерируются при старте, если не заданы.
- 05
Один бинарник
Фронтенд встроен в Go-сервис через embed, запуск не требует установки зависимостей; для SQLite используется драйвер без CGO.
Как мы будем работать
- 01
Разговор
Выясняем задачу, аудиторию и ограничения. Если сайт не нужен, скажу об этом сразу.
- 02
Договорённости
Состав работ, сроки и что считается готовым. Письменно, без сюрпризов.
- 03
Сборка
Короткие итерации: промежуточный результат можно открыть и потрогать.
- 04
Проверка
Тесты, мобильные экраны, доступность, нагрузка на форму и API.
- 05
Запуск
Docker-образ или статика, инструкция по запуску, передача кода.
Честно о границах
- Почти все проекты учебно-демонстрационные; один сайт — реализованный клиентский, имя клиента не называется. Отзывы и цифры по заказам здесь не заявляются.
- Десять новых бэкендов (Rust, Python, TypeScript) развёрнуты на сервере и работают вживую; до выкатки проверены локально и в Docker. Rust-проект flag-store собирался и тестировался в контейнере, на моём ПК cargo не ставился.
- Сайты bike-workshop-react, landscape-bureau-nuxt, letterpress-ts, ceramics-vue и приложения habit-tracker, flashcards-sm2, scratch-notes это концепты и демо с вымышленными данными; dupfind на Windows вручную не запускался.
- Race-детектор (go test -race) на моей рабочей машине не запускается из-за отсутствия C-компилятора; он выполняется в CI.
- Свой слой WebSocket не проходил Autobahn Test Suite: корректность проверена собственными тестами. В продакшене разумнее брать проверенную библиотеку.
- Демо-данные в проектах (история мониторинга, ссылки, задачи) сгенерированы и помечены в интерфейсах как демо.
- Контакты: Telegram, ссылка на GitHub и почта djrciv@gmail.com.