We are looking for Systems Level Software Developer for Windows reports to the Director of Development. The incumbent is responsible for all system R&D tasks, assigned by the Director of Development, related software architecture and interfaces design for existing and forthcoming components.
Responsibilities
- Be effective in the role of user-mode components developer for Windows platform with the focus on Cyber Protection solutions.
- Be effective it the role of the moderately experienced reverse engineer. Be willing to acquire advanced skills in reverse engineering.
- Participate in software architecture and interfaces design for both Windows-specific and cross-platform components developed and maintained by the Team. Participate in integration of those components to higher-level components or products developed by other teams.
- Maintain existing codebase that the Team is responsible for, fix bugs in components in a timely manner. Widely communicate with other teams to investigate and resolve complex issues that might require efforts from several different teams.
- Assist the Team Director of Development in driving the professional growth of the Team members by sharing knowledge and experience in the following areas: Windows internals, security, C and modern C++ development and information security.
- Ensure that development progress, current issues and risks are clearly communicated to the Director of Development.
Requirements
- Bachelor Degree in Computer Science, Information Security or the equivalent engineering education and experience.
- Good knowledge and coding experience in C/C++ languages. Sufficient understanding of Windows platform internals. Knowledge in information security field and/or experience in developing security solutions are the plus.
- 5 years of overall development experience on Windows. Experience in writing asynchronous, thread-safe and concurrent code. Experience in writing production-grade code is mandatory, willing to improve this skill.
- Good understanding of standard libraries, algorithms and operations complexity
- AI programming experience is the plus
- Experience developing highly efficient libraries, services/daemons
- Strong user-mode debugging skills. Willing to learn and improve the skill.
- Willingness to learn and grow in the professional team environment
- Some reverse engineering skills are a plus though not mandatory, some experience with IDA Pro or other similar tools. The same applies to having the good knowledge of assembly language on x86/AMD64 CPU architectures, not mandatory, but the plus.
- Knowledge and experience in software architecture and interfaces (API) design is mandatory. Experience in developing robust and scalable software solutions, performance analysis and tuning would be a plus.
- Linux/MAC API and OS architecture internal knowledge would be a plus