☑️ Как заставить камеру на Android делать четкие фото для биометрии
Представьте: клиент хочет перевести крупную сумму и мобильный банк запрашивает подтверждение по селфи. Человек наводит камеру, делает фото, а на бэкенд уходит размытый кадр потолка с кусочком лица. Клиент получает отказ, звонит в поддержку, злится и теряет доверие к банку.
Чтобы не допускать таких случаев, мы сделали Face-Shot — библиотеку для Android, которая анализирует 30 кадров в секунду, ищет лицо, смотрящее в камеру, и передает лучший кадр на бэкенд.
🙂 В карточках наш ведущий инженер-программист Евгений Шувагин поделился, как команда работала с CameraX, настраивала фокус на лицо, боролась с шумоподавлением, ускоряла инициализацию и делала превью мгновенным. А больше подробностей и примеры кода ищите на Хабре.
*️⃣ Монолит → экосистема с 90 тысячами встреч в день
До таких масштабов выросла наша Платформа доставок, которая ежедневно распределяет около 90 тысяч встреч, учитывает более 20 параметров и работает 24/7 без права на сбой.
Когда команда выросла с 20 до 100 инженеров, а количество сервисов перевалило за десятки, старые подходы перестали работать. Мы перешли от монолита к микросервисам, от ручного планирования к алгоритмической платформе, от разрозненных мобильных приложений к единому супераппу. И заодно перевезли 3 ТБ данных с Oracle на PostgreSQL, сократив их до 350 ГБ.
🙂 В карточках руководитель управления операционных платформ Светлана Чернышова рассказала про уроки масштабирования, которые мы вынесли. А больше про архитектуру, команды и технологии читайте на Хабре.
Казалось бы, конфигурация — это просто .env и settings.py. Но стоит приложению вырасти — и начинается: секреты утекают в логи, port внезапно приходит строкой abc, настройки дублируются между окружениями.
🙂 Наш тимлид команды чат-ботов Николай Видов прошел путь от хардкода до типизированных схем и понял: конфигурация — это не мусорный код на скорую руку, а часть инфраструктуры, которую нужно проектировать так же тщательно, как бизнес-логику.
В карточках — эволюция подходов к конфигурации в Python: откуда мы пришли, куда идем и какие грабли встречаем на пути. А больше подробностей читайте на Хабре.
🔍 Дашборд, чтобы отслеживать техдолг в 12 тысячах репозиториев
Иногда бывает трудно понять, кто и какие библиотеки использует. Одна команда сидит на устаревшей версии, другая тащит зависимости с известными CVE, третья не знает, что есть альтернатива получше.
За контроль техдолга и состояний зависимостей у нас отвечает Tech Radar. Он собирает данные с 12 тысяч репозиториев, обрабатывает 172 правила от лидеров профессий и формирует дашборды.
✨ В карточках — как устроен сбор, как применяются правила и как выглядит отчетность.
🔍 Как переход от NSwag к OpenAPI сократил генерацию клиента с 15 минут до нескольких секунд
В каждой команде есть момент, когда фронт и бэк перестают понимать друг друга. Бэкендер переименовал поле, изменил URL или добавил новый enum, а фронт узнает об этом только в QA. А если повезет, то в несвязанной задаче за день до релиза.
Мы попытались это починить: не просто заменить NSwag на ng-openapi-gen, а выстроить процесс, где контракт становится отдельным артефактом, а не побочным продуктом сборки.
🙂 В карточках старший разработчик платформы для разметки данных AI-Центра Т-Банка Дмитрий Чепайкин рассказал, какие проблемы пытались решить, что пробовали на стороне ASP.NET Core, почему отказались от build-time-генерации и как в итоге выстроили workflow с контрактами. А подробнее читайте на Хабре.