Senior C++ Developer
In this position, you will work on building efficient, low-overhead software solutions for both Windows and Linux environments, creating custom data structures, algorithms, and memory management solutions.
Key Responsibilities:
- Design, develop, and optimize low-level C++ code, focusing on performance and efficiency with minimal reliance on higher-level abstractions.
- Write custom data structures and algorithms tailored to the needs of the system, ensuring high performance and low resource usage.
- Handle manual memory management, optimize CPU cycles, and implement custom allocators and memory pools for performance-critical applications.
- Troubleshoot and debug complex performance issues, memory leaks, and low-level system bugs using tools such as GDB and WinDbg.
- Maintain a strong focus on writing clean, maintainable code while ensuring high performance and stability across both Windows and Linux platforms.
- Write and execute unit tests to validate system-level software, ensuring it meets high standards of reliability and performance.
Required Skills and Experience:
- 4+ years of hands-on experience in C++ programming, with a focus on low-level, system-level, and performance-critical applications.
- Solid experience with
manual memory management
, including custom allocators, raw pointers, and low-level resource management. - Strong knowledge of
multi-threading
, synchronization, and concurrency in C++, using primitives such as atomic operations, spinlocks, and mutexes. - Expertise in
systems programming
and understanding of OS internals on both Windows
and Linux
(kernel, memory management, file systems, etc.). - Ability to optimize software for both
CPU cycles
and memory usage
, ensuring high efficiency and minimal resource consumption. - Proficient in debugging and profiling tools.
- Extensive experience with
CMake
, Visual Studio
, GCC
, or other build and development tools on both Windows and Linux platforms. - Experience with
unit testing
frameworks such as Google Test
, ensuring code quality and correctness. - Strong understanding of
system architecture
, including hardware-software interaction, CPU, memory, and I/O. - Experience working in
containerized
environments.