Вакансии
Мы ищем новых коллег для развития проектов компании в области логистики и интернет-торговли. Мы обеспечим вас интересными и разнообразными задачами, удобным рабочим местом и ресурсами для развития. Резюме и ссылки на ваши проекты присылайте на i@extra.ooo
Разработчик на Руби начального уровня для разработки логистического онлайн-сервиса ЭкстраПочта. Базовое знание Руби и Рельсов, HTML, CSS, SQL. Плюсом будет знание RSpec и TDD, agile, свои проекты на GitHub. Возможна частичная занятость.
Задачи:
- Разработка архитектуры системы
- Написание кода и тестов
- Создание интерфейсов пользователя
- Сопровождение кода технической документацией
- Оптимизация производительности системы
Тестовые задания
Загрузка диапазонов ШПИ (штрих-полосных идентификаторов) из XML
Пользователь открывает форму, выбирает xml-файл для загрузки, нажимает кнопку «Загрузить».
Файл загружается, разбирается (парсится), создаётся экземпляр модели Barcode с полями:
inn — ИНН из файла
index — поле IndexFrom оттуда же.
month — номер месяца, только последние два разряда. Т.е. если 201, то мы берём только 01
start, end — из файла.
Все поля целочисленные.
Пользователю показывается сообщение об успешной загрузке на той же самой странице.
Образец XML для загрузки:
<?xml version="1.0" encoding="UTF-8"?> <ns:Range xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://russianpost.org" xsi:schemaLocation="http://russianpost.org range.xsd" Inn="6671234344" IndexFrom="127002" DateInfo="26.10.2016 21:02:37" CRC="9AF08327"> <ns:Segment NumMonth="202" NumBeg="10000" NumEnd="10999" State="1"/> </ns:Range>
API для отправки посылок
Создать API/DSL (набор классов с методами),с помощью которого можно реализовать следующий сценарий:
1. Создаём заказ (от кого, кому, стоимость)
2. Добавляем посылку (вес, размеры)
3. Запрашиваем тарифы.
4. Выбираем подходящий тариф (например, самый дешёвый).
5. Получаем трэк-номер и ярлык на посылку.
6. Получаем текущее местоположение посылки по трэк-номеру.
Для тестирования этого API создать два экземпляра перевозчиков (DPD & DHL, например), которые будут вызываться уже внутри API для получения собственно, тарифов, трэк-номеров, ярлыков и местоположения и будут возвращать заглушки или что-то внутри себя сгенерированное.
Ориентироваться предлагаю на такой API: https://www.easypost.com/getting-started/ruby.html#step1
Интересует не детальная реализация, а общее архитектурное решение.
Тест на этот сценарий, конечно же, необходим.
Для лучшего понимания контекста (реализовывать это не нужно, но может повлиять на архитектурные решения):
1. Перевозчиков в перспективе будет много
2. У каждого объекта-перевозчика могут быть свои настройки (логин, пароль, пункт отправки и т.п.) См., например: https://www.easypost.com/docs/api/ruby.html#carrier-accounts-create-codesample
3. Запросы тарифов, ярлыков и трэк-номеров идут, как правило, через внешние сервисы, поэтому их следует запрашивать как можно раньше.
4. Пример гема для работы с DPD: https://github.com/itsNikolay/dpd_api
5. Этот же API будет выставлен наружу через JSON.
Ваши решения тестовых задач присылайте на i@extra.ooo
Маркетолог для продвижения интернет-проектов компании (магазины и сервисы) с опытом создания контекстной рекламы (Яндекс и Гугл). Возможна частичная занятость.
Задачи:
- Лидогенерация;
- Аналитика эффективности РК и составление прогнозов;
- Настройка целей в GA и Я.Метрика;
- Составление медиа-плана, контент-плана и бюджета на месяц;
- Повышение эффективности работы сайта компании путем внесения предложений и их внедрения;
- Документооборот, отчетность