Expert Software Engineer
Job Summary
The Expert Software Engineer will architect and maintain high-performance C++ applications while managing system reliability and scalability. This role involves leading technical initiatives, including CI/CD pipeline design, advanced memory management, and cross-functional team collaboration. The successful candidate will mentor junior engineers and drive best practices in a Linux-based development environment.
Responsibilities
- Architect and maintain high-performance C++ applications
- Design and manage CI/CD pipelines and container workflows
- Lead code reviews and enforce technical standards
- Mentor junior and mid-level software engineers
- Resolve complex system issues and performance bottlenecks
Required Skills
- Expert C++ programming (C++11/14/17/20)
- Mainframe skills (COBOL, CICS, JCL, DB2, VSM)
- Multithreading and memory management expertise
- Proficiency with Docker, CMake, and CI/CD tools
- Linux-based environment and Python scripting
Job Details
Roles & Responsibilities:
- Architect, develop, and maintain complex, high-performance applications in C++ (C++11/14/17/20 and beyond).
- Take ownership of critical system components with a focus on reliability, scalability, and performance.
- Design and implement solutions involving advanced memory management and concurrent/multithreaded architecture.
- Lead code reviews and enforce coding standards and best practices across the team.
- Define and maintain CMake-based build systems and manage multi-platform build configurations.
- Design and maintain CI/CD pipelines and Docker-based containerisation workflows.
- Diagnose and resolve complex issues using tools such as GDB and Valgrind; lead performance profiling and tuning initiatives.
- Collaborate with cross-functional teams in a Linux-based development environment.
- Contribute to and maintain automation scripts using Python and shell scripting.
- Interact with relational data sources using SQL where required.
- Manage source code, branching strategies, and release workflows using Git.
- Mentor junior and mid-level engineers; drive technical growth across the team.
- Participate in system design discussions, technical planning, and effort estimation.
Required Skills & Experience:
- 10+ years of experience in Mainframe Skills: COBOL, CICS, JCL, DB2 and VSM.
- Expert understanding of dynamic memory allocation, RAII, smart pointers (unique_ptr, shared_ptr, weak_ptr).
- Experience diagnosing and resolving memory leaks, dangling pointers, and buffer overflows.
- Familiarity with custom allocators and memory pool strategies.
- Strong command of the C++ threading model (std::thread, std::mutex, std::atomic, std::condition_variable).
- Experience with lock-free and wait-free programming patterns.
- Ability to identify and resolve race conditions, deadlocks, and thread-safety issues.
- Expert-level experience with CMake for cross-platform build configuration.
- Proficiency with Docker for containerised development and deployment environments.
- Hands-on experience designing and maintaining CI/CD pipelines (e.g., Jenkins, GitLab CI, GitHub Actions).
- Advanced use of GDB for low-level debugging and post-mortem analysis.
- Proficiency with Valgrind (Memcheck, Helgrind, Callgrind) for memory and thread analysis.
Qualifications:
- Bachelor's or master's degree in computer science, Software Engineering, or a related technical discipline.
- Equivalent industry experience will be considered in lieu of formal education.
- Excellent problem-solving and analytical skills.
- Strong communication and interpersonal skills.
- Ability to work independently and as part of a team.