Job Title: Senior C++ Developer (System Programming, DLP / Information Security)
About the Company — a leading Russian developer of information security tools. For over 15 years, they have been creating a flagship product — a DLP system.
What does this mean?
The software is a complex, multi-component "black box" that operates within corporate networks. We collect and analyze all transmitted information: emails, messengers, printouts, and traffic on end-user devices. Inside the system, there's a proprietary full-text search engine and horizontally scalable databases.
Key Feature:
We actively utilize undocumented OS features for data interception. This goes beyond just WinAPI; it involves working at the kernel, driver, and injection mechanism levels.
What You'll Be Doing (Actual Tasks):
This is a System Software Engineer position with a focus on Research & Development. You won't be writing simple GUIs or CRUD operations. Your task is to create what's not found in textbooks.
Your day will consist of:
- Research and Implementation: Studying how modern OS (Windows 10/11, Linux, Mac) process data and finding ways to intercept this flow before it's encrypted or sent. Expanding DLP capabilities.
- Cross-Platform Code Development: Writing C++ code that runs stably across Windows, Linux, and Mac. Library-based, elegant, and testable.
- Kernel-Level Work: Developing drivers (WFP, NDIS, Kernel Extensions), working with system calls, and injecting into third-party application processes (legitimately, as part of the product).
- High-Load System Optimization: Our product processes gigabytes per hour. You need to be skilled in memory optimization, thread management, and debugging race conditions in multithreaded code.
- Architecture: You won't just be writing code; you'll be making decisions. We don't have pre-written technical specifications. We have a business task (e.g., "we want to intercept this"), and how to achieve it is your responsibility.
Technical Requirements (Strict Filter)
Mandatory (Hard Skills):
- C++ (17/20): Fluent proficiency. Ability to write template code, understanding of RAII, move semantics. Code must be strict and well-reasoned.
- System Programming: Deep knowledge of WinAPI or POSIX API (Linux). You should understand how processes, threads, virtual memory, file systems, and IPC work at the kernel level.
- Multithreading and Debugging: Experience in developing high-load network applications. Confident use of WinDBG or GDB for analyzing crash dumps. You should be able to read call stacks and find the cause of production failures.
- Tooling: CMake, Git, Bash. Ability to configure builds for different platforms.
- Experience: 7+ years
Will be a significant plus (but not mandatory):
- Experience developing drivers for Windows (WDF, WDM) or Linux (LKM).
- Understanding of process injection mechanisms (CreateRemoteThread, SetWindowsHookEx, LD_PRELOAD, ptrace).
- Experience in reverse engineering or working with an assembler-level debugger.
- Understanding of OS security models (ACL, Mandatory Integrity Control, SELinux, AppArmor).
Working Conditions (Honest and Transparent)
Work Format:
- Probationary Period / Internship (10 working days): This is the "entry ticket to the company." You undergo an intensive internship in the office. After successful completion, you can choose between office, hybrid, or remote work.
After the Internship:
- In Moscow, St. Petersburg, Yekaterinburg, Novosibirsk, Kazan, Krasnodar, Rostov-on-Don, Khabarovsk — strictly office-based during the probationary period, followed by possible hybrid/remote work.
- If in another city in the Russian Federation — fully remote after a successful internship.
- Schedule: 09:00 to 18:00 Moscow time. Strict adherence to the Moscow time zone.
Benefits and Bonuses:
- Official employment according to the Labor Code of the Russian Federation.
- Voluntary medical insurance (DMS).
- Training: No fixed budget, but if you can justify the necessity of a course or conference, we will cover it upon application.
Why Apply?
- Interesting Tasks. You won't be fixing legacy features. You'll be researching how the OS actually works and applying this knowledge in a commercial product.
- Freedom of Decision-Making. We don't have ready-made technical specifications. You are given a business task, and you propose a solution. If it works, you're a hero.
- Stability. The company has been on the market for over 15 years, the product is mature, and the team consists of 80–100 developers of various levels (middles, seniors, leads). We are not a startup that will close tomorrow.
- Product Influence. You will participate in architectural discussions and make decisions that impact how the system works under the hood.
Salary:
Grade level and exact figure are discussed after the interview and internship.
425,000 – 517,000 ₽ before tax (Gross)