вторник, 5 сентября 2017 г.

Ищем Senior Full Stack Developer в Veeqo.com


Всем привет!
Для нашего нового клиента, компании Veeqo, ищем опытного Full Stack Developer (Ruby, RoR, JS, Backbone/ Marionette) на фултайм удаленку.  
Ниже - больше, в наших вопросах и ответах ребят.

Что мы делаем. Veeqo - это платформа для продавцов, которые используют сразу несколько e-commerce площадок (Amazon, eBay, Shopify, WooCommerce, Magento). Вот типичные проблемы нашего клиента:
  • У меня много каналов продаж: мой сайт, Амазон, сайт в Shopify и еще на eBay товары есть.  
  • Как мне контролировать остатки на складах, чтобы не перепродать?
  • Как мне следить за заказами, поступающими с разных каналов?
  • Как мне следить за тем, что я уже выслал?
  • Когда проблемы выше как-то решены, как мне справиться с большим количеством заказов? Как мне успевать заказывать товары у своих поставщиков?
Мы решаем реальные проблемы реальных бизнесов, помогая им автоматизировать складской учет.

Мы делаем это, потому что:
  • на рынке высока потребность в таком продукте;
  • другие компании (конкуренты) либо слишком медленные, либо недостаточно развитые (тяжелые десктопные клиенты);
  • наши клиенты довольны, когда мы им реально помогаем.

Как мы делаем. Мы делаем высоконагруженное и высоконадежное приложение для бизнеса с разнообразным интерфейсом. Это большая система, состоит из:
  • веб-приложения на Ruby On Rails на бэкенде с фронтендом на Marionette и REACT (особые места) и использованием CoffeeScript;
  • асинхронного обработчика задач на основе Sidekiq, который делает 99% работы;
  • нескольких независимых сервисов, взаимодействующих через AMQP и другие протоколы;
  • нескольких вспомогательных элементов для автоматизации DevOps (автомасштабирование и т.п.)
Система почти полностью покрыта автоматическими тестами (разные виды, от unit-тестов до тестов через браузер) - всего около 15000 тестов. Фронтендовые задачи тоже покрываются тестами.

Перспективы и планы компании/продукта. Сейчас в приоритете - наращивание программных функций продукта, а это задачи по:
  • интеграции с различными сторонними сервисами,
  • интеграция с инструментами малой автоматизации (принтерами, сканерами, весами и т.п.),
  • создания функций для оптимизации БП заказчика,
  • тактический и стратегический рефакторинг системы,
  • формированию поддерживаемой архитектуры фронтенд приложения;
  • контролю качества (дефектности) с помощью автоматизации тестирования и развертывания приложения,
  • оптимизация производительности (стоимость хостинга растет же).


Какие профессиональные навыки нам важны?
  • очень хорошее знание  Ruby (включая метапрограммирование) и RoR;
  • умение писать чистый код (согласно Uncle’s Bob Clean Code);
  • умение проектировать асинхронное вычисление (анализ на race conditions) и использовать Sidekiq,
  • умение создавать автоматические тесты на rspec, и для JavaScript с использованием Jasmine, Sinon, а также тестов fullstack на Capybara (в проекте есть много примеров);
  • знание архитектуры приложений, принципов SOLID, и как их применять;
  • желательно знание Marionette.js, Backbone.js, CoffeeScript, JavaScript, SCSS, Rails assets pipeline;
  • умение профайлить память и производительность (скорость).

Нужен ли английский, и на каком уровне? По-английски придется разговаривать часто. Большая часть компании говорит только на английском. Так что есть два варианта: либо вы умеете общаться на английском только письменно (для начала пойдет), и тогда вы сразу после начала работы идете на курсы английского (мы оплатим). Либо вы уже умеете на английском говорить и устно и письменно, и тогда мы лучше вам оплатим какие-нибудь онлайн курсы, у нас предусмотрено время и бюджет на обучение.

Что нам важно в этом человеке. Не быть мудаком (ссылка). С этим строго. Даже если вы прокрадётесь через собеседования, но окажетесь мудаком, то уволим без сожаления, не взирая ни на какие профессиональные качества. Мы твердо уверены, что мудак - прямой урон коллективу, никакие навыки этого не компенсируют.

