Hi, I'm Ali
I'm a Computer Science Masters Student at University of Texas at Dallas. I'm interning at Walmart for Summer 2020 as a full-stack developer.
I originate from Pakistan, where I did my undergrad in CS from Lahore University of Management Sciences. I worked at VentureDive, Lahore for 13 months before coming to the United States to pursue Masters.
Implemented Peterson's tournament algorithm to solve mutual exclusion of n processes in Java (n >= 2). Using a tree like structure the nodes move up the tree and execute the critical section when they reach the root (think of it as the winner of a knockout tournament).
Leader Election in Distributed Environment
To understand the dynamics of distributed computing, I worked on a Java project that simulated different algorithms to elect a leader among a set of distributed nodes. I implemented the HS algorithm for the synchronous setting and FloodMax algorithm for the asynchronous one.
Classic Notes App in Electron
I developed a notes application with ElectronJS to experiment with Electron, Reach UI and material-UI. The whole purpose was to try out electron and run it on Windows and Mac platforms.
To dive into data management with redux, I built a web application in React with components from Material-UI library, and leveraged the API provided by Github to access user's public profile.
Pyfix is an automated program repair tool that given a Python script, a list of lines of code susceptible to bugs which were reported by TarantulaPy and a test suite, determines to fix the bug(s). It takes cues from the lexical scope, and enumerates the variables and comparison conditions in suspected loc, run them against test cases and reports if all of them passed, which implies that the enumeration worked. PyFix is one of the earliest works in the domain of analysis of Python programs.
TarantulaPy is a correlation-based fault localization technique that uses the coverage information and stats from test cases to rank the lines of code of a Python program in terms of susceptibility to bug(s). For more confidence in the results, the program elicits a high number of test cases. Since most new programmers start their careers in Python, tools such as TarantulaPy can provide them with valuable insights into the probable causes of errors.
Stutor is a web application that provides a platform for students to connect with tutors in their proximity based on the distance model of Tinder. This was my first software engineering project that encompassed various tools and technologies used in the industry, such as Express, MongoDB, Heroku, and Postman.
Cache Simulator in C
Simulated the cache using the LRU and FIFO replacement policy. Program outputs the number of hits and misses for a given stream of input, gives an idea of the effectivness of the replacement policies.
Developed a PlantsvZombies like game in Unity game engine backed by C# code. I incorporated opensource Pokemon sprites instead of the regular plants and zombies. Every Pokemon was assigned a single attack such as all water Pokemon would shoot water in a single direction. The user could plant their Pokemon (just like PlantsvZombies) to protect their base against Team Rocket's Pokemon. I also integrated Vuforia API to provide augmented reality functionality.