Про GitHub обычно спорят две удобные сказки. «Никто не открывает». «Сделайте красивый сайт — он продаст сам». На практике рекрутер на первом касании чаще смотрит файл и стек. Если вы уже в коротком списке, ссылку открывает инженер: не на сорок минут ревью, а на минуту «этот человек доводит работу и может объяснить, что сделал».
Портфолио аналитика — другой жанр: вопрос, данные, вывод, не галерея дашбордов. Это портфолио аналитика. Здесь — разработка: какие 2–4 репозитория имеют смысл, чем README сильнее анимации на главной, и почему каталог «всё, что трогал» работает против вас. Каркас файла: как составить резюме. Junior без стажа: резюме без коммерческого опыта.
Коротко:
- 2–4 проекта, которые готовы обсуждать вслух. Не двадцать брошенных учебников.
- У каждого: задача, ваш вклад, как запустить или где демо, одно решение, которое можете защитить.
- Pinned на профиле = то, что в отклике. Битая ссылка хуже пустого поля.
- Сайт-витрина без рабочего кода не заменяет репозиторий. Репозиторий без README не заменяет сайт.
- Портфолио редко спасает слабый файл. Оно различает похожие резюме. Сначала резюме, потом витрина.
Чем портфолио не «бренд на GitHub»
Слово одно, ритуалы разные. Frontend часто ждут живое демо. Backend — сервис, схему, тесты, как поднять локально. Mobile — сборку и магазин или TestFlight, не только скрин. Data — соседний гайд. Не копируйте чужой «must-have portfolio 2026»: смотрите десять слотов вашей роли в каталоге.
Портфолио редко вытаскивает кандидата с кашей в шапке. Оно помогает, когда опыта мало, нет бренда в трудовой, переход стека, или команда маленькая и хочет увидеть самостоятельность. Middle с закрытым контуром может показать обезличенный кусок и всё равно выиграть минуту доверия. Не вместо коммерческих пуль: как описывать достижения. Сначала файл одной роли, потом витрина, не наоборот и не в ту же ночь, что редизайн сайта.
Не тащите в статью живой топ «лучшие GitHub-темы года». Темы протухают. Сигнал нет. Тёмная тема профиля не заменяет README и не скрывает пустые репозитории с названием final-project.
Что открывают за минуту
Почти никто не устраивает археологию профиля на старте. За минуту хотят ответ:
- Что это за проект — одним абзацем, не поэзией.
- Какую задачу закрывает. Если «для портфолио» — так и есть, и это слабее, чем задача из жизни.
- Что сделали вы, если репозиторий учебный или командный.
- Можно ли запустить, кликнуть демо, увидеть API без получаса страданий.
- Есть ли следы дисциплины: структура, тесты хоть на критичный путь, внятные коммиты, не «final-final-2».
Если на эти вопросы нельзя ответить с README, инженер закрывает вкладку. Это не злоба. Это очередь из двадцати ссылок.
Backend: след решения, не витрина
Красивая обложка не нужна. Нужны границы сервиса, как устроены данные, что будет, если повторить запрос, как гонять тесты. Один скучный сервис с авторизацией, очередью и README «как поднять docker compose» сильнее пяти CRUD из курса, где в корне лежит `.env` с чужим ключом.
Не кладите секреты. Не кладите дамп прод-базы «для реалистичности». Не обещайте в README микросервисы, которых в коде три скрипта. На техэкране это всплывёт: карта воронки, код вслух — live coding.
Архитектурная простыня в wiki без кода — шум. Одна схема и одно узкое место, которое можете обсудить, — сигнал. Design как этап: system design. Не рисуйте Kafka в учебном TODO.
README, который можно прочитать стоя
Нормальный README отвечает по порядку, без манифеста «clean architecture»:
- Что это и для кого. Одно-два предложения.
- Какую задачу закрывает. Не «практиковал React».
- Что сделали вы, если это не соло с нуля.
- Как запустить: команды, какие переменные нужны без секретов, что считать успехом («открылся список заказов»).
- Одно решение, которое готовы защищать: почему эта структура данных, почему без очереди, где сознательно упростили.
- Как проверить: тест, curl, клик по демо. Не «должно работать».
Английский README полезен на международный отклик, русский — на локальный. Два языка вперемешку в одном абзаце — шум. Файл резюме на языке вакансии: международное CV. Не пишите роман: если README длиннее экрана, вынесите детали ниже, верх оставьте для минуты инженера.
Скрин «зелёный график коммитов» не заменяет этот текст. График красится ботами и заливкой. Смотрят pinned и разговор, не клеточки.
Frontend: демо не равняется вкусу
Живая ссылка важнее анимации на главной. Сломанный деплой и «смотрите скрин» читаются как не довели. Доступность, пустые состояния, ошибка сети — это и есть работа, не градиент. Если весь сайт — обёртка над чужим шаблоном без вашего решения, инженер это видит быстрее, чем вы думаете.
Не делайте портфолио-сайт единственным проектом, если слот — продукт, не лендинги. Один рабочий кусок интерфейса с состоянием и тестами полезнее «креативного агентства на Next». Слоты: вакансии, фронт отдельно смотрите в выдаче, не в меме «всем нужен Three.js».
Мобильная вёрстка и тёмная тема не спасают, если форма отправки молча ничего не делает. Перед тем как звать рекрутера на сайт, пройдите сами путь пользователя до ошибки и до пустого списка. Это дешевле, чем объяснять на созвоне «там в консоли видно».
Что почти не работает
- Клоны туториалов без вашего ограничения и без README «чем это не копия урока».
- Профиль с сотней репозиториев и нулём pinned.
- Коммиты раз в полгода «update» по 400 файлов.
- Сайт на конструкторе без кода, который можно обсудить.
- Метрики «звёзды» как доказательство скилла. Звёзды покупаются шумом.
- NDA-проект, о котором нельзя сказать ничего, кроме названия банка. Назовите контур и свою зону без секретов или не ссылайтесь.
Учебный проект допустим, если вы честно пишете «учебный» и показываете, что изменили: тесты, деплой, ограничение, баг, который поймали. Иначе это чужая домашка. Junior-логика в файле: снова резюме без опыта.
Монорепозиторий «вся жизнь» с папками diploma, course1, course2 без pinned — тот же шум. Вынесите два рабочих куска отдельно или хотя бы укажите в профиле, какую папку открывать. Инженер не будет бродить.