Соблюдение обычной бизнес-этики для удаленной работы: самостоятельность, умение переписываться, объяснять письменно и устно по-английски, появляться на встречах, предупреждать об изменении планов, уважительно относиться ко времени коллег, быть на связи в назначенное время, выполнять работу без напоминания. Мы хотим давать задачи и ожидать их самостоятельного решения: инициативности в выяснении требований, адекватного планирования собственного времени. Микроменеджить и “стоять за спиной” у нас не принято. Мы сразу выдаем кредит доверия по этой части.  Поэтому рассчитываем, что наш человек сам может сказать, что застрял с задачей, что требований не хватает, что еще что-то блокирует работу.  

Мы ждем, что вы:
  • способны сопоставить архитектуру приложения с бизнес-потребностями - видеть намного дальше одной задачи - понимать, где структура подойдет для решения бизнес-задач, а где придется переделывать;
  • способны увидеть некачественный подход к решению задач и предложить переход на более качественный подход (по производительности, чистоте кода, авторматизии тестирования);
  • хорошо представляете себе, что такое правильная архитектура,
  • умеете прикинуть случаи, когда производительность может стать проблемой (может поставить “колом” всё приложение),
  • умеете читать и писать правильные логи,
  • уже испытывали разные виды болей от того, что происходит с проектом, когда он растёт и перерастает ту невидимую границу, после которой внезапно становится значительно тяжелее;
  • наступали на всевозможные грабли, либо непосредственно видели, как наступают.

Что делать в проекте?
  • Прежде всего - решать задачи. Есть много задач, связанных как с бизнес-требованиями, так и с внутренним качеством кода.
  • Помогать менеджерам продуктов анализировать требования находит оптимальные решения.
  • Развивать автоматизацию контроля качества (тесты) и поставки.
  • Делать рефакторинг.  В компании практикуется день технического долга - один день в неделю разработчики должны (обязаны) тратить на устранение технического долга.
  • Строить архитектуру приложения — она постоянно пересматривается в связи с ростом количества программных функций.
  • Помогать молодым разработчикам делать задачи правильно.

Перспектива роста/развития по данной позиции. Стать специалистом по надежным и высоконагруженным системам.  Сейчас у нас уже больше ста серверов обслуживают клиентов и это число растет. Простои в работе сервиса недопустимы (кроме “окна обновления”) потому, что как только он останавливается, наши клиенты начинают нести убытки.  Действительно необходимо надежное и высокопроизводительное приложение.

Размер и структура команды. В компании около 30 человек: поддержка, продажа, маркетинг, специалисты внедрения, аналитики продукта и руководитель с администратором.
В отделе разработки пока 12 человек, разделенные на 2 команды. Тестировщиков нет.  Все разрабатывают код и пишут автоматизированные тесты. Уровни разработчиков разные - от младших до старших. Есть и fullstack, есть только backend-овые, есть только фронтендовые. Есть девопсы. Есть те, кто работает в офисе, и те, кто удаленно.
План - вырасти до 20 инженеров за год и разделиться на 3-4 команды по 5-6 человек. Также компания активно использует 3 аутсорсинговые команды. Текучки нет.  За всю историю компании уволилось только 2 программиста.

Сколько лет проекту? На какой он стадии? 4 года. Вот только-только (в феврале) перестали быть стартапом, смерть нам больше не грозит. Сейчас получили кучу денег на акселерацию, потихоньку осознаём себя в новом качестве. Компания успешно обслуживает около 300 клиентов (других компаний), это около 1000 пользователей из разных стран и континентов. Активно вкладываемся в развитие продукта. Есть много программных функций, которые реально нужны клиентам, и которые надо сделать за ближайший год.

Где находятся люди, которые принимают технические решения по проекту? Основная команда по развитию продукта находится в центральном офисе в г. Свонзи, Уэльс, Великобритания. Там же находятся руководители поддержки и продаж.
Команда инженеров распределена по планете. Поэтому люди, принимающие решения по программному проекту, могут находиться в разных местах: Северная Америка, Великобритания, Европа, Украина, Россия, Киргизия.

Кто у нас работает?
Основатель и руководитель компании Мэттью Уоррен (Matthew Warren):
Как Вико стала успешной. - статья про Мэтта
Куча статей про компанию на Уэльском портале бизнес-новостей
Статья про Мэтта о том, как он продавал дорогие часы, продал кучу бизнесов, проиграл в суде миллионы и основал новый бизнес
Мэтт -- один из основателей ТехХаба в Свонзи - профиль на CrunchBase.
Профиль на Bloomberg

