Rakuten Kobo's eReader team is looking for an experienced Software Developer 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.
Here are some of the things we do and strongly believe in :
- We follow an Agile development process and teams are encouraged to try new things and make suggestions to continuously improve
- We’re dedicated to crafting high quality, peer reviewed code and we’re working on growing our automated test suite
- Every member on the team has a voice and is welcome to contribute to planning and designing
- QA is embedded on our development teams and are involved in projects from day one
- 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 object-oriented design skills, incorporating design principles and patterns
- Strong in identifying and explaining trade-offs and rationale
- Converting final state designs into a sequence of smaller testable incremental steps
- Strong skills in reviewing code and providing feedback (with rationale) to improve code
- Following modern development best practices in C++11 (or newer)
- 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
- 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
- Experience with TDD
- Familiarity with the EPUB format / standard