Senior Software Engineer

Ascentt

• $110K — $130K *
Information Technology
Less than 5 years of experience
Job Overview by Ladders

Qualifications

  • Bachelor's degree in Computer Engineering, Computer Science, or related field with 4+ years of experience, or a Master's with 2+ years.
  • Strong hands-on experience in C and C++ software development, focusing on memory management and data structures.
  • Proficient in developing and debugging in Linux environments using GCC/Clang and GDB.
  • Solid understanding of object-oriented design and design patterns, particularly with the C++ Standard Library (STL).
  • Experience with multithreading, concurrency, and performance optimization techniques.
  • Familiarity with software design documentation and requirements traceability tools like Jama Connect.
  • Experience with Git-based workflows and project management tools like Jira.

Responsibilities

  • Design, develop, and maintain production-quality software in C and C++ (C++11/14/17 or later).
  • Translate functional and technical requirements into clean software designs and well-structured code.
  • Apply object-oriented design principles and design patterns to build modular and maintainable components.
  • Write efficient and reliable code with a focus on memory management and performance.
  • Develop and debug software in Linux environments using tools like GCC/Clang and GDB.
  • Create and execute unit, integration, and regression tests to ensure software quality.
  • Profile and troubleshoot defects using analysis tools such as Valgrind and static analysis tools.

Benefits

  • Collaborative engineering team environment.
  • Opportunity to own features from design to release.
  • Access to modern development tools and practices.
  • Focus on high-quality, performant software development.
Full Job Description
About the Job:

  • We are seeking a C, C++ Software Engineer with strong hands-on experience designing, building and maintaining high-quality, performant software in C and C++.
  • The engineer owns features end to end - from requirements and design through implementation, testing, debugging and release - as part of a collaborative engineering team.


What you will do:

  • Design, develop and maintain production quality software in C and C++ (C++11/14/17 or later).
  • Translate functional and technical requirements into clean software designs and well-structured code.
  • Apply object-oriented design, design patterns and the STL to build modular, reusable and maintainable components.
  • Write efficient, reliable code with careful attention to memory management, pointers, multithreading and performance.
  • Develop and debug in Linux based environments using GCC/Clang, GDB and Make/CMake.
  • Develop and execute unit, integration and regression tests to ensure software quality.
  • Profile, troubleshoot and root cause defects using debuggers, logs and analysis tools such as Valgrind, sanitizers and static analysis.
  • Maintain software design documentation and requirements traceability in Jama Connect or comparable tools.
  • Contribute to code reviews, coding standards, static analysis and CI/CD automation using Git, Jenkins and Python.
  • Collaborate with fellow developers, QA, product and project stakeholders to deliver on schedule.


This is a hands-on C/C++ development role. Candidates must be able to walk through C/C++ code they personally wrote - design choices, trade-offs and how they debugged it.

What we are looking for:

  • Bachelor's degree in Computer Engineering, Computer Science or a related field with 4+ years of relevant experience, or a Master's with 2+ years.
  • Strong hands-on software development in C and C++, including memory management, pointers, data structures and algorithms.
  • Experience developing and debugging in Linux-based environments (GCC/Clang, GDB, Make/CMake).
  • Solid understanding of object-oriented design, design patterns and the C++ Standard Library (STL).
  • Experience with multithreading, concurrency and performance optimization.
  • Experience developing and executing unit, integration, regression and system-level tests.
  • Experience with software design documentation and requirements traceability (Jama Connect or comparable tools).
  • Experience with Git-based workflows and Jira.
  • Strong troubleshooting, root-cause analysis, documentation and communication skills.


Preferred Qualifications:

  • Experience with modern C++ (C++17/20) and Boost.
  • Experience with unit-testing frameworks (GoogleTest, Catch2) and debugging/profiling tools (GDB, Valgrind, sanitizers).
  • Familiarity with coding standards and static analysis (MISRA C/C++, CERT, clang-tidy, Coverity).
  • Experience with Python, Jenkins, CI/CD pipelines and automated testing.

Similar Jobs

More Jobs at Ascentt

More Information Technology Jobs

Find similar Senior Software Engineer jobs: