Работа в Wiren Board
Компания Wiren Board разрабатывает и производит электронику для автоматизации инженерных систем: промышленных и коммерческих объектов, частных домов и квартир. Среди клиентов - как профессиональные интеграторы, так и энтузиасты умного дома.
Wiren Board была основана в 2013 году тремя выпускниками Физтеха. Владельцы компании - это люди, которые сами умеют делать суровые инженерные вещи, и у них есть чему поучиться. В компании западный стиль управления. Отсутствует строгая иерархия, дистанция между топ-менеджментом и персоналом минимальная, общение исключительно на “ты”. Любой сотрудник может предложить идею на общем собрании. Сотрудники вовлечены в процесс принятия решения.
Основной офис в Долгопрудном, но много сотрудников работает удаленно.
В планах — масштабирование производства, открытие офисов в Европе и в Азии, захват мира=)
В нашей инженерной команде больше 20 человек. Работу можно условно разделить на три большие части:
- Схемотехника устройств (новые устройства и улучшение старых)
- Разработка и поддержка ПО для Linux
- Разработка и поддержка ПО для микроконтроллеров
Схемотехника устройств
Все начинается с изучения потребностей клиентов: спрашиваем, чего им не хватает, думаем, как это проще сделать. Это творческий процесс, требующий коллективной работы инженеров и менеджеров, понимания потребностей рынка и наших возможностей.
Для нас важна слаженная командная работа разработчиков: ведь надо продумать плату, корпус и софт с самого начала разработки. Надо выбрать оптимальные решения, чтобы упростить производство, программирование, снизить себестоимость, не забыть про удобство настройки и использования. И тогда получится отличный продукт.
Наша задача — сделать простое в использовании и надежное устройство. Для этого делаем расчеты и всячески тестируем в разных условиях эксплуатации, и пишем подробную документацию, в которой разберется любой начинающий.
Разработка и производство устройств на одном этаже —сразу видно, что получается, и можно оперативно вносить изменения в продукт.
Мы делаем автоматизацию доступной для людей!
Разработка ПО для Linux
Контроллер WIren Board — это специальный компьютер на Linux в индустриальном исполнении для щитов автоматики и с большим набором разных интерфейсов. Его софт устроен так, чтобы систему можно было легко расширять и дополнять. На контроллере работает набор сервисов, каждый из которых отвечает за отдельную функциональность. Так, у нас есть сервисы:
- для опроса устройств на шине RS-485;
- для работы с KNX;
- для взаимодействия через GPIO и чтения напряжений с АЦП;
- движок правил для написания сценариев автоматизации на языке JavaScript;
- web-интерфейс;
- и ещё много других.
- отлично знает микроконтроллеры STM32;
- хорошо знает Linux;
- имеет хорошие знания об электронике;
- умеет работать в команде.
- Владение системами контроля версий
- Опыт автоматизизрованного тестирования ПО для микроконтроллеров
- Опыт работы (или хобби) с встраиваемым железом c Linux (Wiren Board, Raspberry Pi, роутеры, андроидофоны и т.д.)
- Понимание особенностей функционирования компьютеров в широком смысле (устройство ОС, загрузчиков, сетевых протоколов и т.д.)
Все они взаимодействуют через протокол MQTT, стандартный для IoT. Мы применяем открытую архитектуру, так что возможности контроллера можно расширять за счет стороннего софта, например, Zigbee2MQTT, Z-Way, Rapid SCADA и IntraSCADA. А вот интеграция с Node-RED была разработана силами сообщества. Использование MQTT также позволяет легко подключить контроллер к облачным сервисам.
Большая часть кода в Open Source и выложена на GitHub. Именно открытую архитектуру мы считаем основным достоинством контроллера Wiren Board.
Для того, чтобы поддерживать надежность нашего ПО, используется многоуровневое тестирование: unit-тестирование при разработке отдельных сервисов, интеграционное — для проверки функциональности контроллера, в целом. Сборка и тестирование автоматизированы с помощью CI (Jenkins). Разработка ведется по Скраму, в процессе проводится code review, что позволяет выявлять недочеты на ранних этапах.
Также мы перешли на периодический выпуск стабильных релизов, чтобы за счет небольшой задержки во времени доставлять уже проверенные обновления для тех, кому надежность важнее новых фич. Для желающих же пользоваться самым свежим ПО у нас есть публичный testing, который также проходит автоматическое тестирование.
Разработка ПО для микроконтроллеров
Мы исповедуем UNIX Way: любим консоль, пишем прошивки на plain C, для сборки используем самый базовый тулчейн: gcc + make. Это позволяет легко автоматизировать процессы сборки. Каждый использует ту IDE, к которой привык.
В отличие от мира Arduino у нас довольно большой парк устройств, и это заставляет нас использовать «взрослые методы»: систему версионирования и процедуры ревью кода, — в этом нам помогает Git и GitHub. Большая часть кода для проектов общая и вынесена в субмодули.
Мы используем CI/CD. Прошивки собираются изолированно на отдельном сервере из Git, и это позволяет гарантировать чистую сборку. У нас нет зависимостей от библиотек, установленных локально у разработчика. Для каждого устройства генерируется файл обновления с прошивкой — эти файлы автоматически попадают в публичное облако. Клиент может мгновенно обновить любое устройство или автоматически поддерживать актуальное состояние всех устройств. Мы планируем архитектуру таким образом, чтобы можно было покрывать коды прошивок юнит-тестами, и стараемся это делать.
Для тестирования устройства мы также пишем и организуем системные тесты, для проверки прошивок — уже внутри устройств. Похожие тесты используются на нашем производстве для контроля качества сборки устройства и его работы.
Конечно же, у нас есть еще и менеджеры по продажам, монтажники и другие специалисты, которые составляют немаловажную часть нашей команды. У нас прекрасный офис и очень уютная кухня, где всегда можно выпить чай или свежесваренный кофе со сладостями, в том числе, и полезными. Видеоэкскурсия по нашему офису:
Ищем программиста микроконтроллеров.
Задачи: разработка, доработка и поддержка прошивок для наших устройств для автоматизации: датчиков, реле, счётчиков, диммеров.
Почти все наши периферийные устройства построены на микроконтроллерах STM32F0. Прошивки пишутся на C и собираются gcc, большинство без ОС.
Мы серьёзно подходим к качеству наших прошивок, поэтому у нас внедрён CI (прошивки автоматически собираются из веток), мы внедряем автоматизированное тестирование на разных уровнях. Для разработки используется Git и JIRA.
Мы ищем в команду человека, который:
Будет плюсом:
График гибкий, удалённая работа возможна, но как минимум два дня в неделю надо появляться в офисе в Долгопрудном (МО, 5 км от МКАД, 5 минут от МЦД-1 "Новодачная").
Ищем middle-разработчика C++ или Python.
Мы хотим дать пользователям силу современных программных инструментов, чтобы сделать разработку на нашем оборудовании простой и быстрой. Чтобы энтузиаст смог за 15 минут собрать умный гараж, а крупный интегратор легко управлял сотнями объектов из одного места.
В наших планах большие и интересные задачи по созданию инфраструктуры для управления большими группами контроллеров, а также поддержка новых устройств и интеграция с другими системами автоматизации.
Мы хотим:
- C++ или Python 3 на уровне middle;
- основы проектирования, unit-тестирование;
- Linux на уровне уверенного пользователя (Ubuntu / Debian);
- Git, знакомство с принципами работы в команде;
- общее представление о работе ОС, что такое процессы и потоки, управление памятью и т.д.
Не обязательно, но будет востребовано:
- опыт работы со встраиваемым железом (Arduino, Raspberry Pi, устройства с Android);
- опыт разработки сетевых приложений и web-сервисов (backend, frontend);
- Docker, Ansible и другие технологии развёртывания;
- знакомство с Golang.
График гибкий, возможна полностью удалённая работа из любой точки мира или в офисе в Долгопрудном (МО, 5 км от МКАД, 5 минут от МЦД-1 "Новодачная").
Ищем senior-разработчика C++ или Python.
Мы хотим дать пользователям силу современных программных инструментов, чтобы сделать разработку на нашем оборудовании простой и быстрой. Чтобы энтузиаст смог за 15 минут собрать умный гараж, а крупный интегратор легко управлял сотнями объектов из одного места.
Будет много задач на архитектуру, рефакторинг и разработка “с нуля” решения для управления большими группами контроллеров.
Мы даём:
- з/п от 160 до 250 т.р. по результатам собеседования;
- удалённая работа, либо работа в офисе в Долгопрудном (5 км от МКАД) с кофемашиной и печеньками;
- свободный график.
Мы хотим:
- C++ или Python 3 на уровне senior;
- опыт разработки сетевых приложений (Web, MQTT);
- опыт построения архитектуры систем, рефакторинга;
- Linux (Ubuntu/Debian), понимание устройства ОС;
- Git, работа в команде, опыт code-review;
Не обязательно, но пригодится:
- опыт работы со встраиваемым железом (Arduino, Raspberry Pi, устройства с Android);
- Docker, Ansible и другие технологии развёртывания;
- знакомство с Golang.
График гибкий, возможна полностью удалённая работа из любой точки мира или в офисе в Долгопрудном (МО, 5 км от МКАД, 5 минут от МЦД-1 "Новодачная").
Ищем DevOps-инженера.
Мы хотим дать пользователям силу современных программных инструментов, чтобы сделать разработку на нашем оборудовании простой и быстрой. Чтобы энтузиаст смог за 15 минут собрать умный гараж, а крупный интегратор легко управлял сотнями объектов из одного места.
Будут задачи на конфигурирование системы CI/CD для доставки обновлений, мониторинг, управление группами контроллеров по сети и на поддержку работоспособности наших сетевых сервисов.
Мы даём:
- з/п от 100 до 160 т.р. по результатам собеседования;
- удалённая работа, либо работа в офисе в Долгопрудном (5 км от МКАД) с кофемашиной и печеньками;
- свободный график.
Мы хотим:
- хорошее знание ОС Linux (Ubuntu/Debian), systemd и сетевого стека;
- опыт автоматизации в Jenkins или другой системе CI/CD;
- Docker, создание контейнеров и развёртывание приложений;
- Bash, Python 3 на уровне, достаточном для автоматизации;
- опыт настройки сетевых сервисов (web-серверы, vpn, базы данных);
Не обязательно, но пригодится:
- опыт работы со встраиваемым железом (Arduino, Raspberry Pi, устройства с Android).
График гибкий, возможна полностью удалённая работа из любой точки мира или в офисе в Долгопрудном (МО, 5 км от МКАД, 5 минут от МЦД-1 "Новодачная").
Ищем Middle/ Senior Frontend-разработчика.
Мы хотим дать пользователям силу современных программных инструментов, чтобы сделать разработку на нашем оборудовании простой и быстрой. Чтобы энтузиаст смог за 15 минут собрать умный гараж, а крупный интегратор легко управлял сотнями объектов из одного места.
Что надо будет делать:
развивать web-интерфейс для управления контроллерами (сейчас написан на AngularJS), в перспективе создание web-сервисов с нуля (опыт backend или full-stack разработки приветствуется). Готовы поменять фреймворк, если сработаемся.
Условия:
- з/п от 160 до 250 т.р. по результатам собеседования;
- удалённая работа либо работа в офисе в Долгопрудном (5 км от МКАД) с кофемашиной и печеньками;
- свободный график.
Требования:
- Опыт разработки web-приложений (HTML, CSS, JS);
- Умение читать чужой код (даже ужасный);
- Желательно знание AngularJS.
Ищем инженера-электронщика.
Мы хотим дать пользователям силу современных программных инструментов, чтобы сделать разработку на нашем оборудовании простой и быстрой. Чтобы энтузиаст смог за 15 минут собрать умный гараж, а крупный интегратор легко управлял сотнями объектов из одного места.
Обязанности:
- Тестирование и отладка образцов электронных устройств.
- Сопровождение производства.
- Сборка проверочных стендов.
Требования:
- умение работать самостоятельно, прямые руки;
- опыт работы с Linux уровня пользователя;
- знание основ цифровой и аналоговой схемотехники;
- основы устройства компьютеров и компьютерных сетей;
- английский на уровне чтения даташитов.
Будет плюсом что-то из списка:
- опыт разработки электронных устройств;
- опыт программирования МК;
- опыт командной работы;
- знания о промышленной автоматизации;
- опыт работы с Arduino, Raspberry Pi.
Условия:
- гибкий график работы;
- полностью удалённая работа из любой точки мира;
- стандартная рабочая неделя, без переработок;
- молодой коллектив;
- З/п: от 70 т.р. в зависимости от квалификации.
Задачи: помощь клиентам, подбор оборудования, технические презентации заказчикам, участие в выставках, оформление отчётов о внедрениях.
Часто клиенты приходят к нам в поисках решения для одной узкой конкретной задачи. Нужно глубоко разобраться в этой и других задачах клиента, понять, как мы ещё можем ему помочь, увеличив, таким образом, средний чек.
Мы ищем в команду человека, который
- Отлично разбирается в оборудовании для автоматизации
- Умеет и любит хорошо и грамотно говорить и писать
- Имеет начальные знания об электронике
- Умеет работать в команде
Не обязательно, но будет востребовано:
- Знание английского языка
- Опыт работы с Corel Draw, Autocad и т.п.
- Опыт разработки проектов
График гибкий, удалённая работа возможна, но как минимум два дня в неделю надо появляться в офисе в Долгопрудном (МО, 5 км от МКАД, 5 минут от МЦД-1 "Новодачная").
Вакансия предполагает поездки по Москве и общение с существующими клиентами. Командировки возможны редко и щедро компенсируются.