WorkListВойтиОформить подписку
GI

Staff Software Engineer, Security Factory: Static Analysis

GitLab · DevOps-платформа
Откликнуться на сайте компании ↗

О вакансии

Откуда можно работать
Удалённо, находясь в США
из текста вакансии
Английский
требования разнятся: C1–C2
по другим вакансиям компании
Уровень
Lead
указан работодателем
Деньги
$153–259 тыс/год
указана работодателем в долларах
Даты
Опубликована 10.10 · видим у компании с 10.10 · проверена 02.11
дата публикации от работодателя
Почему в каталоге:Основана выходцами из Восточной Европы, Кавказа и Центральной АзииПодробнее о компании →

Описание переведено машинно с английского.

Суть роли

В качестве Staff Backend Engineer в команде Security Factory: Code Scanning в GitLab вы помогаете разработчикам находить и исправлять уязвимости в коде. Эти уязвимости находятся в написанном ими коде, а вы задаёте техническое направление для движка статического анализа, который их обнаруживает.

Ваша работа охватывает две взаимодополняющие части полного анализа безопасности. На стороне движка вы формируете, как набор инструментов статического анализа моделирует программу: парсинг исходного кода в промежуточные представления, разрешение символов, построение графов вызовов и отслеживание «запачканных» данных между файлами и языками. Вы определяете архитектуру и спецификации, по которым команда разрабатывает решения, и делегируете спецификации компонентов инженерам и AI‑агентам, которые их реализуют. На стороне оценки вы создаёте и применяете инструменты, которые тестируют, измеряют и проверяют результаты работы движка на эталонных приложениях с известными уязвимостями.

То, что движок может моделировать, и то, как мы измеряем его результаты, — части единой картины. Как Staff engineer вы держите эту картину, формируете долгосрочные технические цели команды и повышаете планку для каждого инженера. Мы строим движок с помощью AI‑агентов, которые пишут и проверяют код по написанным спецификациям под руководством человека. Мы ожидаем, что вы будете эффективно управлять этой работой, проявляя хорошее суждение, и помогать команде делать то же самое.

Что предстоит делать

  • Выступать в роли напрямую ответственного лица (DRI) за инициативы команды самого высокого уровня, от проектирования до поставки, выпускать крупные функции с минимальным руководством и формировать долгосрочные цели команды
  • Переводить системы, созданные отдельным инженером, в собственность команды через документацию, тесты и совместный ревью
  • Задавать техническое направление для AI‑поддерживаемых инструментов, реализующих, проверяющих и валидирующих изменения и результаты движка, проектировать проверки, определяющие, готово ли изменение, написанное агентом, к слиянию, и измерять качество обнаружения на эталонных приложениях с известными уязвимостями, повышая планку надёжности результата. Это включает правила статического анализа приложений (SAST), сопоставленные с CWE и OWASP, а также тестовые фикстуры, подтверждающие их работу.
  • Неcтить архитектуру модели программы (парсинг, разрешение символов, промежуточные представления, графы вызовов, анализ taint и потоков данных) и конвейера, преобразующего исходный код в находки, а также определять, как оба расширять на новые языки и фреймворки
  • Решать технические задачи самого высокого уровня сложности, активно искать трудные препятствия, влияющие на всю команду, и отстаивать улучшения качества, безопасности и производительности совместно с Product Management, UX и партнёрскими командами, такими как Code Security и Composition Analysis
  • Наставлять всех инженеров команды через code review и парное программирование, устранять блокирующие факторы их автономии и курировать определение и улучшение внутренних стандартов через ревью
  • Принимать участие в дежурных сменах для помощи в решении проблем эксплуатации продукта, безопасности и срочных инженерных вопросов
  • Определять общую архитектуру и спецификационные документы для движка, делегировать спецификации компонентов внутри них и вести их реализацию AI‑агентами и инженерами, работающими независимо, через поэтапные планы, небольшие проверяемые изменения и спецификации, синхронные с кодом
  • Создавать и поддерживать «harness», инструкции для агентов и агентские навыки, обеспечивающие надёжность кода, написанного агентом, включая отдельные агенты кодинга и ревью, правила и тесты, которые агенты кодинга не могут менять, независимые панели ревью агентов от разных поставщиков моделей, а также ограничения по производительности, API и зависимостям, с эскалацией рискованных изменений на человеческий ревью
  • Оставаться в курсе исследований в области анализа программ и безопасности, проводить AI‑поддерживаемые исследования и spikes, превращать результаты в прототипы, предложения и upstream‑вклады, включая ответственное раскрытие уязвимостей в проектах с открытым исходным кодом

