> Markdown version of [/jobs/ext/1812321-expert-software-engineer](https://www.wearedevelopers.com/jobs/ext/1812321-expert-software-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Expert Software Engineer - **Company:** Ensono - **Location:** Phoenix, AZ, United States (Remote available) - **Experience:** Expert - **Salary:** $130,000.0 - $188,000.0 - **Contract:** Permanent contract - **Skills:** C++ (Programming Language), Customer Information Control System (CICS), CMake, COBOL (Programming Language), Profiling, Code Review, IBM DB2, Software Debugging, Linux, Memory Management, Github, Job Control Language (JCL), Integrated Development Environments, Python (Programming Language), Mainframes, Memory Leaks, Shell Script, Software Engineering, SQL Databases, Multithreading, Git, Build Management, Gitlab-ci, Git Flow, Information Technology, Multiplatform, Docker, Jenkins - **Published:** July 8, 2026 - **Apply:** https://dejobs.org/x/x/2436522A8C0E475C916AE90DC125A9D7/job/ ## About the Role * 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, * 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 * Soft Skills: Excellent problem-solving and analytical skills. Strong communication and interpersonal skills. Ability to work independently and as part of a team. ## Description 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 ## Related Videos - [Docker network without Docker](https://www.wearedevelopers.com/videos/1418-docker-network-without-docker) - [Code to Road in < 12 hours](https://www.wearedevelopers.com/videos/1082-code-to-road-in-12-hours) - [How a Small Team Shrank a Microsoft Monorepo by 94%](https://www.wearedevelopers.com/videos/1236-how-a-small-team-shrank-a-microsoft-monorepo-by-94) - [You’re a great coder? That alone won’t get you far: The soft skills secret in IT success](https://www.wearedevelopers.com/videos/1076-you-re-a-great-coder-that-alone-won-t-get-you-far-the-soft-skills-secret-in-it-success) - [Docker exec without Docker](https://www.wearedevelopers.com/videos/1094-docker-exec-without-docker) - [Grappling With Clunky Old Software? Start by Understanding What’s Inside!](https://www.wearedevelopers.com/videos/1189-grappling-with-clunky-old-software-start-by-understanding-what-s-inside) ## Related Articles - [7 Important Tips That Every Software Developer Should Know](https://www.wearedevelopers.com/magazine/101-7-important-tips-that-every-software-developer-should-know) - [Is Software Engineering Over-Saturated?](https://www.wearedevelopers.com/magazine/418-is-software-engineering-over-saturated) - [The Best Software Developer Blogs to Read](https://www.wearedevelopers.com/magazine/156-the-best-software-developer-blogs-to-read) - [Is Software Engineering Hard?](https://www.wearedevelopers.com/magazine/448-is-software-engineering-hard) - [What is Software Engineering?](https://www.wearedevelopers.com/magazine/289-what-is-software-engineering) - [What’s the Difference between a Junior, Mid, and Senior Developer?](https://www.wearedevelopers.com/magazine/238-what-s-the-difference-between-a-junior-mid-and-senior-developer)