CTO - Даниил Вартанов: программирует в Emacs с педалями (так быстрее)
Выступает много про разработку ПО и Биткоины
Профиль и список статьей Вартанова на Sputnik.kg.
Профиль и список статей на LMNdeit

Head of Engineering -- Максим Косяков
Говорит в основном про методологию разработки:
Выступление на Agile Days 2014 -- про конкурс в стиле agile.
Выступление на BarCamp 2012 -- про автоматизацию в разработке.

Чем мы как компания/проект отличаемся от других?
  • Помогаем реальным бизнесам. Благодарности приходят в реальном времени.
  • Планка качества по коду поднята очень высоко и поддерживается всей командой
  • Приложение сложное, производительное и надежное - мы держим планку качества.
  • Культура сохранена стартаперская. Иерархия простая. Все разговаривают со всеми. Все вкладываются в развитие.
  • Амбициозные планы по захвату рынка. Конкуренция с амазоном (уже начата).
  • Выделенное рабочее время для обучения и бюджет на обучение.

По условиям:
  • Есть ли испытательный срок и сколько он длится? Формального испытательного срока нет. За первый месяц должно быть понятно, готовы ли мы продолжать работать с человеком или нет. Заплатить за этот месяц - не проблема.
  • Овертаймы, как часто бывают, какой подход к оплате? Нет, овертаймов не бывает.  Культура компании не поощряет овертаймы из-за риска выгорания. За историю компании был один случай, когда на праздники “упал” продакшн. CTO сам всё починил.
  • Какой график работы? 40 часов в неделю, 30 из которых тратится на реальное решение задач.  Конкретные часы работы не так важны. Важно сообщать о своем графике коллегам и появляться на назначенных встречах.
  • Есть ли возможность работать удаленно какие-то дни? У компании подход - remote-first. Можно всегда работать удаленно.  Можно приходить в офис в любое время.
  • Количество дней отпуска? 20 дней отпуска + 8 дней государственных праздников Великобритании.
  • Есть ли перспектива командировок, и куда? Скорее всего, будут командировки в центральный офис в г. Свонзии, Великобритания.
  • Возможна ли релокация за пределы Украины? Да, возможна.
  • В офисе открытая или закрытая планировка? Открытая. Но офис маленький. У разработчиков 5 столов рядом напротив CEO. Все сидят рядом. За стенкой отдел поддержки, внедрения и отдел продаж. У CEO такое же оборудование, как и у стажёра. У CEO даже чуть чуть похуже, ему тесты не надо гонять :)
  • Соцпакет. В Британии бесплатная медицина, страховка не нужна, но у нас есть:
    • Бесплатный spotify premium аккаунт
    • Если переедете, бесплатный абонемент в gym рядом с британским офисом
    • Бесплатный аккаунт в приложении “удалённый доктор” (https://www.babylonhealth.com/)
    • Половина каждой пятницы в явном виде выделяется на дополнительное самообучение любой новой (или старой) технологии, которая может потенциально пригодиться. Мы оплачиваем любые онлайн-курсы и книги. Курсы английского тоже оплачиваем.
  • Когда, каким образом и в какой валюте платится/считается зарплата? В британских фунтах. Обычно отправляем банковским платежом, но можем любым способом, хоть биткоинами.
  • Адрес офиса (TechHub Urban Village. 221 High Street. Swansea. SA1 1NW United Kingdom).

По процессу:
  • Есть ли тестовое задание? Формального тестового задания нет. Надо будет прислать образцы реального кода и объяснить, как они работают, почему именно так сделаны. Ждем ваш самый лучший код. Лучше всего на github-е.
  • Интервью на английском? Можем провести на русском. Украинский тоже можно, но сложнее. И работать надо будет на английском языке.
  • Кто ревьювит резюме? Руководитель разработки, CTO, иногда просим разработчиков посмотреть.
  • Сколько этапов интервью, с кем? Обычно одного интервью достаточно. Бюрократии нет, интервью проводят только специалисты: CTO, руководитель разработки и кто-то из профильных разработчиков

Если вам все понравилось, пишите нам alesya.v.sidorovich@vpteam.com.ua
Спасибо :)

Комментариев нет: