Job Title: High-Quality C++ Software Developer
We are looking for a skilled and experienced software engineer to join our team as a High-Quality C++ Software Developer. The ideal candidate will have a strong background in C and C++, excellent coding skills, and the ability to work effectively in a collaborative environment.
About the Role
This is an exciting opportunity for a talented developer to contribute to the design and development of cross-platform libraries and tools that communicate directly with client machines. You will be working on high-quality software projects that demand attention to detail, creativity, and innovative problem-solving skills.
Responsibilities
* Develop new features, enhance existing features, and improve the quality of the libraries and tools
* Apply software engineering design patterns to develop well-structured, modular, and performant application code
* Perform code reviews, write unit and integration tests, and contribute to architectural planning and refactoring
* Ensure best coding practices
* Train, mentor, and develop junior team members
Requirements
* Proficient in C and C++ programming languages
* Experience in writing unit and integration tests
* Expertise in USB and Bluetooth (Classic and BLE) protocols
* Experience with development of communications protocols
* Experience in developing Android, iOS, Windows, and macOS libraries/frameworks
* Experience with CMake build procedures for cross-platform maintainability
* Experience with package managers (npm, CocoaPods, Maven, NuGet, SwiftPM, etc.)
* Experience in unit and integration testing
* Experience with Git in a collaborative environment (pull requests, branching strategies, tags, etc.)
* Experience in continuous integration and delivery (e.g., GitHub Action)
* Strong knowledge of SDLC and Scrum/Agile methodologies
* A solid grasp of fundamental algorithms, data structures, and design patterns
* High critical thinking skills to evaluate alternatives and present solutions consistent with business objectives and strategy
* Ability to communicate effectively with technical and non-technical teams
* Aptitude and desire to independently learn new technologies
* B.S. or M.S. in Computer Science, Software Engineering, or comparable field with 5+ years relevant experience