Teaching Assistant - University of Rhode Island
I taught two C/C++ lab sections of about 20 students each, where we worked through hands‑on exercises covering core systems programming ideas, things like stack vs. heap memory, pointers, processes, multithreading, mutex locks and shared memory. It was a very practical setup, so students were constantly writing code, testing it, and seeing how these concepts behave in real programs.
Outside of lab, I held office hours where we dug into tougher topics, debugged tricky bugs, and talked through how things like process scheduling or memory management actually work under the hood. A lot of students came in with half‑working code or confusing behavior, and it was fun to help them reason through what the system was doing.
I also built grading scripts for all the assignments, tools that loop through each student’s submission, compile every version, run them against normal and edge‑case inputs, compare the results to the expected output, and generate a clean report. It made grading way more consistent and saved the teaching team a ton of time.

Figure 1:Whiteboard drawings on threading

Figure 2:Whiteboard drawings on mutex locks