Github.
Study practices by real people cooperating. Find a couple famous embedded project and study their structures.
My favorite was Marlin.
There is no best design, there are good and bad practices...
For example goto is bad practice to use everywhere, but it is very useful some times.