Как мы пилили Академию Скаутов: Технологии, SMS, Календарь и трудоустройство в ОЗАТ
Салют, коллеги и будущие скауты! Знаете, иногда, чтобы найти крутых спецов, нужно не просто хантить их на рынке, а брать и выращивать самостоятельно, словно редкие сорта кофе. На современном перегретом рынке IT стандартные методы рекрутинга часто дают сбой: компании соревнуются бюджетами, а кандидаты устают от однотипных вакансий. Именно так у нас родилась идея создать проект Академия Скаутов ОЗАТ. Но мы же инженеры — мы не могли просто наклепать лендинг на коленке, используя готовый конструктор вроде Tilda или Webflow, и прикрутить к нему банальную Google Forms. Нет, мы решили захардкодить полноценную, масштабируемую и отказоустойчивую экосистему, которая выдержит любые нагрузки и обеспечит бесшовный пользовательский опыт. Сегодня я подробно расскажу, как мы собирали этот проект, чем нафаршировали его под капотом, какие архитектурные решения приняли и почему стать нашим скаутом — это ваш лучший pull request в карьере.
Что под капотом Академии? Глубокий технический дайв
Когда мы только проектировали портал для скаутов, перед нашей инженерной командой стояла жесткая задача: всё должно быть максимально секьюрно, масштабируемо, работать с минимальной задержкой (latency) и функционировать как швейцарские часы, развернутые в облачной инфраструктуре Google Cloud Platform (GCP). Мы хотели, чтобы студентам было комфортно учиться без лагов и перезагрузок страниц, а администраторам — прозрачно управлять всем процессом. Давайте разберем основные технологические блоки нашей платформы.
1. База данных и бэкенд на Firebase
Наша святая святых — это документоориентированная база данных Firestore, входящая в экосистему Firebase. Все профили скаутов, их прогресс по учебным модулям, скоринг за домашние задания и заявки хранятся именно там. Мы отказались от классических реляционных баз данных в пользу NoSQL структуры, чтобы обеспечить мгновенный отклик интерфейса за счет real-time слушателей.
Архитектура данных спроектирована таким образом, что каждый студент имеет свой изолированный документ в коллекции /users/{uid}, а его прогресс по конкретным урокам пишется в подколлекцию /users/{uid}/progress. Чтобы защитить конфиденциальные данные пользователей, мы настроили жесткие правила безопасности Firestore Security Rules. Вот пример того, как мы разграничили доступ на уровне декларативных правил в файле firestore.rules:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
match /users/{userId}/progress/{lessonId} {
allow read: if request.auth != null && request.auth.uid == userId;
allow write: if request.auth != null && request.auth.uid == userId && request.resource.data.completedAt != null;
}
}
}
Благодаря использованию встроенного Firebase SDK и метода onSnapshot(), все изменения синхронизируются на клиенте мгновенно. Когда скаут нажимает кнопку «Завершить урок», данные синкаются с облаком быстрее, чем вы успеете сказать «асинхронность». Никаких лишних перезагрузок страниц и бесконечных спиннеров.
2. Беспарольная SMS-аутентификация
Пароли — это прошлый век, источник постоянных уязвимостей и вечная боль службы поддержки («я забыл пароль», «ссылка для сброса не приходит на почту»). Мы решили полностью отказаться от паролей в пользу одноразовых кодов доступа (OTP — One-Time Password) через SMS. Пользователь просто вводит свой номер телефона, получает уникальный код, система валидирует его на бэкенде, генерирует безопасный JWT-токен, и — вуаля — пользователь уже в своем дашборде.
Под капотом этого процесса трудится проверенный сервис Firebase Auth. Чтобы предотвратить фрод, спам-атаки и защитить наши балансы от SMS-пиратства (когда боты массово запрашивают верификацию на платные номера), мы интегрировали систему защиты Firebase App Check совместно с reCAPTCHA Enterprise. На фронтенде для форматирования номеров и исключения ошибок ввода мы используем легковесную библиотеку IMask. Настроить ее интеграцию с реактивными формами было делом пары минут:
import IMask from 'imask';
const element = document.getElementById('phone-input');
const maskOptions = { mask: '+{7}(000)000-00-00' };
const mask = IMask(element, maskOptions);
Это полностью решило проблему кривых форматов данных, поступающих на бэкенд, и снизило количество ошибок при аутентификации практически до нуля.
Сравнение задержки (Latency) при синхронизации данных
Сравнение времени отклика (в мс) между традиционной реляционной БД через REST API и связкой Firestore SDK + Realtime Sync при различных нагрузках.
3. Оптимизированный интерактивный Календарь
Учеба учебой, а дедлайны по расписанию. Нам требовался удобный инструмент для отображения вебинаров, дедлайнов по сдаче практических работ и индивидуальных созвонов с менторами. Мы детально изучили готовые решения на рынке, включая тяжеловесные библиотеки и стандартные интеграции через iframe от Google Calendar, но все они не подходили по кастомизации, стилизации или производительности.
В итоге мы запилили собственный интерактивный календарь на React. Он напрямую подписывается на коллекцию событий в Firestore. Чтобы избежать просадки производительности (FPS) при рендере сетки дней на мобильных устройствах, мы применили мемоизацию с помощью хуков useMemo и useCallback, а также вынесли тяжелые вычисления дат в чистые функции. Код компонента календаря находится в файле /src/components/Calendar.jsx и рендерится без единого лага даже при обновлении сотен событий в реальном времени. Для управления глобальным состоянием календаря мы задействовали ультралегкий стейт-менеджер Zustand, что избавило нас от лишнего бойлерплейта, свойственного Redux Toolkit.
4. Высокопроизводительная платформа уроков
Весь обучающий контент отдается структурированно и динамически. Платформа поддерживает модульную систему: видеолекции, текстовые лонгриды, интерактивные тесты и практические задания. Видеофайлы мы храним в защищенных бакетах Google Cloud Storage и раздаем их через глобальную сеть доставки контента Cloud CDN, чтобы минимизировать буферизацию у пользователей из любой точки мира.
Виртуальная примерочная для Instagram-бутиков: Image-to-Image генерация на Imagen 3 / Vertex AI по фото клиента
Фронтенд на React мгновенно реагирует на действия студента. Прошел тест без ошибок? Стейт-машина переключает статус урока, анимация на базе Framer Motion плавно разблокирует следующий модуль, а в профиль летит красивая ачивка. Интерфейс разработан по методологии Mobile-First и сверстан с использованием утилитарного CSS-фреймворка Tailwind CSS. Мы добились идеальной чистоты кода и скорости отрисовки, от которой даже самый строгий сеньор-разработчик пустит скупую слезу восхищения.
Для кого создана Академия Скаутов?
Если говорить кратко: наша Академия создана для тех, кто хочет перестать быть просто пассивным потребителем технологий и готов начать зарабатывать реальные деньги в индустрии IT, предлагая бизнесу ценность, подкрепленную технологиями. Мы выделили три ключевые аудитории:
- Новички, мечтающие войти в IT безболезненно: Устали от бесконечных теоретических курсов в стиле «Стань QA-инженером или Python-разработчиком за 3 дня»? Мы не обещаем золотых гор без усилий. Мы учим прикладным, осязаемым вещам: как проводить технический аудит веб-приложений, находить критические уязвимости и узкие места в архитектуре систем потенциальных клиентов, и как предлагать им современные масштабируемые решения на базе Google Cloud.
- Опытные сейлз-менеджеры и аккаунты: Если вы умеете виртуозно общаться с людьми, но вам всегда не хватало по-настоящему сложного, маржинального и востребованного технологического продукта для продаж — добро пожаловать к нам. В Академии мы научим вас разбираться в тонкостях облачной инфраструктуры, понимать разницу между IaaS, PaaS и SaaS, проводить аудит затрат на облако и продавать сложные интеграции систем искусственного интеллекта.
- Технологические энтузиасты и гики: Те, кто хочет держать руку на пульсе современных трендов. Вы разберетесь, как работают современные веб-приложения под капотом, как оптимизировать скорость загрузки страниц (метрики Core Web Vitals) и как с помощью грамотного промпт-инжиниринга генерировать персонализированные предложения через наш внутренний инструмент AI Smart Bio.
В чем ваш профит? Разбираем экономику и трудоустройство
Давайте начистоту: зачем тратить свое личное время на обучение, если после получения красивого сертификата вам придется еще полгода рассылать резюме в пустоту и получать стандартные отказы от HR-менеджеров? Наша Академия изначально проектировалась с прицелом на быстрый и измеримый результат.
Во-первых, быстрая окупаемость инвестиций времени. Наши скауты начинают зарабатывать реальные деньги непосредственно в процессе прохождения учебных модулей. Как это работает на практике? В рамках практической работы вы учитесь делать экспресс-аудит производительности сайтов с помощью инструмента Lighthouse. Находите региональный интернет-магазин, у которого сайт грузится дольше, чем запускался старый добрый Windows 95, формируете структурированный отчет об упущенной прибыли из-за медленной загрузки, предлагаете наше готовое решение по миграции на быстрый стек и оптимизации инфраструктуры — и получаете свой честный, зафиксированный в смарт-контракте процент от сделки. Обучение окупается буквально с первых двух закрытых клиентов.
Динамика среднего дохода скаута по месяцам обучения
Средний заработок активного скаута (в у.е.) по мере прохождения модулей Академии и закрытия первых сделок по аудиту IT-инфраструктуры.
Во-вторых, гарантированное трудоустройство в штат компании ОЗАТ. Мы создавали этот проект не ради продажи курсов — у нас принципиально другая бизнес-модель. Нам критически не хватает квалифицированных кадров для масштабирования бизнеса. Лучших выпускников Академии мы без лишних собеседований забираем к себе в команду. Вы получаете официальный статус «Инженер-Скаут ОЗАТ», доступ к нашей внутренней инфраструктуре разработки, поддержку опытных тимлидов и постоянный, прогнозируемый поток интересных задач. Вы становитесь нашими глазами и ушами на рынке, нашими технологическими фронтлайнерами.
В-третьих, умное менторство и сильное комьюнити. Вы не останетесь один на один со сложными техническими заданиями. В нашей экосистеме развернут интеллектуальный AI-ментор, построенный на базе передовой языковой модели Gemini 2.5 Pro от Google. Мы реализовали архитектуру RAG (Retrieval-Augmented Generation), подключив к модели базу знаний нашей компании, сохраненную в векторном индексе Pinecone. Наш виртуальный ассистент доступен в чате 24/7 и готов моментально ответить на любой сложный технический вопрос по облачной инфраструктуре или коду. А раз в неделю наши ведущие техлиды проводят живые сессии разбора полетов, детально анализируя кейсы и ошибки студентов.
Подводя итоги
Проектирование, разработка и запуск Академии Скаутов ОЗАТ стали для нашей команды захватывающим инженерным квестом. Мы провели десятки часов в отладке реактивных форм, оптимизировали производительность рендеринга сложного календаря, настраивали политики безопасности баз данных и интегрировали надежные SMS-шлюзы, чтобы вы получили образовательный продукт высочайшего уровня Enterprise-класса. Мы убрали все барьеры на входе.
Если вы чувствуете в себе силы выйти на новый профессиональный уровень, если такие понятия как Google Cloud, AI, оптимизация производительности и масштабируемость вызывают у вас неподдельный интерес и желание созидать — мы ждем вас в нашей экосистеме. Переходите на наш портал, вводите свой номер телефона, подтверждайте его кодом из SMS и давайте вместе деплоить ваше успешное технологическое будущее!
Реальные ограничения и компромиссы решения
Инженерная честность OZAT: при внедрении решения «Как мы пилили Академию Скаутов: Технологии, SMS, Календарь и трудоустройство в ОЗАТ» в промышленную эксплуатацию вы обязаны учитывать следующие технологические ограничения:
- Ограничения пропускной способности SMS-шлюзов: Массовая рассылка кодов подтверждения кандидатам в часы пик требует пула резервных SMS-провайдеров Казахстана.
- Синхронизация Google Calendar с часовыми поясами: Календарные слоты собеседований требуют строгой нормализации времени между часовым поясом UTC+5 (весь Казахстан с 2024 года).
- Нагрузка на Cloud Functions при синхронной валидации анкет: Проверка сотен тестовых заданий требует перевода в очередь Cloud Tasks для предотвращения таймаутов.
- Хранение персональных данных соискателей: Резюме и контакты кандидатов защищаются шифрованием и автоматически удаляются при отказе в соответствии с Законом РК о ПДн.
💡 Совет OZAT: Готовы к внедрению? Рассчитайте архитектуру и бюджет через Scope Builder или пройдите бесплатный ИИ-аудит.

Рустам Шарафутдинов
Эксперт в области архитектуры Google Cloud и Senior Full-Stack разработчик с более чем 15-летним опытом. Специализируется на отказоустойчивых архитектурах, оптимизации высоконагруженных проектов и интеграции AI (Vertex AI).