C++ Software Engineer III
Company | Kobo |
---|---|
Location | Toronto, ON, Canada |
Salary | $Not Provided – $Not Provided |
Type | Full-Time |
Degrees | |
Experience Level | Senior |
Requirements
- Strong software design skills, including:
- Object-oriented design incorporating design principles and patterns
- Identifying and explaining trade-offs and rationale
- Converting final state designs into a sequence of smaller testable incremental steps
- Strong software development skills in C++11 (or newer), including:
- Reviewing code and providing feedback (with rationale) to improve code
- Following modern development best practices
- Experience developing graphical user interfaces in C++ using Qt or a similar library
- Experience with embedded development, preferably on Linux
- 5+ years of experience as a developer in an Agile development environment
- Strong written and verbal communication skills in English
- Familiar with:
- Multi-threaded applications development
- Web technologies (JavaScript/CSS/HTML/ HTTP/etc.)
Responsibilities
- Design, implement, and test new functionality for Kobo eReader devices
- Propose and carry out refactoring within the codebase to improve design and quality
- Debug and fix defects found by QA and customers
- Review code for other developers on the team
- Estimate the effort for future work as an input to planning
- Collaborate within the eReader team on improvements to our processes and code base
- Share your knowledge to help grow other members on the team and in turn learn from other members on the team
Preferred Qualifications
- Experience with GCC, ARM toolchains, and shell scripting
- Experience with writing and maintaining automated tests in C++, ideally including:
- Use of dependency injection and mocking frameworks
- Use of test frameworks such as Google Test
- User interface tests
- Experience with TDD
- Familiarity with the EPUB format/standard
- EInk screen experience
- Database experience with SQLite