"I earned my PhD in Computer Systems and Software from UCI, where I cultivated a deep passion for teaching. My journey as an educator began during my undergraduate studies, and I later had the opportunity to teach several computer engineering courses at private schools during my Master’s program. At UCI, I served as a teaching assistant for over 14 quarters and as a lecturer for two quarters. Additionally, I taught four semesters as a lecturer at CSULB.
I bring extensive experience teaching computer programming and engineering topics, including C/C++, assembly programming, data structures and algorithms, computer architecture, Verilog/SystemVerilog, VHDL, and logic design.
Beyond academia, I have over 8 years of professional experience as a Software Engineer in mid-sized, large, and start-up companies. My industry background complements my teaching expertise, enabling me to connect theory with practical applications.
I am patient and committed to helping students build the confidence to tackle any problem independently. My teaching philosophy focuses on equipping students with the tools and strategies they need to solve problems, rather than simply providing answers.
I specialize in the following areas of computer science and engineering:
- Data structures and algorithm design
- Programming languages: C/C++, Python, and Java
- Object-oriented design
- Software engineering interview preparation
- Computer architecture and assembly programming
- Logic design and Verilog/VHDL programming
For those preparing for software engineering roles, I can help you develop a personalized interview preparation plan tailored to your background. Together, we’ll work through sample questions (e.g., LeetCode-style problems) and conduct mock interview sessions. I've been practicing on LeetCode since 2013, back when it had fewer than 400 questions, and I’m well-versed in its approach.
I look forward to helping you achieve your goals!" less...