I have an intense drive to explain, document, and teach programming and technology concepts. I am comprehensive and concise in my work, and I enjoy creating examples, demonstrations, and diagrams with the purpose of teaching.

When creating code, I strive to create reusable, clean, and well-documented code. I often find myself re-using code techniques such as programming by contract, using factory functions, and using inner functions or subroutines to keep my code DRY, to name a few. I use techniques that work well for me, are reusable, and that provide overarching structure and patterns to my code.

I enjoy creating reusable coding examples with the purpose of teaching things to people, and ensuring that everyone is given the chance to try them out.

I have been teaching friends, family, and classmates for years regarding various technology subjects and always receive good reviews (and free coffee!).

When I cannot teach something to somebody, I attempt to change my approach, step back, and find a different method to explain a concept.

i.e. Instead of showing code examples, I can try to draw a diagram, or perhaps a flowchart that describes the states of the program.

I also frequently ask my tutees how they are doing, and if anything needs explanation.

It is sometimes necessary to take a concept and completely isolate it from other ‘moving parts’ in order to properly show how it is used.

Similarly, sometimes concepts (i.e. control flow) will require the understanding of other concepts (boolean expressions) and I very often will pause my teaching to ensure that those fundamental concepts are understood.