ЗарплатаОт 250 000 ₽
Требуемые навыкиБэкенд, Средний (Middle) · PHP · Laravel · Phpunit · Linux · Git · Composer · Docker
Тип занятостиПолный рабочий день · Можно удаленно
Обязанности eCommerce Платформа облачных интернет-магазинов является основным сервисом, над которым будет вестись работа. Приложение написано с использованием Laravel 5.7, имеет большое покрытие unit- и feature-тестами.
Мы предоставляем богатый API для сторонних приложений (в том числе и для своих - админка, сайты и моб. приложения клиентов, сторонние сервисы), который необходимо дорабатывать, поддерживать и временами оптимизировать.
На текущий момент у нас есть приложение самого екоммерса, а так же несколько побочных сервисов различной сложности, которые работают по апи между собой (что-то вроде микросервисов).
Интеграторы внешних систем учёта Для того, чтобы существующий бизнес смог импортировать свой каталог из своей системы (например, 1С), мы разработали универсальный шлюз обмена данными и пишем адаптеры для таких систем. Сейчас мы получаем данные из 1С, Frontpad и iiko, обрабатываем их и отправляем в шлюз обмена данными для наполнения каталога.
Для каждой системы учёта пишется отдельное приложение на Lumen Framework.
Программа лояльности Программа лояльности позволяет начислять покупателям бонусные баллы, которые могут быть использованы во время оплаты заказа.
Это Laravel-приложение так же отделено от eCommerce, имеет большое покрытие тестами и предоставляет обширный API.
Редактор сайтов и мобильных приложений Мы хотим сделать визуальный конструктор сайтов и мобильных приложений для наших клиентов. Для этого мы разрабатываем платформу для автоматической публикации сайтов и приложений, которая даёт такие возможности.
Бэкенд-часть редактора управляет шаблонами, получает по API информацию о новых сборках, парсит список настроек шаблонов, управляет сайтами, хранит настройки шаблонов для конкретных сайтов и приложений, а так же выполняет базовые функции хостинга сайтов.
Фронтент-чать позволяет визуально редактировать блоки сайта, сохраняя настройки в конфиге и отображая изменения тут же на странице просмотра сайта.
Для решения задач по фронтенду этой проблемы нам нужен разработчик, знающий Vue.js (vue-cli, будет плюсом умение писать cli-плагины), TypeScript и имеющий опыт не только вёрстки и написания простых скриптов, но и разработки сложных приложений (будет идеально, если есть опыт работы с бэкендом и понимание базовых принципов написания более-менее чистого кода).
Админ-панель Наша (новая) админка сделана в виде Vue.js приложения с использованием TypeScript. Это полноценное SPA, работающее по RESTful API с бэкендом. У нас есть несколько разделов, которые не требуют сложной логики (дататейблы для списка сущностей и обычные формы для создания/редактирования/удаления), поэтому они реализованы с помощью небольшого самописного генератора (vue-cli плагин).
Редактирование товаров и управление заказами -- совершенно другая история. Эти разделы являются для нас одними из самых критичных (в плане удобства работы), поэтому над ними, скорее всего, придётся потеть.
Кроме этого мы будем запускать конструктор сайтов (есть рабочий прототип, нужно будет перенести его в новую админку и порефакторить), конфигуратор мобильных приложений, управление программой лояльности и ещё кучу разных вещей, которым нужен удобный и быстрый фронтенд.
Админка сделана на основе Vuesax + Tailwind CSS (0.9.x, в планах обновление до 1.x). eslint с @vue/eslint-config-airbnb, @vue/eslint-config-typescript и небольшим количеством кастомных правил. Для тестов (сейчас их крайне мало, более плотное покрытие тестами будет входить в обязанности разработчика) используем jest.
Кроме новой админки есть ещё и текущая (старая), вшитая в Laravel-приложение. Мы уже перенесли оттуда основные вещи, но есть ещё несколько разделов, которые нужно будет перетащить в новое приложение.
Разработка шаблонов сайтов магазинов Разрабатываемые нами шаблоны магазинов будут использоваться в вышеописанном конструкторе сайтов. На текущий момент мы ведём их разработку на фреймворке Vue.js, у нас есть небольшой плагин для vue-cli, позволяющий автоматизировать сборку и деплой шаблонов.
Все шаблоны должны иметь возможность кастомизации (список возможных параметров определяется на этапе разработки), поэтому есть некоторые технические особенности, которые нужно будет учитывать при разработке шаблонов. Во всём остальном это вполне обычные сайты интернет-магазинов.
Разработка пакетов В связи с тем, что все наши фронтенд приложения работают по API, есть проблема дублирования кода, который неплохо было бы вынести в npm-пакеты. Это так же будет входить в обязанности фронтенд разработчика. Часть пакетов будет публиковаться в официальный репозиторий (npmjs.com), часть -- в приватный (скорее всего, на основе Verdaccio).
Требования backend - Базовые вещи (git, composer, консоль, Linux);
- Отличное знание PHP 7.2+;
- Отличное знание Laravel-экосистемы (Laravel, Lumen);
- Опыт написания unit-тестов (phpunit) и feature-тестов (Laravel / Laravel Dusk);
- Опыт работы с более-менее сложными приложениями на Laravel (или любом другом фреймворке).
Требования frontend - Базовые вещи (git, консоль, Linux, npm/yarn, webpack, html, css/less/scss);
- Хорошие знания JavaScript (ES6+);
- Хорошие знания TypeScript;
- Умение и/или желание писать тесты;
- Опыт работы с Vue.js (2.5+) + TypeScript и vue-cli (3+);
- HTML, CSS (SASS, LESS, etc.);
- Будет круто, если есть публичные проекты с открытыми исходниками (GitHub / GitLab / Bitbucket, etc.).
Будет плюсом - Опыт работы с eCommerce-системами;
- Опыт работы с Docker