Senior PHP разработчик
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
О компании и команде
В один из проектов компании ищем несколько сильных разработчиков.
Мы — рекламная сеть. Находимся посередине между вебмастерами, которые настраивают поток трафика и рекламодателями — в основном кредитными организациями, которым нужны лиды.
Наша задача — принимать поток трафика от вебмастеров, быстро редиректить его рекламодателям, а потом принимать от последних постбеки о целевых действиях. Вместе с этим мы храним статистику, управляем взаиморасчётами и предоставляем услуги как для обоих сторон.
Сердце проекта — трекер, где мы обрабатываем ~ 300,000 кликов в день и очень заботимся о быстродействии и отказоустойчивости. Там за балансером несколько нод с nginx + php-fpm + Yii2, на нодах мы берём DTO из ближайшего slave Redis, по которой понимаем куда надо сделать редирект, делаем его, тушим процесс на fpm и ставим в очередь джобу на обработку клика.
Очереди разбирают уже соседние ноды, и в них мы пишем данные о событиях в PG, ClickHouse и уведомляем заинтересованные внутренние сервисы.
Для вебмастеров у нас есть личный кабинет, где они получают ссылки куда гнать трафик, смотрят стату и следят за балансом. Там Angular на фронте и API на Yii2.
Для управления данными есть админка, в ней общая статистика, управление вебами, офферами, бухгалтерия и ставки.
Мозг системы — ставки. Там мы управляем тем, может ли веб вообще лить на конкретный оффер, сколько денег ему платят за целевое действие, и всё это в разрезе по дням. Фронт системы ставок написан на Vue3 и интегрирован в стандартную CRUD админку.
Поскольку большая часть важнейших элементов системы у нас лишена веб-интерфейса, у нас довольно много unit-тестов и отдельный проект с приёмочными тестами на Python, который поддерживает сильная команда тестировщиков.
Ожидания от кандидата
Что нужно будет делать?
- Разнос монолита на сервисы. Плавно выпиливать все описанные сервисы из монолитной репы, чтобы было проще с их поддержкой и деплоем. Сейчас ноды хоть и лежат отдельно, но Git репа одна. Поэтому придётся жонглировать архитектурой проекта, выделяя взаимозависимые узлы системы и делать зависимости односторонними;
- Внедрять Continious Integration. Идём к тому, что по кнопке в Gitlab разворачивать сервис сразу после прогона unit и приёмочных тестов. Сейчас мы собираем релиз из задач, готовых по итогу спринта и делаем деплой в 1 день;
- Оптимизировать работу с PG и CH. Мы подбираемся к моменту, когда стандартные инструменты начинают тормозить просто из-за объёма данных. А данных, хоть и с линейной скоростью, становится всё больше и больше;
- Отвечать за процессы вокруг разработки. Помогать с выявлением бизнес-требований, грумингом и декомпозицией задач. Очень важно уметь вникнуть в суть бизнес-процесса и отыскать компромисс между нуждами менеджеров и технической сложностью решения;
- Пилить CRUDы. И новые и делать удобнее старые, на которых завязаны бизнес-процессы.
Условия работы
Какие условия работы?
- Вся работа — онлайн. В 11:00 МСК дейлики, где мы синхронизируемся по задачам, дальше полная свобода при условии синхронизации с остальными членами команды;
- По оформлению и плюхам — официальное трудоустройство по ТК РФ. Квартальные премии до 50% оклада, ежеквартальная индексация, ДМС со стоматологией по всей территории РФ. При необходимости — любой рабочий ноут. Оплата профессиональных конференций;
- Быстрый оффер — после отклика будет звонок-знакомство с HR и техническое собеседование с тим-лидом, где принимается решение с нашей стороны. Дальше только созвон-знакомство с CTO для обсуждения условий оффера.