Лаборатория Касперского
Senior Developer C (KasperskyOS, Toolchain Development)
1 мес. назад
RussiaSenior
casmc++llvmclanggccbinutilsgdb
Разработка стандартной библиотеки и механизмов загрузки динамических библиотек для микроядерной ОС KasperskyOS, с обеспечением качества и поддержки международных стандартов.
О компании
- Лаборатория Касперского
Обязанности
- Разработка стандартной библиотеки проекта KasperksyOS (вкл. поддержку совместимости с актуальными стандартами)
- Разработка механизма загрузки динамических библиотек (вкл. смежную поддержку со стороны тулчейна)
- Профилирование / отладка разрабатываемого кода
- Следование методологии SDL (вкл. покрытие тестами, фаззинг, статический / динамический анализ, анализ производительности)
- Участие в исследовании, декомпозиции, оценке и планировании работ
- Ревью коммитов в связанные репозитории в роли одного из мейнтейнеров
Требования
- Опыт 5+ лет разработки / портирования стандартных библиотек (преим. UNIX-like библиотек crt0, libc, libpthread, libdl, libm или аналогичных) или иного системного ПО
- Качественное представление о стандартной библиотеке в целом (функциональное значение, внутреннее устройство, точки соприкосновения с ядром операционной системы, запуск приложений, загрузка динамических библиотек, стандарты C / ANSI / ISO / IEC / POSIX и пр.)
- Знание теории операционных систем (архитектура, уровни привилегий, системные вызовы, прерывания, виртуализация, многозадачность, межпроцессное взаимодействие и пр.)
- Знание классических алгоритмов и структур данных
- Отличное знание C (преим. C17 и новее) с пониманием гарантий стандарта и навыками разработки безопасного кода
- Знание ASM (преим. X86-64, ARM64, RISC-V или MIPS32) как минимум на базовом уровне
- Знание C++ (преим. C++20 и новее) как минимум на базовом уровне
- Опыт кроссплатформенной разработки (преим. с помощью LLVM / Clang, GCC, Binutils)
- Опыт отладки сложных падений (преим. с помощью GDB)
- Опыт работы с системами сборки (преим. Make, CMake), инструментами автоматизации (преим. Bash, Python) и системой контроля версий (преим. Git)
- Опыт разработки в UNIX окружении (преим. Linux)
- Самостоятельность в работе над нетривиальными задачами / проблемами
- Готовность транслировать экспертизу и поддерживать сферу знаний проекта KasperskyOS в актуальном состоянии