Adjunct Professor — The University of British Columbia

Sep 2020 — Present

For more information, visit my website at the ECE Department at UBC.

I received my BASc, MASc, and Ph.D. from the Department of Electrical and Computer Engineering (ECE) at UBC in 2006, 2009, and 2015, respectively. During my graduate studies, I collaborated with researchers at UBC, Qatar University, King’s College London, and Queen Mary University of London.

My research interests include cooperative relay networks, RF energy harvesting, trust and reputation management systems, and cognitive radio in wireless communication systems. I have more than 20 years of academic and industrial experience in areas such as telecommunication systems, financial technology, cyber and cloud security, blockchain, and the Internet of Things.

Currently, I lead the security engineering team at a Silicon Valley cyber-security company, Menlo Security. I have also held an adjunct professorship position at the Department of ECE at UBC from 2015–2016 and from 2019 to the present.

Since 2009, I have served as a teaching assistant or lecturer for several courses, including CPEN333, EECE391, EECE251, EECE253, EECE281, EECE282, EECE259, EECE359, EECE453, and EECE454. In Fall 2021, I taught CPEN333.

I teach multi-processing and multi-threading within the .NET framework in the ECE department, creating labs, lectures, quizzes, exams, and projects; I also mentor students on systems design and secure software practices.

Topics I emphasize
  • Concurrency models and performance profiling
  • Secure coding patterns for parallel workloads
  • Resilience engineering and observability
  • Defense-in-depth for distributed systems
Teaching philosophy

Pragmatic, industry-grounded, and hands-on—students learn by building and stress‑testing systems that mirror real-world constraints.

Teaching Topics
  • CPEN 333 – Software Design for Engineers II: Covers operating system principles, real‑time and concurrent programming, object‑oriented analysis/design with UML, and software testing, tailored for embedded and mechatronic systems
  • ELEC 431 - Communication Systems I: Review of probability theory, signals and noise; digital communication over Gaussian noise channels, optimal receiver design, modulation techniques and error performance calculations; measure of information, source coding, symbol and stream codes; channel coding, capacity, simple linear block codes; practical applications.
  • ELEC 391 – Electrical Engineering Design Studio II: Focuses on project management, problem definition, design principles, circuit/software design, solid modeling, PCB assembly, testing, and presentation skills in the context of electronics, communications, control systems, and electromechanical projects.
  • ELEC 359 – Signals and Communications (Part 1 & 2): Covers foundational signal processing and communications theory, including concepts like Fourier transforms, modulation, and signal analysis.
  • ELEC 259 – Introduction to Microcomputers: Offers an introduction to microcomputers, including practical lab work and assignments on computing concepts and logic
  • ELEC  251 – Circuit Analysis I: Serves as an introduction to circuit theory, covering basic concepts, circuit elements, and foundational analysis in electric circuits.
  • ELEC  253 – Circuit Analysis II: Builds on the first course by exploring time‑varying sources, frequency‑domain circuit analysis, and filter design.
  • ELEC 281 / EECE 282 – Circuits Laboratory I & II: The lab components complementing Circuit Analysis theory courses, providing hands-on circuit analysis laboratory experience.