Архитектор ПО (NGFW)

Дата размещения вакансии: 14.04.2025
Работодатель: ТехАргос
Уровень зарплаты:
з/п не указана
Город:
Москва
Новодмитровская улица 2Б
Требуемый опыт работы:
Более 6 лет

Компания «ТехАргос» — аккредитованная ИТ-компания и разработчик Российских решений в области создания телекоммуникационного оборудования и систем обеспечения информационной безопасности.

Немного о нас:

В число наших клиентов вошли ведущие операторы связи, телеком-операторы (провайдеры), предоставляющий комплекс высокотехнологичных услуг, включая Интернет, цифровое и интерактивное телевидение.

Открыты новые направления разработки, связанные с созданием образцов телекоммуникационного оборудования и информационной безопасности.

Наш флагманский проект - это создание NGFW (Next generation firewall). Мы стремительно растем, масштабируемся и ищем усиление в нашу команду профессионалов!

Задачи и зона ответственности:

1. Изучение существующей архитектуры ПО проекта, разработка плана развития архитектуры ПО проекта на основе принципов построения высокопроизводительных, масштабируемых и отказоустойчивых решений в области телекоммуникаций и информационной безопасности;

2. Разработка шаблонов проектирования и интерфейсов интеграции (взаимодействия) приложений и компонентов;

3. Валидация технических заданий (ТЗ) от системных аналитиков.

4. Декомпозиция задач разработчикам на основе ТЗ.

5. Управление проектами в Git Lab, Code review исходного кода на языках (C++, C)

6. Организация и контроль за документированием кода.

7. Разработка предложений по использованию open source инструментов для реализации основных и вспомогательных функций разрабатываемых решений.

8. Описание архитектуры и алгоритмов работы компонентов решения.

9. Внедрение систем документирования как код.

10. Внедрение подходов генерации исходного кода на основе метаданных.

11. Оценка трудоемкости реализации задач разработчикам.

12. Оказание помощи разработчикам в подборе оптимальных алгоритмов и framework при разработке компонентов.

13. Выбор оптимальных алгоритмов и инструментов для задач сериализации и десериализации.

14. Участие в создание стандарта разработки компании.

Hard skills:

Знания:

1. Стек сетевых протоколов, а также TLS, SSL, HTTP, HTTPS;

2. Принципов REST;

3. Компьютерные сети;

4. ОС Linux (предпочтительно Debian);

5. AAA протоколы, сервисы и распространенные нотации реализации;

6. Стандарты и методы обеспечения информационной безопасности, основные векторы атак на телекоммуникационное оборудование, AAA, MGNT и WEB-приложения;

7. Space-Based (SBA) и EDA архитектура;

8. Шаблоны проектирования и интеграции приложений. Подходов к интеграции приложений в распределённой архитектуре. Шаблоны ADR (Architecture decision records). Опыт работы и культура ведения;

9. Архитектурные стили. Методы сравнения архитектурных решений;

10. Подходов к документированию кода;

11. Методы и средства кодагенерации;

12. Методы и средства сериализации и десериализации данных;

13. Подходов и решений для реализации методологии документация как код;Распространенные нотации реализации;

14. В области Observability (сбор метрик, трассировка, алертинг) и понимание концепции OpenTelemetry. Подходы и решения для мониторинга основных параметров функционирования решения;

15. Смежных областей: системная аналитика, дизайн, инфраструктура, разработка, фронтенд, бэкенд, бизнес;

16. Принципы работы брокеров сообщений;

17. Основные алгоритмы и структуры данных, которые лежат в основе любого прикладного ПО;

18. Системы хранения данных (SAN, DAS) – общее представление;

19. Средства и способы построения отказоустойчивых решений;

20. Принципов масштабирования программных решений в части распараллеливания решаемых задач. Возможности, особенности, ограничения параллельного выполнения программных потоков;

21. Средства визуального проектирования прикладного ПО и распространённые нотации;

22. Подходов к созданию стандарта разработки компании;

Умения:

  1. Планировать архитектуру прикладного ПО в том числе для высокопроизводительных, масштабируемых и отказоустойчивых решений. Знание стилей архитектуры.
  2. Уяснять высокоуровневые задачи от Product Owner (РО) с последующей декомпозицией системы на компоненты, исходя из функциональных и нефункциональных требований к разрабатываемым решениям.
  3. Разрабатывать и верифицировать техническое задание на разработку прикладного ПО.
  4. Декомпозировать техническое задание на задачи для разработчиков.
  5. Подбирать оптимальные технологии, языки программирования, базы данных, библиотеки и инструменты для технической реализации идеи PO.
  6. Проводить оценку существующей архитектуры и предлагать решения для её улучшения и масштабирования;

7. Ориентироваться в доменных стандартах и спецификациях (по ФСТЭК и того, на чем основаны их требования -- MITRE Attack framework, FIPS и т.п. )

  1. Следить за реализацией проекта, анализировать технические метрики, выявлять и устранять ошибки;
  2. Осуществлять поиск узких мест в структуре и реализации высокопроизводительных, отказоустойчив функциональных систем;
  3. Описывать (документировать) предложенные решения, API, структуры данных и алгоритмы.
  4. Совместно с Tech Lead разработчиков грамотно и с достаточной степенью детализации описать задачу разработчику.
  5. Разрабатывать архитектурную и техническую документацию.
  6. Изучать новые инструменты и технологии для улучшения архитектуры прикладного ПО

Навыки

1. В программировании на С, С++ (не ниже Senior), Python, Go (Junior и выше)

2. Работы с БД.

3. Защите и обосновании выбранного подхода как высшему менеджменту, так и нижестоящим подразделениям - аналитикам, разработчикам;

4. Работы в Confluence, Jira, GitLab;

5. Разработке технических заданий, структурно-функциональных схем решений, блок-схем алгоритмов и другой документации для разработки;

6. В использовании сервисов Linux (FRR, D-bus) и фрэймворков DPDK, CLIXON.

7. В создании стандарта разработки компании;

8. В использовании генераторов документации;

9. Исследовании новых областей, технологий, инструментов и подходов;

Soft skills:

· командной работы;

· тайм-менеджмента;

· критическое, системное мышление;

· широкий кругозор, позволяющий выходить за стандартные рамки и находить инновационные решения;

· высокая интенция на постоянное развитие и повышение своей квалификации;

· целеустремлённость;

· ответственность;

· стрессоустойчивость, способность работать в постоянно меняющихся условиях;

· организованность, самодисциплина;

· умение работать в сжатые сроки, соблюдение тайм-менеджмента;

· желание и стремление передавать свой опыт другим членам команды.