Just to clarify: A TeX engine (like pdftex, xetex, luatex) compiles TeX code. Hence, reading source2e (or source3) won't show you anything you could not have learned in the TeX Book. Basically, you only need to understand the primitives and TeX's algorithms, everything else should be handled by the format (like LaTeX).
If you want to write your own TeX engine and call it a TeX engine you are required to pass the trip test and implement all the basic algorithms used in TeX (the program). This may be extended by new primitives for Unicode input (like in XeTeX, LuaTeX and others) and support of more features. Please note that reproducing this level of optimized code already is quite a large amount of work.
Furthermore, you might be interested in projects like NTS or ExTeX which have tried to write a completely different TeX engine (in Java). They have never reached a stable state to take over a userbase from other engines.
So just to answer your question: You need to know about TeX's primitives and internal workings (which you may find documented in the WEB code of TeX and the TeX code).
A comment (personal view): If you are an undergraduate student and want to understand TeX more in depth, try writing your own format first (working with primitives).