Требования к знаниям:
опыт разработки на языке С/С++ от 5 лет;
особенности применения pure C++/STL в режиме ядра;
особенности обработки исключений в режиме ядра (С exceptions, SEH/VEH, C++ exceptions, etc.);
особенности работы с памятью в режиме ядра (Non/Paged pools, heap, stack allocations, etc.);
особенности работы с многопоточностью в режиме ядра (async, thread, execution context,etc.);
написание высокопроизводительного, объектно-ориентированного кода на C/C++ с использованием современных методик (interface driven, patterns, cross-compilations/platforms);
архитектура ядра, модули ядра;
стадии загрузки и инициализации ядра и его модулей;
архитектура моделей драйверов (WDM, KMDF, UMDF, port driver, mimiport driver);
архитектура логических и физических драйверов и их объектов (driver object, device object, control device, filesystem drivrer, physical device driver, virtual driver, user mode driver);
архитектура стека драйверов ( Pnp matches, hardware id, device path id, device objects tree);
архитектура и принципы взаимодействия между драйверами, их устройствами и системными модулями ядра (Irp path : irql path, build path, flow path, completion path);
архитектура и принципы работы Io-manager (irp structure, async irp, sync irp, propogation irp, etc.);
типы запросов ввода-вывода (irp based, fast io, paged io, chached io, scatter/gather, dma, etc.);
подсистема асинхронного ввода-ввода (DPC, APC, polling, io-completion ports, etc.);
подсистема синхронизации (sync premitives objects, waitable objects, etc.);
архитектура драйверов файловой системы (layred fs, top level irp, etc.);
взаимодействие между системными модулями ядра и драйвером файловой системы (cache manager, memory manager, etc.);
минифитры файловой системы (FltMgr.lib);
архитектура стека устройств (pnp relations/matches, pnp major irp, etc.);
взаимодейсствие с устройствами (device arrival/registration, hal functions, dma functions, pnp functions, etc.);
взаимодействия между системными модулями ядра и драйвером устройства (ISR, polling, etc.);
Windbg (windbg plugins, virtual machine debugging, hot-system debugging, etc.);
IDA (visible/hidden import/export disassembly, etc.);
BSOD investigation automation (windbg scripting, shell/python scripting, etc.);
автоматизация тестирования драйверов режима ядра.
Условия:
Работа над собственным, реально интересным проектом, одним из лидеров в своей области.
Профессиональная команда, которая поддерживает инициативу, прислушивается к мнению друг друга, делится опытом (средний период работы в компании – 5 лет).
Возможность участия в конференциях и митапах.
Официальное оформление с первого дня.
Оплачиваемый отпуск (25 календарных дней) и больничный, профессиональная литература, чай/кофе, регулярные корпоративные мероприятия, поездки, экскурсии, страйкбол, пейнтбол, байдарки, выезды на природу и другое.