Загрузил Жожик Жостаров

Первичный скрининг python developer v7 20231101 092844

реклама
Первичный скрининг python developer
Содержание раздела
Содержание раздела
Основная информация
История изменений документа
Ключевые критерии отбора
Хард скилы
Софт скилы
Идеальный кандидат
Вопросы для скрининга
Основная информация
Сергей Иванов
Автор
Связанные документы
Статус
В РАБОТЕ
История изменений документа
Версия Дата
1.0
Автор
25.09.2023 Сергей
Иванов
Описание
изменений
Первый заход на
скрининг
Ключевые критерии отбора
Хард скилы
Python, Asyncio (асинхронное программирование). Опыт 2-3 года и более
FastApi, Pydantic (2 версии будет плюсом)
Postgresql, sqlalchemy, alembic
Опциональные, будут плюсом:
Manticoresearch (Поисковой движок)
Grafana, Loki, prometheus (Метрики и логи)
k8s
Брокеры очередей (Кафка, rabbitmq)
redis
Софт скилы
Не токсичный, Резюме формата "Меньше N идите лесом" - сразу нет
Общительный, умеет работать с людьми
Не меняет работу каждые 6 месяцев. Идеально - 2-4 года на предыдущих местах. Либо адекватная причина ухода из
кампании
Хорошо оформленное резюме, с областью ответственности, технологиями. То, что он принес команде и кампании (в
целом понимание бизнес требований кампании)
Видно, куда человек двигается, что его интересует, что хочет от работы (Будет плюсом)
Публичный человек? Участвовал ли в опен сорсе? (Будет плюсом)
Интересуется технологиями, хочет развиваться и учиться новому.
Идеальный кандидат
Адекватный, общительный, ответственный разработчик, работающий в кампаниях не менее года, с нужным нам стеком.
Для него кодинг это не просто работа за деньги, и часть жизни, которая ему нравится.
Идеальный бекграуд это работа с парсингом данных, написание микросервисов на fastapi + sqlalchemy, умение в анализ
запросов к БД, их оптимизацию.
Сложные проекты, которыми кандидат может гордиться.
Медийность и участие в open source будет плюсом
Вопросы для скрининга
Вопрос
Ответ
Примерное
время на
ответ
Количество
балов
Работал ли с микросервисной архитектурой? Какие
преимущества и недостатки она имеет перед
монолитом? Встречался ли с микросервисным
монолитом?
Если работал, то хорошо.
2-3 минуты
2
Преимущества:
Каждый сервис обособленный, если упал один,
работают остальные. Лучшая изоляция ошибок
Легко разрабатывать. Все сервисы небольшие
и легки в обслуживании.
Ускоряет разработку и доставку кода
Микросервис может быть написан на любом ЯП
Легко масштабировать
Слабая связанность между сервисами
Недостатки
Нет хорошо описанного алгоритма разбиения
продукта на микросервисы, это как искусство
(=
Сложность с межсервисным взаимодействием,
особенно если нужны транзакции
Нужна хорошая и подготовленная
инфрастуктура, которую сложнее
спроектировать
Более высокий порог входа
Микросервисный монолит, это когда у вас вроде
как микросервисы, но они настолько сильно
связаны друг с другом, что могут упасть каскадом.
Так же если при изменении одного сервиса,
требуется поменять еще несколько. Нужно любым
путем его избегать
Какие индексы в Postgresql знаешь?
B-дерево (b-tree), хеш, GiST, SP-GiST, GIN и BRIN
1 минута
2
В каких случаях лучше использовать b-tree индекс
Сортируемые поля, Число (int), дата (timestamp),
число с плавающей точкой (float)
30 секунд
2
Какой индекс хорош для полнотекстового поиска?
GiST и GIN
30 секунд
2
2 минуты
по 2 бала на
каждый ответ
в сумме 6
Постраничная пагинация это выборка с limit +
offset. Проблема в возрастающей сложности при
каждой следующей странице
1 минута
2
Если у нас есть таблица с 2мя индексами по полям
post_id и source_id, при фильтрации используются
оба, например where post_id > 123 and source_id = 35.
Будет ли оптимизатор PG использовать оба индекса,
если по source_id = 35 вернулось 5% от суммарной
выборки таблицы?
Нет, оптимизатор посчитает, что seq scan
(последовательное сравнение) будет быстрее, чем
использование большого индекса
1 минута
3
Знаешь что такое PEP8? Как PEP8 рекомендует
называть классы, исключения и переменные ?
PEP8 - соглашение по написанию кода в питон.
Классы именуются с большой буквы, исключения
как и классы но должны включать в себя Error,
переменные - snake_case в зависимости от области
видимости могут включать нижние подчеркивания
2 минуты
2
Работал ли с брокерами сообщений и с кафкой в
частности? Чем принципиально выделяется кафка из
остальных брокеров ?
Если работал, уже хорошо. Кафка позволяет
переобходить топик другим консюмером. Так же
для каждой группы консюмера отдельный оффсет.
В чем отличие GiST от GIN индекса в рамках
полнотекстового поиска
Знаешь ли что такое page base pagination?
(постраничная пагинация)
В чем ее проблемы на больших данных?
GIN в 3 раза быстрее GIST
GIN в 3 раза медленнее строится, чем GIST
GIST индекс является индексом с потерями, т.
е. postgresql автоматически проверяет строку
в таблице. Поэтому данный индекс дольше
отрабатывает
Работал ли со стеком Grafana + prometeus + loki ?
Писал ли собственные метрики для прометеуса?
Если работал то уже хорошо
1 минута
1
Работал ли с сагами? Или с шаблоном "Порождение
событий"?
Просто узнать
1 минута
0
В проект нужно затянуть новую библиотеку,
решающую определенную задачу, как будешь
выбирать ?
В целом можно послушать рассуждения.
Правильный ход мыслей:
2 минуты
2
Посмотреть количество звезд на гихабе
Посмотреть количество ишью, оценить
забагованность
Посмотреть лицензию, можно ли изменять
библиотеку в коммерческих целях
Оценить качество документации
Сделать конкурентный вывод
Локально протестировать, ложится ли
библиотека в текущий проект
Примерный флоу скрининга
Представится
О UGCMS
О команде
Скачать