Перейти к содержимому
Alexander

Заметки и код пет-проекта: как научить Copilot отвечать про ваш опыт

Что писать в заметки, как загрузить код пет-проекта и подключить документацию, чтобы Copilot отвечал вашими историями, цифрами и решениями.

Заметки и код пет-проекта: как научить Copilot отвечать про ваш опыт

Вопросы про опыт задают на каждом собеседовании, и общими словами на них не ответить. В банке Sobes есть, например, «Получается ли самообучаться в домашних условиях? Есть ли пет-проекты?» и «Расскажи, что делаешь в свободное время? Какие у тебя есть пет-проекты?». За ними всегда идёт уточнение: почему выбрали такую базу, как устроена авторизация, что бы переделали.

Контекст Copilot знает вашу роль, стек и резюме, но резюме в нём короткое: текст длиннее 5000 символов обрезается. Подробности, которые отличают ваш ответ от ответа любого другого кандидата, лежат глубже: в историях по проектам, цифрах и причинах решений. Для них есть заметки, загрузка кода и готовая документация. Ассистент не выдумывает опыт, которого нет в ваших материалах, поэтому чем больше в них фактов, тем конкретнее ответы.

Как Copilot находит нужное

Когда интервьюер задаёт вопрос, Copilot ищет в ваших заметках фрагменты, похожие на этот вопрос, и добавляет их в подсказку. Несколько правил, которые стоит знать до того, как писать:

  • Поиск идёт и по смыслу, и по словам. Название заметки и заголовки разделов сильно влияют на то, найдётся ли фрагмент.
  • В ответ попадает не больше трёх фрагментов и не больше двух из одной заметки.
  • Запрос строится из текущего вопроса и пары реплик перед ним. Текст со скриншотов в поиск не попадает.
  • Ассистент использует заметку как вашу формулировку по теме, а не зачитывает её дословно.

Отсюда главный принцип: одна тема на заметку и понятные заголовки. Длинный файл «Всё про мой опыт» работает хуже, чем десять заметок с названиями вроде «Миграция на Kafka в платёжном сервисе».

Что писать в заметки

Три вида материала окупаются лучше всего.

Истории по проектам. Ситуация, задача, что сделали лично вы, результат. Это заготовки для вопросов о самой сложной задаче, конфликтах и ошибках. В библиотеке заметок есть шаблон для таких историй и отдельный шаблон «Пет-проект».

Цифры. Нагрузка, объём данных, время ответа до и после, размер команды, сроки. На собеседовании именно их труднее всего вспомнить, и именно их интервьюер запоминает.

Архитектурные решения. Что выбрали, какие были альтернативы и почему остановились на этом. Вопрос «а почему не X?» прилетает почти всегда.

Пример заметки, которая хорошо находится:

# Очередь задач в сервисе уведомлений: почему RabbitMQ, а не Kafka
 
## Контекст
Сервис рассылает пуши и письма, до 2 млн сообщений в сутки, пики после маркетинговых рассылок.
 
## Что выбрали и почему
RabbitMQ: нужны были приоритеты и отложенная доставка, а хранить историю событий не требовалось.
Kafka рассматривали, отказались: команда из трёх человек, поддерживать кластер некому.
 
## Результат
Задержка доставки в пике упала с 40 минут до 3. Потерь сообщений за год не было.
 
## Что сделал бы иначе
Сразу вынес бы повторные попытки в отдельную очередь.

Заголовки здесь повторяют слова, которыми интервьюер задаст вопрос. Цифры стоят в тексте, а не в голове.

Для типовых вопросов с готовым ответом удобен формат «Вопросы и ответы»: заметка состоит из карточек, карточка всегда передаётся целиком. Формат выбирается при создании заметки и потом не меняется. Чтобы карточку находили по-разному заданным вопросам, заполните «Другие формулировки».

Если проект под NDA, в заметки кладите уже обезличенную версию. Как её составить, описано в статье «Как рассказать о проекте под NDA».

Папки, флаг поиска и статус индексации

Copilot ищет по заметкам, у которых включено «Использовать в RAG». У новых заметок флаг включён. Выключайте его у всего, что не относится к текущему поиску работы: старые конспекты и чужие шпаргалки будут мешать вашим историям. Панель заметок в оверлее (Ctrl/Cmd + N) показывает и исключённые заметки, это ваша личная шпаргалка.

У заметок с включённым флагом виден статус индексации. Пока заметка не в индексе, по смыслу её не найти, только по словам.

