Senior Software Engineer

Ascentt

  • Ann Arbor, Michigan
  • 21 days ago

    Highlights

    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.

    Numbers & Facts

    LocationAnn Arbor, Michigan

    Description

    Employment type: Full-Time / Contract

    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