Here are some recommendations for ways you could improve yourself and fill spare time at work as a C++ development engineer:
-
Take online courses or tutorials to expand your C++ skills. Look for advanced topics like multithreading, optimizations, template metaprogramming, etc. That will make you a more effective engineer.
-
Learn about new C++ language features and libraries. C++ is constantly evolving so keep up with the latest standards and frameworks. Read C++ books/blogs/docs in your spare time.
-
Contribute to open source C++ projects on GitHub. This will improve your coding abilities and collaboration skills. Start by finding bugs or imperfections in projects you already use and submit fixes.
-
Study software design patterns like observer, factory, singleton etc. Understand how they work and when to apply them. Refactor/optimize old code you’ve written using better patterns.
-
Learn about performance optimization and profiling. Figure out how to speed up slow code through caching, parallelism, algorithms, etc. Use profilers to pinpoint bottlenecks.
-
Explore test driven development principles like writing tests first and maintaining high coverage. Refactor old code to be more testable. Learn mocking, dependency injection, etc.
-
Dive into build systems like CMake. Learn how to create robust, cross-platform builds for large projects. Discover tools like sanitizers that find bugs.
-
Read up on software architecture principles. Study commonly used architectures like layered, microservices, event-driven etc. Analyze how they impact design.
-
Learn about design concepts like SOLID, DRY, YAGNI etc. Refactor code to better conform to these principles. Write new code with them in mind.
The key is to always be learning new skills and techniques that make you a better C++ engineer. That will benefit both you and your company in the long run.