Статус Что значит
В индексе Copilot Заметка находится по смыслу
В очереди на индексацию, Индексируется Подождите несколько секунд
Ждёт подписку Индексация продолжится, когда подписка станет активной
Не проиндексирована Текст не удалось обработать: сократите или разбейте заметку и нажмите «Переиндексировать»

Проверять результат нужно до встречи, а не на ней. Кнопка «Что найдёт Copilot» открывает поле, куда вы вводите вопрос так, как его задал бы интервьюер, например «расскажите про опыт с Kafka». В ответ вы видите фрагменты, которые попадут в подсказку. Если нужная заметка не нашлась, обычно помогает переименовать её или добавить заголовок с ключевыми словами вопроса.

Код пет-проекта

Через «Загрузить тестовый проект» в заметки загружается код, и Copilot отвечает на вопросы о нём: как устроен модуль, где проверяются права, почему выбрана такая структура.

  • Лимит: до 50 файлов и 400 КБ. Файлы .env, node_modules, сборки и .git пропускаются автоматически.
  • Если проект не помещается, приложение само отмечает главное: README и манифесты, точки входа и роуты. Тесты и сгенерированные файлы идут в конце списка. Отметки можно поправить вручную.
  • Файлы, в которых нашлось что-то похожее на ключи и пароли, при загрузке не отмечены. Если всё же загрузить такой файл, значения заменятся на [REDACTED] и не попадут ни в заметку, ни в ответы.
  • Проект хранится одной заметкой. Руками она не редактируется, обновляется кнопкой «Перезалить».

Из одной заметки в ответ попадает не больше двух фрагментов, поэтому о проекте спрашивайте конкретно: называйте модуль, файл или функцию. И добавьте рядом обычную заметку по шаблону «Пет-проект» с описанием архитектуры и решений. Код отвечает на вопрос «как сделано», заметка отвечает на вопрос «почему».

Загружайте только свой код. Рабочие репозитории, закрытый код и всё, что нельзя показывать третьим лицам, в заметки класть не нужно.

PDF и файлы

Кнопка загрузки файлов принимает .md, .mdx, .txt и .pdf, каждый файл становится отдельной заметкой. Скан без текстового слоя распознаётся нейросетью. Если в PDF часть страниц текстом, а часть сканами, сканированные страницы не распознаются, так что смешанные документы лучше разделить.

Конспект курса на сто страниц одной заметкой ищется плохо. Разбейте его по темам, прежде чем загружать.

Готовая документация

Теорию по технологиям не обязательно конспектировать самому. В заметках есть кнопка «Документация»: каталог готовой документации по PostgreSQL, Spring, React и другим технологиям. Нужную вы подключаете кнопкой «Установить», до 20 штук на аккаунт.

Документация работает как справочная добавка сверх ваших заметок: из неё в ответ попадает не больше двух кусков, и ответ её не ждёт, если поиск затянулся. Ваши истории остаются на первом месте.

Сужение поиска на конкретную встречу

При создании встречи кнопка «Заметки для Copilot» (значок папки) ограничивает поиск выбранными папками, позже это можно поменять на странице встречи. Там же выбирается, какая документация участвует в этой встрече. Без выбора поиск идёт по всем заметкам с включённым флагом.

Это полезно, когда материалы не должны смешиваться. Например, у вас две версии легенды под backend и под fullstack: разложите их по папкам и выберите для встречи одну.

Как это видно в ответе

Под ответом ассистента есть «Источники»: фрагменты заметок и документации, которые получила модель. Кусок документации помечен значком книги. Модель могла фрагментом и не воспользоваться, но по источникам видно, нашлось ли то, на что вы рассчитывали.

Если ассистенту нужно найти что-то конкретное, попросите прямо: «найди в заметках, какая была нагрузка на сервис уведомлений». Тогда он сделает отдельный поиск.

Что сделать сегодня

Полчаса на первый проход:

  1. Напишите три заметки по шаблону выше: два решения из последнего проекта и одна история про сложную задачу.
  2. Загрузите код пет-проекта и добавьте к нему заметку с архитектурой.
  3. Установите документацию по двум-трём технологиям из вакансии.
  4. Откройте «Что найдёт Copilot» и задайте пять вопросов, которые ждёте на собеседовании. Переименуйте то, что не нашлось.

Перед самой встречей останется выбрать папки и пройти чек-лист на десять минут до звонка. Роль, уровень и манера ответов настраиваются отдельно, в контексте.