Senior and Principal Software Engineers (Multiple Openings)
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:
o Data protection, backup, or data storage software.
o pthreads, security, ransomware, or embedded systems development in C.
o Parallel, distributed, or complex system programming.
o Machine learning.
o Writing software that manipulates data at the bit and byte level.
This is an excellent opportunity to join a fast-growing company with a collaborative team environment and tackle challenging technical problems. If you thrive in a high-performance culture and are excited to make an impact, this role is for you.