Know what your goals are. You have user goals(convenient, reliable, fast) and system goals(error free, easy to maintain). Kali is an OS designed for hacking. CentOS is a OS designed for servers.
Mechanisms determine how a particular thing needs to be done Policies are rules for what can be done Analogy: Mechanisms are gas pedals, policies are speed limits. An important design principle is to separate policies from mechanisms. This makes things flexible because policies always change.
To implement your OS, you can write them in assembly languages but that is very challenging. Now, we use C or C++ to write operating systems