Новодмитровская улица 2Б
Компания «ТехАргос» — аккредитованная ИТ-компания и разработчик Российских решений в области создания телекоммуникационного оборудования и систем обеспечения информационной безопасности.
Немного о нас:
В число наших клиентов вошли ведущие операторы связи, телеком-операторы (провайдеры), предоставляющий комплекс высокотехнологичных услуг, включая Интернет, цифровое и интерактивное телевидение.
Открыты новые направления разработки, связанные с созданием образцов телекоммуникационного оборудования и информационной безопасности.
Наш флагманский проект - это создание 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. Подходов к созданию стандарта разработки компании;
Умения:
- Планировать архитектуру прикладного ПО в том числе для высокопроизводительных, масштабируемых и отказоустойчивых решений. Знание стилей архитектуры.
- Уяснять высокоуровневые задачи от Product Owner (РО) с последующей декомпозицией системы на компоненты, исходя из функциональных и нефункциональных требований к разрабатываемым решениям.
- Разрабатывать и верифицировать техническое задание на разработку прикладного ПО.
- Декомпозировать техническое задание на задачи для разработчиков.
- Подбирать оптимальные технологии, языки программирования, базы данных, библиотеки и инструменты для технической реализации идеи PO.
- Проводить оценку существующей архитектуры и предлагать решения для её улучшения и масштабирования;
7. Ориентироваться в доменных стандартах и спецификациях (по ФСТЭК и того, на чем основаны их требования -- MITRE Attack framework, FIPS и т.п. )
- Следить за реализацией проекта, анализировать технические метрики, выявлять и устранять ошибки;
- Осуществлять поиск узких мест в структуре и реализации высокопроизводительных, отказоустойчив функциональных систем;
- Описывать (документировать) предложенные решения, API, структуры данных и алгоритмы.
- Совместно с Tech Lead разработчиков грамотно и с достаточной степенью детализации описать задачу разработчику.
- Разрабатывать архитектурную и техническую документацию.
- Изучать новые инструменты и технологии для улучшения архитектуры прикладного ПО
Навыки
1. В программировании на С, С++ (не ниже Senior), Python, Go (Junior и выше)
2. Работы с БД.
3. Защите и обосновании выбранного подхода как высшему менеджменту, так и нижестоящим подразделениям - аналитикам, разработчикам;
4. Работы в Confluence, Jira, GitLab;
5. Разработке технических заданий, структурно-функциональных схем решений, блок-схем алгоритмов и другой документации для разработки;
6. В использовании сервисов Linux (FRR, D-bus) и фрэймворков DPDK, CLIXON.
7. В создании стандарта разработки компании;
8. В использовании генераторов документации;
9. Исследовании новых областей, технологий, инструментов и подходов;
Soft skills:
· командной работы;
· тайм-менеджмента;
· критическое, системное мышление;
· широкий кругозор, позволяющий выходить за стандартные рамки и находить инновационные решения;
· высокая интенция на постоянное развитие и повышение своей квалификации;
· целеустремлённость;
· ответственность;
· стрессоустойчивость, способность работать в постоянно меняющихся условиях;
· организованность, самодисциплина;
· умение работать в сжатые сроки, соблюдение тайм-менеджмента;
· желание и стремление передавать свой опыт другим членам команды.