Senior C/C++ Software Engineer

We are looking for a Senior C/C++ Software Engineer who can work independently and also collaborate within a small engineering team (2–4 people). The role involves full lifecycle software development on Linux systems, including high‑level application development and low‑level device driver development.

This is a hands‑on technical role requiring strong ownership, deep system knowledge, and comfort working close to hardware.

Key Responsibilities

  • Design, develop, and maintain software using C++ (C++20 or newer) and C on Linux platforms
  • Develop and maintain Qt desktop applications using Qt Widgets (not QML) and C++ STL
  • Work both independently and as part of a small engineering team (2–4 people)

Participate in the full software development lifecycle, including:

  • Software requirements analysis
  • Creation of Software Requirements Specifications (SRS)
  • Creation of Software Design Specifications (SDS)
  • Development of pre‑installation and post‑installation test procedures

Analyze legacy systems to:

  • Understand existing architectures, interfaces, and constraints
  • Identify how new software must interface with legacy systems
  • Gather and document functional, performance, and interface requirements
  • Define constraints and dependencies imposed by legacy hardware or software

Additional Responsibilities

  • Translate legacy system findings into clear, actionable requirements for new solutions
  • Design and implement Linux device drivers, particularly for PCI‑based hardware
  • Build and manage software using Make and CMake
  • Use version control systems (Git preferably) for source code management
  • Debug, optimize, and validate software across application and system levels

Must‑Have Technical Skills

Expert C++ developer

  • C++20 or newer
  • Strong experience with the C++ STL

Qt framework experience

  • Application development using Qt (QT 6 and above would be an asset)
  • Application development using Qt Core and Qt Widgets

Strong C programming skills

  • Low‑level and system programming

Linux device driver development

  • Especially PCI device drivers

Build systems

  • Make
  • CMake

Version control

  • Git (preferred)

Full software development lifecycle experience

  • Requirements analysis
  • Software Requirements Specification (SRS)
  • Software Design Specification (SDS)
  • Pre‑installation and post‑installation test procedures

Additional Skills

  • Strong ability to analyze existing/legacy systems and extract technical requirements
  • High attention to detail when documenting interfaces, constraints, and behaviors
  • Able to work independently with minimal supervision
  • Comfortable collaborating in a small, focused team (2–4 engineers)
  • Strong sense of ownership and accountability

Assets

  • VME architecture experience for I/O operations
  • PLC programming experience
  • Any vendor or IEC 61131‑3 languages considered an asset
  • Experience with hardware–software integration
  • Experience in performance‑critical or real‑time systems

Looking for meaningful work? We can help

 

Raise is an established hiring firm with over 65 years of experience. We believe strongly in making the world a better place through work, which is why we’re a certified B Corporation and donate 10% of our profits to charity. 

We strive to build teams that reflect the diversity of the communities we work in. We encourage all qualified applicants to apply, including people from traditionally underrepresented groups such as women, visible minorities, Indigenous peoples, people identifying as LGBTQ2SI, veterans, and people with visible/nonvisible disabilities.

We have a dedicated webpage for accommodations where you can learn more about what we offer, and request accommodation: https://raise.jobs/accommodations/

In order to submit candidates for roles, our clients will sometimes require personal information to confirm the identity of applicants and their legal status to work. Raise will never ask you for personal or banking information unless you have been selected for a job. If you are ever unsure about the legitimacy of this or another job posting by Raise (or have any other questions), please contact us at +1 800-567-9675 or hello@raiserecruiting.com

#IMW

Senior C/C++ Software Engineer

Similar job opportunities:

When you apply for a job with us, you consent to the use of automated screening tools — including voice and text analysis — for this job and future jobs with Raise. These tools help us review resumes, assess qualifications, and make initial recommendations; however, all final reviews and hiring decisions are made by people. Questions? Contact us at hello@raiserecruiting.com

Search all jobs:

Search jobs by title or keyword
Click here

Keep exploring!