Build engineer (IP Video Management Systems)

от 4 000 до 5 000 USD на руки

Вакансия в архиве

Работодатель, вероятно, уже нашел нужного кандидата и больше не принимает отклики на эту вакансию

Показать описание вакансии

Требуемый опыт работы: 3–6 лет

Полная занятость, полный день

NetworkOptix - американская IT-компания, которая занимается разработкой систем видеонаблюдения (IP Video Management Systems). Мы делаем мощное, но при этом простое в использовании программное обеспечение для управления сетевым видео. Семь лет работы талантливых людей - и мы превратились в успешную компанию, которая активно ищет новых людей. Мы заняли 7-е место по скорости роста среди IT-компаний в США (по оценке Inc.5000 в 2016г.). Уже сегодня наша система видеонаблюдения активно используется в Северной Америке, в Европе, в Азии.

Наш продукт – система видеонаблюдения Nx Witness. Можно скачать бесплатную версию и попробовать ее в действии. В Северной Америке мы выпускаемся под брендами DW Spectrum и WAVE. Наша штаб-квартира находится в Лос-Анджелесе, а офис разработки – в Москве.

Кого мы ищем?

Наш продукт активно развивает новые направления и нам требуется Build engineer, которому интересно заниматься данным развитием, уделяя особое внимание процессам улучшения инфраструктуры разработки ПО.

Мы ищем человека в отдел разработки, который будет важным звеном между разработчиками и CI-отделом, и который будет решать задачи, связанные с построением и повышением эффективности системы сборки для нескольких команд разработки.

Нам нужны люди, готовые вместе с нами делать красивый, надёжный, быстрый и удобный в использовании продукт. Нам нужны люди мотивированные, инициативные, умеющие отстаивать свои идеи, любящие работу и умеющие отдыхать. Мы больше заинтересованы в тех людях, которые предпочитают и умеют администрировать себя сами, а не нуждаются в постоянном руководстве. Если вы любите программировать, стараетесь развиваться и узнавать что-то новое каждый день - напишите нам!

К сожалению, мы не рассматриваем кандидатов на удаленную работу.

Какие навыки нам нужны?

- Deep understanding of at least one build system (CMake, Maven, Gradle, Ant, automake, MSBuild).

- Advanced Linux administration skills for at least one Debian-based Linux distribution: advanced working with command-line (ps, grep, redirection), services (init.d, upstart, systemd), package managers (dpkg, apt).

- Some Bash scripting experience: loops, functions, escaping/quotes/globs, file descriptors.

- Some Python programming experience (ability to implement a simple algorithm without googling).

- Some experience with embedded Linux and cross-compiling for ARM.

- Deep understanding of Linux C/C++ toolchain processes of compiling and linking: dynamic libraries (rpath/rpath-link), exported symbols control (attribute-visibility), C++ name mangling, ldd/readelf.

- Some C++ knowledge: C subset, extern "C", namespaces, unnamed namespaces and "static", classes, templates, smart pointers.

- Some Visual Studio and Windows programming experience.

- Good knowledge of at least one general-purpose programming language (C, C++, C#, Java, Python, Delphi).

- Some experience with distributed version control systems (Git, Mercurial).

Что может пригодиться?

- Advanced Bash scripting: local variables and variable types, arrays, variable substitutions ("${}"), regex, error handling ("set -e", exit status, traps).

- Windows administration skills: services, file system permissions, Cygwin, MSI installers.

- Some MacOS/iOS programming.

- MacOS administration skills (knowing differences from Linux).

- Expert Python knowledge, including Python 3.

- Expert C++ knowledge: SFINAE, atomics, C++17 features, STL.

- Debugging with gdb/strace; analyzing crashes.

- Distributed C++ compiling/linking: ccache/distcc.

- Using Qt in C++ programs.

- Building projects with Qt.

- Expert CMake knowledge: cmake_parse_arguments, configure_file, GLOB, find_package, lists, regex.

- Using Conan.

Что надо будет делать?

Основные обязанности:

- Support cross-platform (Linux x86 and ARM, Windows, MacOS, iOS, Android) CMake-based build system.

- Analyze and implement CI team requirements for the build system.

- Keeping track of CI build failures. Collaborating with CI team on investigating failed builds.

- Support artifact build/sync system (currently Python-based in-house tool).

- Support distribution package building (MSI/WixSetup, DEB, etc.).

- Support build system of Nx SDKs and their samples; assisting in developing and testing SDKs.

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

- Investigate compiler issues (like incomplete C++ support), handle migration to new compiler versions.

- Fix C++ compile/link errors introduced by programmers.

- Investigating crashes as a tier 1, dispatching to programmers.

- Support ARM device scripts (shell, python).

- Investigate customer issues with Nx SDK as tier 2 (after an issue is identified as potentially related to SDK/sample code or build system).

Our CI infrastructure is Linux hosts that contain virtual machines (Windows/Linux/MacOSX) that build and test our product.

Почему именно мы?

- Высокопрофессиональный и дружный коллектив (разработчики, инженеры по тестированию, инженеры). Каждый из нас - фанат своего дела.

- Действительно интересные задачи и проекты.

- Гибкий график, полный рабочий день. Можно приходить и уходить, когда вам удобно, единственное ограничение – к 14.00 все собираются вместе, и не уходят раньше 17.00.

- Курсы английского языка в офисе компании, начиная с уровня Intermediate.

- Офис в центре Москвы, м. Комсомольская, Бауманская, Красные ворота (10 мин пешком от метро).

- Весёлые совместные мероприятия в офисе и не только.

Ключевые навыки

CMakeMavenGradleANTautomakeMSBuildC/C++LinuxDebianBashPythonWindowsVisual StudioC#JavaGitMercurialMacOS, iOS, Android

Вакансия опубликована 24 октября 2018 в Москве

Написать сопроводительное письмоПисьмо отправлено

Сопроводительное письмо к отклику