2020 Summer, Teaching Assistant for Data Structures
2020 Spring, Teaching Assistant for Compilers Student Feedback: He was incredibly helpful going over the concepts in class.
2019 Fall, Teaching Assistant for Computer Architecture
2019 Spring, Teaching Assistant for Operating System Design Student Feedback: I now feel like I understand operating systems much better…
2018 Fall, Teaching Assistant for Algorithms
LUMS
2018 Spring, Teaching Assistant for Advanced Programming
2017 Fall, Head Teaching Assistant for Introduction to Object Oriented Programming
Managed a team of six teaching assistants and designed all the practical gradework for the course.
2017 Spring, Teaching Assistant for Introdcution to Artificial Intelligence
2016 Fall, Teaching Assistant for Introduction to OOP
Projects
Evaluating Image Caption Generation Using Coherence Aware Methods: Designing a coherence aware evaluation metric to bridge the gap between automated caption quality estimates and human judgements for image caption models.
Adapting RL Methods to learn Fair Communication Strategies: Adapting RL methods to optimize for maximum Nash welfare rather than average reward to learn fair communication policies across diverse users.
Building Coherence Based Dialogue Models: Building task-oriented conversational agents which use coherence based dialogue state representations with RL to learn effective communication strategies.
Video Captioning with Multi-Faceted Attention: Re-implemented the Video Captioning with Multi-Faceted Attention paper to learn about video caption models and attention methods used in neural network architectures.
Learning Text Representations in Latent Space: Re-implemented the Generating Sentences from a Continuous Space paper by Google research to study the applications and challenges of learning text representations using Variational Auto-Encoders.
Adversarial Maze Generation Using Genetic Algorithms: Using genetic algorithms to generate difficult mazes for path finding algorithms like A* to solve in Python.
Lost Object Tracking Using Bayesian Networks: An application of Bayesian networks to find a lost object in a given uneven terrain in Python3.
MegaVM: Modifying Linux kernel to design a distributed memory framework for virtual machines by hacking swap mechanism and using low-level Verbs API for communication between nodes using RDMA over Infiniband.
PseudoBot: A chatbot and personal assistant web application to assist in setting reminders and sending small emails, implemented in Python using Chatterbot API for dialogue and django for backend.
Urdu Alphabet Classification: A neural based model to classify handwritten urdu alphabets using CNNs in Matlab.
Static Map For Reducing Runtime Workload: Implemented a static map in C++=14 which loaded the constant key value data at compile time hence reducing the the work the program had to do at runtime.
SmarTOR: Participated in the research project to improve load balancing algorithms for TOR relays as part of summer internship in Networks and Systems group at LUMS.
Binary Re-Arrangement to Optimize Performance: Conducted research in re-arrangement of compiled binaries to reduce page-faults as an attempt to optmize performance by reducing page faults for loading executable code.
Awards
2014-2018, Fully Funded BS. Computer Science as National Outreach Program Scholar at LUMS