For the type system aspects, there are two steps:
1. Learn the theory. Yes, you need to. On this matter, the book "Types and Programming Languages" (or TAPL for short) is the bible: https://www.cis.upenn.edu/~bcpierce/tapl/
2. Implement toy type systems. There are several resources for this, but personally, I like this one: http://plzoo.andrej.com/