A language is only a tool. Try different approaches like composition over inheritance ( I created a method in TypeScript to create mixins/traits in order to migrate non-sense OOP patterns that I did in a few projects ), patterns that you didn’t apply before… also you can look for DDD ( and its “patterns” ).
Or start new projects for your own curiosity. I implemented a cache policy recently and I learned -tried- to develop different parts of an OS.