I enjoy teaching, not from the prestige of the traditional teacher-student contract, but from the fact of an informal society of intellectuals who share a common interest in studying subjects.
I have been teaching since high school, from calculating planets’ trajectories to cosmology. As a self-funded tradition, we taught our juniors in the same way our seniors taught us, mainly because even the basics concepts of our astronomy olympiad (unlike math or chemistry ones) were not covered in (almost any) high school curriculum. (I guess elliptic integrals still does not sound familiar!)
Later, in my undergraduate, I was the teaching assistant (TA) of 12 courses, mostly related to computer architecture. In my senior year, I managed our Microprocessor Systems Laboratory at Sharif, the only place for undergrads to find FPGA boards, MCUs, and processors faster than basic 8051.
During my PhD at Georgia Tech, I TAed 3 courses and taught advanced computer organization (senior-level course in computer architecture) for two summers as the main instructor.