Principal C/C++ Software Engineers

Overview

On Site
Hybrid
Depends on Experience
Full Time

Skills

BS or MS in Computer Science
C programming and Linux platform development
Deep understanding of data structures and algorithms
Experience developing high-performance algorithms and optimizing code for efficiency
Proficiency in Python is strongly preferred

Job Details

Job Description: Senior and Principal Software Engineers (Multiple Openings) Position Type: Hybrid (3 days per week in-office)

Our client, a growing and well-established software company, is seeking talented Senior and Principal Software Engineers to join their team. This company specializes in developing high-performance Linux applications using Scrum Agile methodology. Most development is done in C programming language, with some use of Python.

We are looking for individuals passionate about coding and solving complex technical challenges in a collaborative environment. Ideal candidates will have extensive experience designing algorithms and data structures for multi-threaded, high-performance software on Linux platforms. Experience with data protection, backup, or data storage software is highly desirable.

Key Responsibilities

  • Collaborate as a member of a Scrum team to design, develop, and maintain software.
  • Define and implement new product features and requirements.
  • Integrate software modules and ensure system functionality meets requirements.
  • Develop and execute unit tests and automated quality improvements; support QA testing processes.
  • Play a key role in a small, dynamic, and collaborative development environment.
  • Reverse-engineer complex data formats (a plus).
  • Manage tasks effectively in a hybrid work environment.
  • Work with the support team to resolve issues identified in customer bug reports.

Required Skills and Qualifications

  • Education: BS or MS in Computer Science, a related technical discipline, or equivalent experience.
  • Programming Expertise: Strong skills in C programming and Linux platform development.
  • Algorithms and Data Structures: Deep understanding of data structures and algorithms, with a focus on performance optimization.
  • High-Performance Development: Experience developing high-performance algorithms and optimizing code for efficiency.
  • Scripting Skills: Proficiency in Python is strongly preferred; experience with Bash is a plus.
  • Collaboration: Team player with strong interpersonal and communication skills.
  • Problem-Solving: Ability to solve complex challenges in a collaborative setting.

Desired Experience

  • Familiarity with Microsoft development environments.
  • Experience with any of the following:
    • Data protection, backup, or data storage software.
    • pthreads, security, ransomware, or embedded systems development in C.
    • Parallel, distributed, or complex system programming.
    • Machine learning.
    • Writing software that manipulates data at the bit and byte level.
Employers have access to artificial intelligence language tools (“AI”) that help generate and enhance job descriptions and AI may have been used to create this description. The position description has been reviewed for accuracy and Dice believes it to correctly reflect the job opportunity.