Overview
The Role
Rakuten Kobo's eReader team is looking for an experienced C++ Software Developer with leadership aspirations to work on our range of eReader devices. You will be joining a software delivery team of ~15 to work on building and enhancing some of the top eReaders in the market. We are looking for someone who is eager to take on increasing responsibility and has the potential to grow into a Team Lead within ~6 months.
What we do
- We follow an Agile development process that encourages trying new things and making suggestions to enable us to continuously improve
- We’re dedicated to crafting high-quality, peer-reviewed code, and we’re continuously working on growing our automated test suite to ensure reliability and efficiency
- Every member on the team has a voice and is encouraged to contribute to planning, designing, and decision making
- QA is embedded within our development teams is involved in projects from day one, promoting a collaborative approach to quality
- We host regular learning sessions on various engineering topics hosted by members of the team
Responsibilities
- As a member of an Agile development team :
- 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
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 skillsin 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.)
Bonus points
- 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
The Perks
- Flexible hours and hybrid remote working environment
- Subsidized in-office lunches
- Full benefits starting from your first day
- Paid Volunteer days, unlimited sick days, and 3% RRSP matching
- Monthly commuting allowance for those who are hybrid
- Lifestyle spending account
- Talent and development training budget
- Free Kobo device + free weekly e-book or audiobook
- Weekly Kobo Tech University sessions
- Maternity / paternity leave top up
- Dog friendly office