25 марта 2025
ChatApp - аккредитованная IT-компания.
Наш продукт облачная платформа для автоматизации клиентских коммуникаций, объединяющая все каналы в единую систему с использованием искусственного интеллекта.
В проект требуется и Backend и Frontend разработчики.
Обязанности:
Технологический стэк проекта:
PHP
php-fpm
Laravel
Laravel Horizon
MySQL или PostgreSQL
Redis
Elasticsearch
Docker
S3
WebSockets
GIT
CI/CD
nginx
Требования:
Опыт построения архитектуры высоконагруженных систем.
Опыт разработки и поддержки высоконагруженных систем.
Навыки проектирования и разработки систем с микросервисной архитектурой.
Умение находить и оптимизировать узкие места в системе.
Опыт разработки REST API.
Опыт разработки облачных решений.
Опыт работы с одной из популярных CRM-систем: Битрикс24, amoCRM или др.
Опыт интеграции с внешними сервисами.
Понимание принципа работы очередей, многопоточности.
Понимание ООП, паттерны.
Прогноз результата.
Будет плюсом знание Linux.
Опыт в написании автотестов.
Организация командной разработки проекта с которым работаете.
Соответствие общепринятым стандартам написания кода (PSR).
Высокие коммуникативные навыки.
Сетевые протоколы и понятие работы какие бывают и как работаю запросы.
Опыт написания безопасного кода (защита от SQL injections, XSS, CSRF и т.п.).
Понимание и (важно) применение TDD и DDD концепций.
Условия:
В отклике на вакансию опишите:
Опыт, какой есть опыт разработки контейнерных систем?
Личные качества, которые считаете важным упомянуть. Каждое качество и навык можно проиллюстрировать примерами с прошлых работ.
Ваши сильные и слабые стороны.
Чем увлекаетесь в свободное время, что любите, что не любите?
Что делаете или делали раньше. Занятость на данный момент.
Чего бы хотели от совместной работы? Почему именно к нам?
Ожидания по деньгам вначале и до каких сумм хотите развиваться.
Обязательно пришлите ссылку на Git, нас интересует как вы пишите код.
Тестовое задание :
- Laravel 12
- MySQL
- Docker
1. Создать 2 таблицы
- chats
- messages
2. Заполнить таблицы тестовыми данными
- Создать 100 чатов.
- Для каждого чата создать от 10 до 100 сообщений с рандомными датами и текстами различной длины.
3. Реализовать REST API метод, который позволит получить список чатов порциями по 20 шт. за один запрос.
4. Список должен быть отсортирован по time последнего сообщения в чате по убыванию (чтобы "свежие" чаты были вверху списка).
5. Для каждого чата в списке должен выводиться обрезанный текст последнего сообщения (до 100 символов).
6. Предположим, что система развивается и сообщений для каждого чата может быть от 10 тыс. и более. Необходимо оптимизировать метод получения списка чатов для работы с большими данными с учетом всех вышеперечисленных условий. Допускается добавлять или изменять поля в таблицах при необходимости.
- Ответ REST API метода должен быть в формате json.
- Проект должен разворачиваться и работать через docker-compose. Для этого можно использовать Laravel Sail или собственную сборку.
- В файле README.md необходимо описать точные шаги, которые позволят поднять проект на сервере при помощи docker-compose.
- Код выложить на github.