The Role
Rakuten Kobo's eReader team is looking for an experienced C++ Software Engineer III to join our team in Darmstadt, Germany 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. The ideal candidate will be located in Darmstadt, or the wider Hesse region in Germany.
Here are some of the things we do and strongly believe in:
1. We follow an Agile development process that encourages trying new things and making suggestions to enable us to continuously improve
2. 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
3. Every member on the team has a voice and is encouraged to contribute to planning, designing, and decision making
4. QA is embedded within our development teams is involved in projects from day one, promoting a collaborative approach to quality
5. We host regular learning sessions on various engineering topics hosted by members of the team
Responsibilities:
• As a member of an Agile development team:
6. Design, implement, and test new functionality for Kobo eReader devices
7. Propose and carry out refactoring within the codebase to improve design and quality
8. Debug and fix defects found by QA and customers
9. Review code for other developers on the team
10. 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:
11. Object-oriented design incorporating design principles and patterns
12. Identifying and explaining trade-offs and rationale
13. Converting final state designs into a sequence of smaller testable incremental steps
• Strong software development skillsin C++11 (or newer), including:
14. Reviewing code and providing feedback (with rationale) to improve code
15. 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:
16. Multi-threaded applications development
17. 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:
18. Use of dependency injection and mocking frameworks
19. Use of test frameworks such as Google Test
20. User interface tests
21. Experience with TDD
• Familiarity with the EPUB format/standard
• EInk screen experience
• Database experience with SQLite
The Perks:
22. Flexible hours and hybrid remote working environment
23. Lifestyle spending account
24. Talent and development training budget
25. Free Kobo device + free weekly e-book or audiobook
26. Weekly Kobo Tech University sessions
27. Maternity/paternity leave top up