Role Purpose:
The Senior Engineer - Software Development is responsible for leading the design, development, and implementation of software solutions that align with business objectives.
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 and memory leaks.
- 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 & Qualifications:
- 5+ years ‘experience hands-on experience in C++ programming, with a focus on low-level, system-level, and performance-critical applications.
- Strong background designing software architecture.
- Solid experience with manual memory management, including custom allocators, raw pointers, and low-level resource management.
- 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.