Senior Backend Developer

Цена договорная • безналичный расчёт, электронные деньги
23 сентября 2016, 05:36 • 3 отклика • 99 просмотров
Есть много Raspberry Pi. Планируем завести ещё больше. Немного подробностей об окружении и планах в соседнем заказе https://freelansim.ru/tasks/155413


Решили избавиться от технического долга и провести глобальный рефакторинг. «Глобальный» в рамках данной задачи на уровне Raspberry Pi означает: написать всё с нуля по готовому ТЗ. Новая архитектура базируется на ряде "новомодных" подходов. Мы уверены, что их использование оправданно высокими требованиями, которым должна соответствовать наша система. Если в процессе оценки ТЗ у вас появятся альтернативные предложения и/или замечания, мы всегда готовы их обсудить.


Список подходов и технологий:


  • Long Polling для моментальной доставки команд от сервера API к Paspberry PI

  • CQRS для понятной и легко-расширяемой логики обработки команд

  • Event Sourcing для повышения очевидности work-flow, снижения рисков межпроцессорного взаимодействия и повышение отказоустойчивости в условиях плохого доступа к интернету на удалённых машинах Paspberry PI

  • Inter Process Communication через очередь сообщений (ZeroMQ или D-Bus)

  • Тотальная асинхронность обусловлена спецификой работы с переферией и произвольным потоком комманд от сервера API

  • Виртуальные COM-порты с протоколами взаимодействия:

    • RS-485/RS-232 для кастомной переферии

    • RS-232 для 3G-модема для обработки SMS c входящими командами от сервера API и отправки SMS с исходящими командами и результатами на сервер API. SMS используем при проблемах с интернетом, как резервный транспорт для критически важных команд



  • Язык программирования (в порядке предпочтения):

    • Ruby. У нас devops на ruby. Нет желания разводить зоопарк инструментов на разных уровнях нашей системы.

    • Ради крутого Python'инста готовы пересмотреть свои предпочтения.

    • Если вы хорошо умеете Erlang и сможете на основе детального ТЗ выдать обоснованное заключение о возможных трудозатратах, рисках и целесообразности применения данного языка для решения нашей задачи, обязательно оставьте свой отклик! Готовы дополнительно оплатить это исследование.

Чего нет в нашей Raspberry Pi:


  • Высокой нагрузки

  • Сложных вычислений

  • Базы данных и хранения состояний относящихся к бизнес-логике (к ней не относятся: очередь команд и буфер команд для оптимизации доступа к интернету, event sourcing snapshots)

  • Доменной бизнес-логики. На уровне Raspberry Pi должна быть только логика управления переферийными устройствами! За доменную логику отвечает сервер API

Требования к исполнителю:


  • Опыт в production хотя бы с частью перечисленных подходов. Либо другой достойный опыт, который убедит меня, что вы способны качественно и в срок реализовать всё перечисленное. Либо готовность проанализировать планируемую архитектуру и предложить альтернативное решение

  • Чёткое понимание: как устроен стек протоколов TCP/IP. Из-за плохого интернета приходится учитывать каждый байт, чтобы минимизировать проблемы

  • Опыт программирования передачи данных через com-порт желателен, но не обязателен. Достаточно общего представления об UART

Пожалуйста, в отзыве укажите свою желаемую часовую ставку. Даже, если предпочитаете фиксированную оплату, мне необходимо ориентироваться на какую-то цифру, чтобы начать продуктивный диалог. Скиньте ссылку на ваш лучший проект. Укажите ваш email (обязательно) и логин в телеграме (желательно). ТЗ для первичной оценки отправлю заинтересовавшим кандидатам.

Кандидаты из Санкт-Петербурга в приоритете. Кандидат с возможностью приёма оплаты на счёт юр. лица получит дополнительный плюс от нашего бухгалтера. Различного рода студии, автономные «команды опытных профессионалов» и прочие сомнительные абстракции рассматриваем в последнюю очередь.

-------

P.S.: если вы искали в тексте упоминание PHP, загляните сюда https://freelansim.ru/tasks/155499