Third year Computer Engineering student at the University of
Waterloo, focused on distributed systems, operating systems, and
performance optimization.
Relevant Coursework:
ECE252: Systems Programming and Concurrency
About
Semaphore, mutex, monitors, and barrier synchronization.
Performance and correctness of concurrent systems.
Deadlock detection and recovery.
Projects
Image processing tool, implementing the bounded buffer
producer-consumer pattern for inter-process communication.
Web crawler design and implementation. Benchmarked completion time
and resource consumption of multithreaded blocking I/O vs. non-blocking
I/O approach.
ECE208: Discrete Mathematics and Logic 2
About
Formal logics and methods, and their applications in verifying
computer systems.
Formal models of computation.
Predicate logic, temporal logic, relational logic. Set theory, proof
theory, model theory, graph theory.
Projects
Boolean satisfiability solver using the DPLL algorithm.
ECE250: Algorithms and Data Structures
About
Data structures and algorithms.
Abstract data types.
Algorithm analysis.
Projects
Symbolic classifier program, implementing prefix tree for
hierarchical knowledge organization and LLM-based evaluation per node
for intelligent path selection.
Network topology analyzer program, modelling relational data as
weighted graphs to analyze connection patterns and resource
distribution.
ECE224: Embedded Microprocessor Systems
About
Embedded microprocessor systems.
Microprocessor system architecture.
Data transfer, synchronization, error detection/correction, testing
and debugging.
Projects
Audio waveplayer built using the Altera toolchain. Implements FAT32
MicroSD card streaming.
ECE222: Digital Computers
About
Computer organization and architecture.
Memory units, arithmetic logic units, control units, and I/O
operations.
Assembly language programming, translation, and loading.
Projects
Morse code encoder and decoder program using RISC-V assembly
language.