Backend программист (PHP) (удаленная работа)

25 марта 2025

Уровень зарплаты:
от 200 000 до 200 000 руб.
Требуемый опыт работы:
Не указан

Вакансия: Backend программист (PHP)

Описание вакансии

ChatApp - аккредитованная IT-компания.
Наш продукт облачная платформа для автоматизации клиентских коммуникаций, объединяющая все каналы в единую систему с использованием искусственного интеллекта.

В проект требуется и Backend и Frontend разработчики.

Обязанности:

  • Участие в командной разработке CCaaS сервиса.
  • Разработка микросервисной архитектуры CRM системы.

Технологический стэк проекта:

  • PHP

  • php-fpm

  • Laravel

  • Laravel Horizon

  • MySQL или PostgreSQL

  • Redis

  • Elasticsearch

  • Docker

  • S3

  • WebSockets

  • GIT

  • CI/CD

  • nginx

Требования:

  • Опыт построения архитектуры высоконагруженных систем.

  • Опыт разработки и поддержки высоконагруженных систем.

  • Навыки проектирования и разработки систем с микросервисной архитектурой.

  • Умение находить и оптимизировать узкие места в системе.

  • Опыт разработки REST API.

  • Опыт разработки облачных решений.

  • Опыт работы с одной из популярных CRM-систем: Битрикс24, amoCRM или др.

  • Опыт интеграции с внешними сервисами.

  • Понимание принципа работы очередей, многопоточности.

  • Понимание ООП, паттерны.

  • Знание процесса гибкой разработки: scrum, sprint planing, daily meeting, demo, retrospective.
  • Прогноз результата.

  • Будет плюсом знание Linux.

  • Опыт в написании автотестов.

  • Организация командной разработки проекта с которым работаете.

  • Соответствие общепринятым стандартам написания кода (PSR).

  • Высокие коммуникативные навыки.

  • Асинхронное программирование.
  • Сетевые протоколы и понятие работы какие бывают и как работаю запросы.

  • Опыт написания безопасного кода (защита от SQL injections, XSS, CSRF и т.п.).

  • Понимание и (важно) применение TDD и DDD концепций.

Условия:

  • Основная работа, полный рабочий день (требуется полное погружение в проект без отвлечения на мелкие фриланс-шабашки).
  • Удаленная работа и дома.
  • Удобный график: стандартная пятидневка (сб-вс выходные), а также гибкие начало и окончание рабочего дня.
  • Зарплата в зависимости от уровня компетенции и объема выполняемой работы обсуждается на собеседовании, пишите свои предпочтения в резюме.
  • Перспективы карьерного роста и повышения: мы не будем добиваться от вас достижения пороговых KPI, мы оцениваем работу и вашу вовлеченность в неё.

В отклике на вакансию опишите:

Опыт, какой есть опыт разработки контейнерных систем?
Личные качества, которые считаете важным упомянуть. Каждое качество и навык можно проиллюстрировать примерами с прошлых работ.
Ваши сильные и слабые стороны.
Чем увлекаетесь в свободное время, что любите, что не любите?
Что делаете или делали раньше. Занятость на данный момент.
Чего бы хотели от совместной работы? Почему именно к нам?
Ожидания по деньгам вначале и до каких сумм хотите развиваться.
Обязательно пришлите ссылку на 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.