Вакансии

Программист C (Linux)Контактная информация
от 165000 RUR до вычета НДФЛ
Требуемый опыт работы: От 3 до 6 лет
Полная занятость, Полный день
Ближайшая станция метро:
Выборгская (Кировско-Выборгская линия)
Санкт-Петербург, Петроградская наб., 38а
personal@supertel.ru
тел. (812) 644-04-30 доб. 1103

ОАО "СУПЕРТЕЛ" - уникальное Российское предприятие, которое самостоятельно разрабатывает и производит современное оборудование проводной (оптической) связи по технологиям OTN, IP, SDH, DWDM; на сегодня в производстве находится порядка 20 типов оборудования.

Для участия в разработке нового оборудования неспешно ищем опытного программиста.

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

  • Работа в команде опытных специалистов
  • Участие в разработке современного и перспективного оборудования проводной (оптической) связи
  • Разработка системного и прикладного ПО (Embedded Linux) для телекоммуникационного оборудования
  • Сопровождение и отладка разработанного ПО

Обязательные требования:

  • Опыт разработки на C не менее 3-х лет
  • Разработка многопоточных приложений и понимание применения объектов синхронизации (mutex, semaphores, etc.)
  • Знание средств разработки и отладки (gcc, gdb, Makefile, CMake, Shell scripting, etc.)
  • Знание систем контроля версий git или mercurial
  • Умение разбираться в чужом коде
  • Чтение технической документации на английском языке
  • Желание самостоятельно решать сложные задачи
  • Дополнительным преимуществом для Вас будут:
  • Умение писать код с минимальной избыточностью
  • Опыт разработки драйверов для Linux
  • Опыт работы с системой сборки Yocto/OpenEmbedded
  • Опыт работы с процессорами архитектуры PowerPC, ARM
  • Опыт разработки ПО для микроконтроллеров
  • Опыт работы с RTOS
  • Опыт работы с аппаратными отладчиками JTAG
  • Опыт работы с сетевым оборудованием (L2/L3) либо оборудованием связи

Мы предлагаем:

  • Достойную "белую" заработную плату (уточняется в зависимости от Ваших знаний и опыта по результатам собеседования)
  • Оформление по трудовому кодексу
  • Работу с использованием передовых технологий
  • Карьерный и профессиональный рост
  • Полис ДМС + льготное страхование для членов семьи

Приветствуется Ваше резюме с описанием опыта работы и, если есть, примеры кода, разработанного Вами (либо ссылка на него, если он есть в открытом доступе).

Поскольку работа сложная, а требования к соискателю высокие - перед собеседованием обязательно потребуется выполнить тестовое задание:

Простите за последующий длинный текст - этот сайт перестал поддерживать ссылки на внешние ресурсы :(

Тестовое задание и условия его выполнения:

Тестовое задание должно быть выполнено на «голом» C под Linux.

Технологии и языки, применяемые для web|desktop (типа python и CGI) использовать нельзя. По результатам, с одной стороны - Вы немного познакомитесь с нашими задачами, с другой стороны – мы познакомимся с Вашим стилем программирования. Прошу не стесняться обращаться, если текст задания вызывает вопросы.

Реализацию задачи нужно выслать мне; по результатам анализа - либо мы договариваемся о дате/времени собеседования, либо Вы получаете отказ.

Если Вас смущает передача 100% готового кода задания, то для предварительного просмотра достаточно ~70% исходников и исполняемого файла; остальное можно принести на собеседование.

Объясню, почему так : задачи, которые будут перед Вами стоять, в случае, если мы договоримся о сотрудничестве, несколько сложнее приведённых в тесте и решать их надо будет самостоятельно. Если Вы не справляетесь с тестами – нет смысла говорить о большем. Желаю Вам успеха и надеюсь, что наша позиция будет правильно понята.

Хотя, время, затраченное Вами на реализацию тестового задания для нас в общем-то некритично и не является главным при оценке результатов, нам бы хотелось получить решение первой задачи в течение двух недель. Разумеется, по объективным причинам, время на решение может быть продлено - пожалуйста, сообщите об этом.

Текст тестового задания:

Два типа блоков – «control block» и «client1», «client2», …. , «clientN» соединены в одноранговую локальную сеть.

control block, он же блок управления, он же «мастер-контроллер»; может быть в составе сети только в одном экземпляре

Блоки индикации, они же "Client#", имеются в количестве от 3 до 200.

Все блоки распределены в пространстве и установлены на улице. Блоки объединены локальной сетью Ethernet. Каждый блок индикации имеет 2 датчика: датчик температуры и датчик освещенности.

Мастер-контроллер в произвольные моменты времени отправляет в блоки индикации данные для отображения; например: текст, температура, время и яркость. Так же, мастер-контроллер периодически (1 раз в 5 секунд) опрашивает все датчики с блоков индикации, рассчитывает среднее значение температуры и освещенности. Среднее значение температуры используется для отправки в блоки индикации в виде текста, а среднее значение освещенности используется для подстройки яркости отображаемой информации. Мастер-контроллер устанавливает значение яркости во все блоки индикации в соответствии с расчетным средним значением освещенности.

Иногда случается так, что блок управления теряет связь с блоками индикации (как повезёт - может со всеми, а может только с частью), поэтому блоки индикации остаются без управления на время более 5 минут. В этом случае роль блока управления должен взять один из блоков индикации, до того момента пока основной блок управления снова станет доступен. Блок индикации, который взял роль мастер-контроллера, так же может потерять связь с блоками индикации (как повезёт - может со всеми, а может только с частью), после чего должен выбраться новый мастер-контроллер.

Количество блоков индикации может меняться в процессе работы.

До момента подключения к сети мастер-контроллер ничего не знает о клиентах.

  1. Предложите и реализуйте в программе алгоритм выбора нового мастера между блоками индикации при потере соединения с блоком управления (основным блоком управления или блоком индикации, выполняющим функции мастер-контроллера). Описание алгоритма нужно представить в виде отдельного текстового файла.

  2. Напишите программу-эмулятор блока индикации, соответствующую описанию.

  3. Напишите программу-эмулятор блока управления, соответствующую описанию.

Ключевые навыки: Linux, embedded, C/C++, встроенное ПО, Multithread Programming, Embedded Linux

Технический писательКонтактная информация
от RUR до вычета НДФЛ
Требуемый опыт работы: От 1 года до 3 лет
Полная занятость, Полный день
Ближайшая станция метро:
Выборгская (Кировско-Выборгская линия)
Санкт-Петербург, Петроградская наб., 38а
personal@supertel.ru
тел. (812) 644-04-30 доб. 1103
Обязанности:

- разработка и оформление документации к разрабатываемым изделиям в соответствии с ГОСТ 19;

- документарное сопровождение проектов (проверка, корректировка, актуализация, согласование, подготовка для сдачи в архив);

- делопроизводство отдела;

- взаимодействие со структурными подразделениями компании.

Требования:

- оконченное высшее образование в области телекоммуникационных систем связи.

Условия:

- интересная работа с использованием передовых технологий;

- обучение и совершенствование своих навыков;

- достойная оплата труда и возможность карьерного роста;

- возможность участия в интересных проектах и реализации профессионального опыта;

- ДМС по окончании испытательного срока (+ возможность льготного страхования членов семьи).

Ключевые навыки: ГОСТ, Деловая коммуникация, Работа с большим объемом информации, Единая государственная система делопроизводства