Senior Python-собеседование: GIL, Kafka и ETL
Кандидат отвечает о Python internals, обработке больших файлов, Kafka, SQL-индексах, Kubernetes и отладке ETL.
Python Mentor
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 3,9 тыс.
- Лайки на YouTube: 100
Таймлайн
Коротко о видео
Техническое интервью начинается с Python internals: кандидат сравнивает __new__ и __init__, метаклассы, Singleton, итераторы, генераторы и корутины. Затем интервьюер уточняет GIL, free-threaded Python, потоки, multiprocessing и способы не загружать большой файл целиком, включая mmap. Во второй половине разговор переходит к Kafka, индексам SQL и масштабированию воркеров по размеру очереди. Обсуждаются KEDA, размещение pod через affinity и anti-affinity, LLM-провайдеры и vector DB. Финальный блок охватывает observability: CloudWatch, ELK, Prometheus, Fluent Bit и диагностику ETL-пайплайна.
Затронутые темы
Что взять на заметку
- __new__ создаёт экземпляр, а __init__ инициализирует уже созданный объект.
- Генератор сохраняет состояние между yield и помогает обрабатывать поток данных без полной загрузки в память.
- В обычной GIL-сборке CPython CPU-bound задачи распараллеливают процессами; для C-расширений и free-threaded сборки действуют другие компромиссы.
- Построчное чтение и mmap позволяют не создавать Python-копию всего большого файла одновременно; для точной дедупликации нужно учитывать память на состояние и риск коллизий хэшей.
- Автомасштабирование Kafka-воркеров по lag требует учитывать производительность одного pod, число partition и правила размещения.