Teaching Assistant
CurrentHelped to teach the Distributed Systems course, focused on designing and implementing distributed systemsTopics taught: Distributed computation; RPC and its semantics; Transactions and ACID; Atomic commitment Consensus & Paxos; Consistency semantics; Byzantine Fault Tolerance; VerificationHelped to teach the Operating System course, focused on Linux kernel development and OS conceptsTopics taught: Interrupts, syscalls, & kernel-space programming; UNIX processes; CPU scheduling Memory management, virtual memory, & paging; File systemsHelped to teach the Advanced Programming course, focused on C programming in the Linux environmentTopics Taught: UNIX & CLI basics; C basics & syntax; Pointers & arrays; Structs, functions, & objects UNIX file I/O; Socket programming & TCP/IP networking; Concurrency and performance