Please post some resources. Describe how you got good at it.
By reading good code. Discussing work related design with colleagues, Code reviews, etc.
Another chicken & egg bastard...
Low level questions demand low level answers.
Head First Design Patterns
Start with thinking about object oriented design. Start with the interfaces of the subsystems. Don’t over complicate your solution. Ask lots of questions about the usage and what we anticipate for the future for the system to narrow down the ask. Most low level ones are much easier than you think