Программист микроконтроллеров на языке C

Wiren Board

  • Нур-Султан
  • Постоянная работа
  • Полная занятость
  • 1 мес. назад
Компания Wiren Board разрабатывает и производит электронику для автоматизации инженерных систем: промышленных и коммерческих объектов, частных домов и квартир. Среди клиентов - как профессиональные интеграторы, так и энтузиасты умного дома.Почти все наши периферийные устройства построены на микроконтроллерах STM32F0 и китайских аналогах Соrtex МО. Прошивки пишутся на C и собираются gcc, большинство без ОС.Мы серьёзно подходим к качеству наших прошивок, поэтому у нас внедрён CI (прошивки автоматически собираются из веток), мы внедряем автоматизированное тестирование на разных уровнях. Для разработки используется Git.Обязанности:Разработка, доработка и поддержка прошивок для наших устройств для автоматизации: датчиков, реле, счётчиков, диммеров.Требования:Отличное знание микроконтроллеров STM32 (GD32, CH32, AT32), умение пользоваться reference manual, конфигурировать периферию через регистры, знать как работает;Хорошее знание Linux, Bash на уровне пользователя, работа с протоколом MQTT, общие знания о работе компьютеров, сетей и т.д.;Хорошее знание C, Make, GCC, процесса сборки;Умение работать с системой контроля версий git, опыт командной разработки, кодревью;Хорошие знания об электронике, цифровой схемотехнике;Понимание работы интерфейсов I2C, SPI, UART на физическом и логическом уровне;Умение работать с логическим анализатором и осциллографом;Умение читать чужой код, понимание принципов хорошего кода (clean code, SOLID);Не обязательно, но будет востребовано:Опыт автоматизированного тестирования ПО для микроконтроллеров;Опыт работы с оборудованием для промышленной автоматизации, протоколом Modbus;Понимание особенностей функционирования компьютеров в широком смысле (устройство ОС, загрузчиков, сетевых протоколов и т.д.);Желательно знание Python;Условия:
  • Гибрид / удаленная работа (офис по адресу: г. Астана, шоссе Коргалжын, 3)
  • 5/2 с гибким началом/окончанием рабочего дня.
  • Команда опытных инженеров с разноплановыми знаниями и технологиями.
  • Собственное уникальное производство.
  • Профильные выставки, мерч, корпоративные мероприятия.
Компания Wiren Board разрабатывает и производит электронику для автоматизации инженерных систем: промышленных и коммерческих объектов, частных домов и квартир. Среди клиентов - как профессиональные интеграторы, так и энтузиасты умного дома.Wiren Board была основана в 2013 году тремя выпускниками Физтеха. Владельцы компании - это люди, которые сами умеют делать суровые инженерные вещи, и у них есть чему поучиться. В компании западный стиль управления. Отсутствует строгая иерархия, дистанция между топ-менеджментом и персоналом минимальная, общение исключительно на “ты”. Любой сотрудник может предложить идею на общем собрании. Сотрудники вовлечены в процесс принятия решения.Основной офис в Долгопрудном, но много сотрудников работает удаленно.В планах — масштабирование производства, открытие офисов в Европе и в Азии, захват мира=)В нашей инженерной команде больше 20 человек. Работу можно условно разделить на три большие части:
  • Схемотехника устройств (новые устройства и улучшение старых)
  • Разработка и поддержка ПО для Linux
  • Разработка и поддержка ПО для микроконтроллеров
Схемотехника устройствВсе начинается с изучения потребностей клиентов: спрашиваем, чего им не хватает, думаем, как это проще сделать. Это творческий процесс, требующий коллективной работы инженеров и менеджеров, понимания потребностей рынка и наших возможностей.Для нас важна слаженная командная работа разработчиков: ведь надо продумать плату, корпус и софт с самого начала разработки. Надо выбрать оптимальные решения, чтобы упростить производство, программирование, снизить себестоимость, не забыть про удобство настройки и использования. И тогда получится отличный продукт.Наша задача — сделать простое в использовании и надежное устройство. Для этого делаем расчеты и всячески тестируем в разных условиях эксплуатации, и пишем подробную документацию, в которой разберется любой начинающий.Разработка и производство устройств на одном этаже —сразу видно, что получается, и можно оперативно вносить изменения в продукт.Мы делаем автоматизацию доступной для людей!Разработка ПО для LinuxКонтроллер WIren Board — это специальный компьютер на Linux в индустриальном исполнении для щитов автоматики и с большим набором разных интерфейсов. Его софт устроен так, чтобы систему можно было легко расширять и дополнять. На контроллере работает набор сервисов, каждый из которых отвечает за отдельную функциональность. Так, у нас есть сервисы:
  • для опроса устройств на шине RS-485,
  • для работы с KNX,
  • для взаимодействия через GPIO и чтения напряжений с АЦП;
  • движок правил для написания сценариев автоматизации на языке JavaScript;
  • web-интерфейс;
  • и ещё много других.
Все они взаимодействуют через протокол 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, и это позволяет гарантировать чистую сборку. У нас нет зависимостей от библиотек, установленных локально у разработчика. Для каждого устройства генерируется файл обновления с прошивкой — эти файлы автоматически попадают в публичное облако. Клиент может мгновенно обновить любое устройство или автоматически поддерживать актуальное состояние всех устройств. Мы планируем архитектуру таким образом, чтобы можно было покрывать коды прошивок юнит-тестами, и стараемся это делать.Для тестирования устройства мы также пишем и организуем системные тесты, для проверки прошивок — уже внутри устройств. Похожие тесты используются на нашем производстве для контроля качества сборки устройства и его работы.Конечно же, у нас есть еще и менеджеры по продажам, монтажники и другие специалисты, которые составляют немаловажную часть нашей команды. У нас прекрасный офис и очень уютная кухня, где всегда можно выпить чай или свежесваренный кофе со сладостями, в том числе, и полезными.Видеоэкскурсия по нашему офису:https://peertube.wirenboard.com/w/fyjeLxw6akbX3n68EZBUiJ

HeadHunter