Job Description
Job Description
Software Engineer -Senior and Principal levels (multiple openings)
Our client is a well-established, growing software company. Their Linux application is developed using Scrum Agile methodology. Most development is done in C language; some Python is used. As the company experiences this period of growth we are looking for talented individuals who are motivated by overcoming difficult technical challenges in a collaborative environment to join the team. Ideal candidates for these positions will love to code and have extensive experience developing algorithms and data structures for multi-threaded high performance software in C on Linux platforms . Experience developing software for data protection, backup or data storage applications is desired. Hybrid position working in the office 3 days per week.
Responsibilities :
- Work as a member of a Scrum team on the design and maintenance of software
- Develop and assist in definition of new product features and requirements
- Integrate software modules and ensure the system operates to meet requirements
- Develop and implement unit automated tests and quality improvements, support QA testing
- Be a key contributor in this small, challenging and collaborative environment
- reverse engineer complex data formats a plus
- manage your work and time with a hybrid work model
- work with support organization to fix issues identified in customers bug reports
Required / desired skills and experience :
BS or MS in Computer Science or other technical discipline or equivalent experienceStrong skills in C programming and development on Linux platformsExtensive knowledge of data structures and algorithmsA lot of focus is on performance and optimization. Experience developing high-performance algorithms and analyzing code to optimize is desiredExperience with Python scripting is greatly preferred. Bash is a plusTeam player with strong interpersonal skillsFamiliarity with Microsoft development environments a plusExperience with any of the following is a plus : data protection, backup, data storage; pthread; security; ransomware; embedded systems development with C; parallel, distributed or complex system programing project experience; machine learning; writing software that manipulates data at the bit and byte level.