Form cover
Page 1 of 1

Приходите работать в команду BlancVPN

Как сделать легаси‑модуль безопасным для правок

Вам достался файл analytics.py на 1800 строк с глобальным состоянием, побочными эффектами при импорте и без тестов. За 2 дня нужно добавить фичу за флагом, не ломая прод. Опишите шаги в правильном порядке, как сделать изменения безопасными: как создадите “страховку”, изолируете побочные эффекты и докажете эквивалентность поведения

Выбор модели конкурентности для пайплайна I/O+CPU

Нужно скачать 10 000 мелких HTTP‑файлов и затем CPU‑сжать каждый на одной VM (8 ядер). Опишите конвейер: чем разделите сетевую и CPU‑части, какую модель конкурентности выберете (потоки/процессы/async), как ограничите фан‑аут, сделаете ретраи/бекофф и сохраните прогресс для возобновления

По‑настоящему атомарная запись конфигурации

Сервис иногда читает частично записанный config.json во время деплоя. Нужны атомарные, crash‑safe обновления на Linux и Windows. Опишите подход к атомарной записи (где размещать временный файл, os.replace, flush/fsync, права/таймстемпы), оговорите подводные камни (тот же каталог/том, реакция вотчеров) и как вы это протестируете

Корректное расписание при переходах DST

Джоб планируется на 02:15 локального времени в America/New_York и запускается дважды при осеннем переводе часов.
Опишите, как сделать расписание корректным, используя стандартную библиотеку Python (например, zoneinfo, datetime): что хранить и во что конвертировать, как обнаруживать неоднозначные/несуществующие времена и какие тесты/мониторинг добавить

Выкатка ломающего изменения в общей библиотеке

Вы поддерживаете внутреннюю Python‑библиотеку, которую используют 10 сервисов. Нужно изменить сигнатуру функции.
Дайте конкретный план депрекейта и выката: стратегия версионирования, шимы/фича‑флаги, DeprecationWarning, коммуникация и таймлайн, проверки в CI и как обеспечить быстрый откат