I hold a Ph.D. in Computer Science with a research focus on High-Performance Computing (HPC), parallel algorithms, and GPU performance modeling. My academic and professional journey has centered on understanding how to make computations run faster and more efficiently on modern architectures. Currently, I work as a Performance Architect at NVIDIA, where I analyze and optimize complex workloads on GPUs—experience that gives me real-world insights into the topics I teach.
I have more than 10...
I hold a Ph.D. in Computer Science with a research focus on High-Performance Computing (HPC), parallel algorithms, and GPU performance modeling. My academic and professional journey has centered on understanding how to make computations run faster and more efficiently on modern architectures. Currently, I work as a Performance Architect at NVIDIA, where I analyze and optimize complex workloads on GPUs—experience that gives me real-world insights into the topics I teach.
I have more than 10 years of teaching and mentoring experience at both the university and individual levels. As a graduate teaching assistant and later as a research mentor, I guided undergraduate and graduate students through courses in data structures, algorithms, C/C++, computer programming, computer architecture, and networks. My teaching experience extended through multiple universities: Mansoura University, Lehigh University, University of Central Florida, and the University of Oklahoma. I emphasize conceptual understanding first, then build toward hands-on problem solving—encouraging students to think critically about performance and design trade-offs. My approach is highly interactive: I break down challenging ideas into intuitive steps, use visual explanations when possible, and connect theory to practical applications. I mainly taught courses for undergraduate and graduate university level students.
I enjoy working with motivated learners—whether they are preparing for university exams, learning programming for the first time, or exploring advanced topics such as GPU computing, parallel programming, or performance tuning. My goal is to help each student not only grasp the material but also build lasting confidence in their ability to approach and solve new technical challenges.