Вакансии

Мы ищем новых коллег для развития проектов компании в области логистики и интернет-торговли. Мы обеспечим вас интересными и разнообразными задачами, удобным рабочим местом и ресурсами для развития. Резюме и ссылки на ваши проекты присылайте на 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 и Я.Метрика;
  • Составление медиа-плана, контент-плана и бюджета на месяц;
  • Повышение эффективности работы сайта компании путем внесения предложений и их внедрения;
  • Документооборот, отчетность