Требования

  • Опыт создания собственного LLM‑инструментария, такого как harness, pipeline агентов или оценки, с умением определять, когда вывод надёжен, а когда нет
  • Обширный профессиональный опыт написания, тестирования и ревью production‑кода на Rust, Go или аналогичном системном языке, с глубиной в как минимум одном из них. Движок написан на Rust, обёртка‑анализатор на Go, а монолитная интеграция — на Ruby; мы ценим готовность работать со всеми этими технологиями.
  • Опыт оптимизации производительности и работы с контейнеризованными процессами и CI/CD (мы активно используем Docker)
  • Глубокие знания программного и статического анализа, такие как парсинг и AST, промежуточные представления (SSA, графы управления и вызовов), taint‑ и data‑flow‑анализ, вывод типов, инкрементные и фикс‑поинт вычисления, или написание правил обнаружения, с возможностью читать, оценивать и применять научную литературу
  • Глубокий опыт в области безопасности приложений, такой как исследование уязвимостей, безопасный code review или написание правил обнаружения, и уверенное владение классами уязвимостей (OWASP Top 10, CWE)
  • Доказанная способность ясно и лаконично объяснять сложные технические, архитектурные и организационные проблемы, а также писать архитектурные и дизайнерские спецификации, помогающие команде прийти к решению
  • Опыт самостоятельного решения неоднозначных, командных проблем и их вывода из концепции в production с минимальным руководством, с регулярными асинхронными обновлениями о прогрессе, блокировках, рисках и дальнейших шагах
  • Опыт определения общей архитектуры системы, делегирования спецификаций компонентов инженерам и AI‑агентам и надёжной их реализации
  • Доказанный опыт наставничества инженеров, повышения технического уровня команды и влияния на техническое направление через достижение консенсуса с коллегами и руководством

Будет плюсом

  • Знакомство с популярными веб‑ или мобильными фреймворками и тем, как они обрабатывают ввод, данные и конфигурацию
  • Опыт проектирования защитных механизмов для кода, написанного агентом, таких как mutation testing, fuzzing и CI‑гейты, которые агент кодинга не может изменять
  • Опыт взаимодействия с исследовательским сообществом, включая публикации, статьи о инструментах или upstream‑вклады в проекты с открытым исходным кодом в области анализа программ или безопасности

Условия и бенефиты

  • Диапазон базовой зарплаты для этой позиции указан только для резидентов Соединённых Штатов. Этот диапазон предназначен для отражения уровня базовой зарплаты в разных регионах США. Уровень и диапазоны зарплат определяются на основе интервью и оценки образования, опыта, знаний, навыков, способностей кандидата, сопоставления с другими членами команды, соответствия рыночным данным и географического положения. Базовый диапазон не включает бонусы, акции или льготы. Подробнее о наших льготах и акциях. Продажи также могут получать стимулирующие выплаты в размере до 100 % от предложенной базовой зарплаты.

Диапазон зарплаты в США

$152,800—$259,200 USD

  • Льготы для поддержки вашего здоровья, финансов и благополучия
  • Гибкий оплачиваемый отпуск
  • Группы ресурсов сотрудников
  • Компенсация акций и план покупки акций сотрудниками
  • Фонд роста и развития
  • Декретный отпуск

GitLab гордится тем, что является работодателем с равными возможностями и практикует позитивную дискриминацию. Политика GitLab в отношении найма, трудоустройства, карьерного развития и продвижения, повышения и выхода на пенсию основывается исключительно на заслугах, независимо от расы, цвета кожи, религии, происхождения, пола (включая беременность, лактацию, сексуальную ориентацию, гендерную идентичность или выражение), национального происхождения, возраста, гражданства, семейного положения, психических или физических инвалидностей, генетической информации (включая семейную медицинскую историю), статуса увольнения из армии, статуса защищённого ветерана (включая инвалидов‑ветеранов, недавно уволенных ветеранов, активных военнослужащих в боевых условиях или с наградными знаками, а также ветеранов, получивших медали за службу), или любого другого основания, защищённого законом.

Навыки

RustGoRubyDockerCI/CDstatic analysisprogram analysisSASTOWASPCWELLMAI agentsparsingASTSSAcontrol‑flow graphscall graphstaint analysisdata‑flow analysisperformance optimization

Подходите ли вы под эту вакансию

Сверка вакансии с резюме доступна тем, кто вошел. Войти