Senior Systems Software Engineer (Networking and Security)
Шукаємо досвідченого інженера із системного програмування, якому цікаво розуміти складне програмне забезпечення на рівень глибше.
Робота лежить на перетині системного програмування, комп’ютерних мереж, вбудованих систем і досліджень безпеки. Частина завдань передбачає розробку нового програмного забезпечення. Інші можуть починатися з незнайомої прошивки, виконуваного файлу, мережевого протоколу або пристрою, роботу яких потрібно зрозуміти, відтворити та зробити спостережуваною.
Це передусім інженерна роль. Нам важливі сильна фундаментальна підготовка, вміння системно розбиратися в незнайомих технологіях і здатність створювати надійні технічні рішення. Попередній професійний досвід у кожному з перелічених напрямів не обов’язковий.
Обовʼязки:
- Проєктувати, розробляти, тестувати й налагоджувати системне програмне забезпечення на C, C++ та Rust.
- Розв’язувати складні й не до кінця визначені технічні задачі, самостійно розбиваючи їх на зрозумілі етапи.
- Працювати з Linux, мережевим програмним забезпеченням, вбудованими та обмеженими в ресурсах системами.
- Досліджувати незнайомі програми, прошивки та мережеві протоколи, зокрема коли документація або вихідний код відсутні.
- Створювати контрольовані середовища для відтворення поведінки систем, налагодження, трасування та автоматизованого тестування.
- Аналізувати роботу мережевого програмного забезпечення на різних рівнях: від пакетів і системного мережевого стека до поведінки окремого процесу.
- Розробляти або модифікувати Linux- та OpenWrt-based системи й прошивки.
- Перетворювати результати досліджень на практичні рішення: робочий код, інструменти, тести, виправлення, засоби захисту або зрозумілу технічну документацію.
Вимоги:
- Сильні навички програмування та налагодження на C або C++. Досвід із Rust буде перевагою; так само підійде готовність швидко його опанувати.
- Глибоке розуміння алгоритмів, структур даних, керування пам’яттю, багатопотоковості та продуктивності.
- Розуміння архітектури комп’ютера й основ роботи операційних систем.
- Впевнене володіння Linux та інструментами системної розробки.
- Добре розуміння TCP/IP, маршрутизації та принципів роботи мережевого програмного забезпечення.
- Сильні навички технічного аналізу: вміння формувати гіпотези, перевіряти їх і знаходити першопричину складної проблеми.
- Здатність самостійно працювати з неоднозначними задачами та відповідати за результат.
- Уміння чітко пояснювати технічні рішення усно й письмово.
Буде перевагою:
- Досвід роботи з вбудованими системами, прошивками, завантажувачами або OpenWrt.
- Аналіз програм чи прошивок без вихідного коду.
- Досвід роботи з налагоджувачами, дизасемблерами, емуляторами та інструментами аналізу мережевого трафіку.
- Знання VPN, WireGuard, мережевих фільтрів або системного мережевого стека.
- Досвід розробки драйверів, модулів ядра або інших низькорівневих компонентів.
- Досвід дослідження вразливостей, фазингу, пентестингу або defensive/offensive security.
Ми не очікуємо, що одна людина вже має досвід у всіх цих напрямах. Якщо ви сильний системний інженер, любите доходити до суті складних технічних проблем і хочете розвиватися в напрямі security research, будемо раді познайомитися.