Программист (Senior developer)

Срок для отклика истек

Описание вакансии

Компания "ГРИНТЕХ" занимается производством светотехнической продукции полного солнечного спектра излучения и современных тепличных комплексов. Осуществляет научное сопровождение агрономического сектора. Системы освещения предназначены для агропромышленой и строительной сферы, в частности для различных хозяйств, домов, школ, уличного освещения, торговых центров, промышленных комплексов.

Мы приглашаем на постоянную работу программисталя программирования систем управления тепличными комплексами.

Задачи, которые нужно будет решать:

  • Анализ требований заказчика, экспертов в области агрономии и выработка технических решений для разработки ПО;
  • Проектирование и разработка веб-сервиса для управления тепличным комплексом с использованием технологий и библиотек Python 3.11;
  • Реализация алгоритмов управления и автоматизации выращивания сельскохозяйственных культур для оптимизации условий в тепличном комплексе;
  • Разработка пользовательского интерфейса для веб-сервиса для мониторинга и управления тепличным комплексом, включая визуализацию данных датчиков и возможность установки параметров работы исполнительных устройств;
  • Интеграция пользовательского интерфейса с библиотеками для работы с датчиками и исполнительными устройствами;
  • Обеспечение безопасности данных веб-сервиса системы управления, включая шифрование, аутентификацию пользователя, проксирование траффика, поиск и устранение уязвимостей ПО;
  • Настройка девелоперской и автоматизация исполнительной среды Linux (Arch, Alpine).

Должностные обязанности:

  • Разрабатывает технологию решения задачи по всем этапам обработки информации;
  • Осуществляет разработку и внедрение ПО для управления исполнительными устройствами, системами связи, мониторинга и контроля различных исполнительных устройств);
  • Осуществляет выбор языка программирования для описания алгоритмов и структур данных;
  • Определяет информацию, подлежащую обработке средствами вычислительной техники, ее объемы, структуру, макеты и схемы ввода, обработки, хранения и вывода, методы ее контроля;
  • На основе анализа математических моделей и алгоритмов решения экономических и других задач разрабатывает программы, обеспечивающие возможность выполнения алгоритма и соответственно поставленной задачи средствами вычислительной техники, проводит их тестирование и отладку;
  • Выполняет работу по подготовке программ к отладке и проводит отладку;
  • Определяет объем и содержание данных контрольных примеров, обеспечивающих наиболее полную проверку соответствия программ их функциональному назначению;
  • Осуществляет запуск отлаженных программ и ввод исходных данных, определяемых условиями поставленных задач;
  • Проводит корректировку разработанной программы на основе анализа выходных данных. Разрабатывает инструкции по работе с программами, оформляет необходимую техническую документацию;
  • Определяет возможность использования готовых программных продуктов;
  • Осуществляет сопровождение внедренных программ и программных средств;
  • Разрабатывает и внедряет системы автоматической проверки правильности программ, типовые и стандартные программные средства, составляет технологию обработки информации;
  • Выполняет работу по унификации и типизации вычислительных процессов;
  • Принимает участие в создании каталогов и картотек стандартных программ, в разработке форм документов, подлежащих машинной обработке, в проектировании программ, позволяющих расширить область применения вычислительной техники.
  • Требования:

  • Знание технологии автоматической обработки информации, методов классификации и кодирования информации, формализованные языки программирования, действующих стандартов, систем счислений, шифров и кодов;

  • Знание порядка оформления технической документации;
  • Опыт работы с серверными языками программирования, такими как Python, C или JavaScript;
  • Опыт разработки на языке Python 3.11;
  • Хорошее понимание принципов разработки серверных приложений, включая взаимодействие с базами данных и создание API;
  • Опыт в Linux на уровне уверенного пользователя, как плюс уровень администратора;
  • Не менее 5 лет работы на позиции разработчика веб-приложений или систем с похожей сложностью и масштабом;
  • Знание и понимание принципов объектно-ориентированного программирования (ООП);
  • Понимание протоколов обмена данными (например I2C/SPI, UART, Modbus, MQTT) для взаимодействия с датчиками;
  • Знание принципов работы веб-серверов и опыт разработки API;
  • Опыт разработки и интеграции с внешними API, умение работать с REST;
  • Знание и опыт работы с реляционными базами данных (например, MySQL, PostgreSQL, TimeScaleDB) и/или NoSQL базами данных, например, MongoDB;
  • Умение проектировать эффективные схемы баз данных и оптимизировать запросы;
  • Знание протоколов и стандартов, таких как RESTful, SOAP, GraphQL;
  • Желательно иметь опыт развертывания и управления веб-приложений на серверах:
    — с использованием веб-сервера Tornado(в идеале), gunicorn, uvicorn
    — с использованием контейнеризации (Docker) или оркестрации (например, Kubernetes);
  • Понимание принципов безопасности и защиты данных при разработке веб-сервиса;
  • Опыт работы с системами контроля версий (например, Git);
  • Умение работать в команде и хорошее понимание процессов разработки ПО;
  • Умение документировать, писать чистый, эффективный и легко поддерживаемый код;
  • Большим плюсом будет навык управления командой разработчиков, умение оценить объём поставленных задач и составить план работ.

Дополнительно:

  • Навыки тестирования кода и оптимизации его производительности;
  • Знание языка C, опыт работы с микроконтроллерами — будет плюсом;
  • Опыт работы с Python-библиотеками для считывания данных с датчиков освещения, температуры, влажности, давления, IoT-устройствами — будет плюсом;
  • Владение UML и навыки проектирования ПО и анализа требований;
  • Предпочтительно иметь понимание основных принципов и технологий, используемых в тепличных комплексах, таких как автоматизация полива, контроль температуры, управление освещением и т.д.
  • Предпочтительно знание или опыт с JavaScript или его подмножествами (TypeScript, Vue, Node).

Условия:

  • Официальное оформление в полном соответствии с ТК РФ, полостью белая заработная плата;
  • Испытательный срок 3 месяца, может быть сокращен при успешном выполнении задач;
  • Место работы по адресу: СПб, Новочеркасский пр.,58;
  • Оклад — 80 000 руб. + премии по итогам работы, совокупный доход 140 000 руб.на руки;
  • Рабочий день с понедельника по пятницу 10-00 до 18-30, обеденный перерыв 50 минут, суббота-воскресенье — выходные дни;