Vaastav Anand

Computer Scientist/Programmer & Data Lover


"We cannot solve our problems with the same

thinking we used when we created them"

-Albert Einstein

Find Out More CV

Profile


I am a grad student in the Network, Systems, and Security Lab at University of British Columbia. I like building, testing, breaking and fixing software systems. My main areas of interest are Systems, Software Engineering, and Natural Language Processing. My hobbies include watching football, formula 1 and learning new languages. I also like to cook in my free time and I do enjoy writing and reading poetry from time to time.

Publications


Vaastav Anand. Dara : Hybrid Model Checking of Distributed Systems. In The ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2018, Lake Buena Vista, Florida, USA. (SRC). Pre-Print

Education


The University of British Columbia

Master of Science, Computer Science - Sept. 2018 - current

Bachelor of Science, Computer Science - Sept. 2013 - April 2018

Unofficial Transcript

Vancouver Institute of Visual Analytics

Visual Analytics 101 - Tools, Techniques and Theory

Visual Analytics 102 - Applications of Visual Analytics

Online MOOCs

Coursera

Neural Networks and Deep Learning - deeplearning.ai (Certificate)

Statistical Inference - John Hopkins University(Certificate)

Reproducible Research - John Hopkins University(Certificate)

Exploratory Data Analysis - John Hopkins University(Certificate)

Structuring Machine Learning Projects - deeplearning.ai (Certificate)

Getting and Cleaning Data - John Hopkins University(Certificate)

R Programming - John Hopkins Univesrity(Certificate)

The Data Scientist's Toolox - John Hopkins University(Certificate)

Udacity

GT Refresher - Advanced OS -Georgia Tech

CS344 Intro to Parallel Programming - NVIDIA

GW SEAS Open edX

Practical Numerical Methods with Python (Badges)

Work History


NVIDIA

Software Engineering Intern, MODS Team, May 2017 - Aug 2017

Implemented memory repair sequences as scripts to repair bad parts of High Bandwidth Memory (HBM). This resulted in increasing GPU yield.

Designed, developed and implemented a CUDA based linpack test to stress every bit of memory to weed out GPUs with bad memory in the early stages of production.

Designed and deployed an internal website that reported every release version of the MODS application, the last change in the release and a link to download the release.

Ported CUDA threading stress tests from CUDA teams to MODS.

Software Engineering Intern, MODS Team, May 2016 - Aug 2016

Implemented a synchronization option for CUDA based linpack stress tests in MODS to synchronize CUDA kernel launches within 30µs across multiple GPUs in multi-GPU systems like DGX systems.

Ported MODS code and windows builds to msvc140 from msvc90 to enable C++11.

Thinkbox Software,Inc.

Software Developer Intern, Sequoia, Sept 2015 - Apr 2016

Designed, developed and implemented the frontend and backend of the 3D PDF export option in Sequoia which allowed users to export their 3D models in PDF files by implementing a writer class for the U3D file format.

Implemented import options for Lidar point cloud file formats of scanners from Riegl and Zoller + Fröhlich.

Implemented binary string obfuscation making the licensing system more secure.

Ported Unit tests from Boost Test Framework to Google Test Framework.

The University of British Columbia

Undergrad Researcher, Network, Systems and Security Lab, May 2018 - current

Worked under Prof. Ivan Beschastnikh and Stewart Grant on Dara

Research Assistant, Interdisciplinary Speech Research Lab, Nov 2017 - Apr 2018

Developed and implemented an algorithm to compute the similarity in tones of two different voice recordings.

Designed and implemented a web application and game where a sentence or a word with different tones from a tonal language (eg: Cantonese, Yoruba) is played and people need to try and replicate the tones exactly.

Undergraduate Teaching Assistant, Computer Science Department, Sep 2014 - Apr 2018

Teaching Assistant for CPSC 121, CPSC 210, CPSC 213, CPSC 313, CPSC 320, CPSC 415

Lab Planner for CPSC 121 for 2015S term.

Awards & Scholarships


2nd Place, ESEC/FSE'18 Student Research Competition (Undergrad Track)

SIGSOFT CAPS Award

More Info

International Tuition Award

More Info

UBC Work Learn International Undergraduate Research Award

More Info

UBC Faculty of Science, International Student Award 2015, 2018

More Info

ACM ICPC PacNW Regional Contest 2017 Division 2 Champion

Scoreboard

UBC Trek Excellence Scholarship 2016-2017, 2017-2018

More Info

UBC Dean's Honour List 2014, 2015, 2017

More Info

UBC Computer Science Student Service Award 2015

Certificate

GIIS Global Citizen Scholarship 2011-2013

More Info

Letter of Appreciation from Minister of Education, India

Research Projects


Dara : Hybrid Model Checker for Distributed Systems

Golang

A model checker written in Go which combines the benefits of a traditional model checker with that of an implementation level model checker of distributed systems to find Heisenbugs

Features

  • A model checker for Distributed Systems which combines the speed of a traditional model checker with the realism of an implementation level model checker.
  • 2 page abstract published at ESEC/FSE'18 in the Student Research Competition Track

GoVector : Vector clock logging library

Golang

A Vector clock logging library which implements the vector clock algorithm and provides feature-rich logging and encoding infrastructure.

Features

  • This library can be added to a Go project to generate a ShiViz-compatible vector-clock timestamped log of events in a concurrent or distributed system
  • This library can also generate TSViz-compatible logs
  • Maintainer of the library since June 2018

Projects


Battle Tanks

Go

A P2P Distributed Battle Royale game with validation of player actions.

Features

  • A Peer-to-peer network architecture
  • A centralized server for game dsicovery
  • Flooding protocol for dissemination of all actions
  • Uses client side prediction to validate every action of every player
  • Berkeley Algorithm for Clock Synchronization to prevent network congestion by old packets.
  • Uses Distributed KV store for stat collection
  • Open-ended class project for CPSC 416

Block Art

Go

A a blockchain based collaborative art project that allows users to contribute pieces of art to a shared canvas

Features

  • System API can be found here
  • Allows users to draw circles, rectangles and paths using svg strings
  • An embedded web server to replay the history of all the shapes that were added
  • Deployed on Azure
  • Class project for CPSC 416

Contractor Database Management System

Java, React

A better system for Coast Capital Savings that eases the management of contractor information, including: maintaining the history of the contractors,automating the management of contractor employment records, visualizing trends, generating ondemand reports to aid the administrative and decision making process and managing future needs of the company.

Features

  • Uses jdbc to implement controllers for writing/reading to/from a MySQL database.
  • Uses React for the frontend
  • Deployed on AWS
  • Implemented for Coast Capital Savings Inc as part of CPSC 319

Article Extractor from OCR scans of newspapers

Python

A python application to download the text file versions of OCR scans of old newspapers and extract all articles related to president's annual message.

Features

  • Uses Python's response library to download all the OCR scans of the newspapers
  • Downloaded around ~11.5K newspaper scans ranging from the time period of 1860-1920
  • Uses levenshtein distance metric to compare words and thus detect the presence of keywords in the article.
  • Implemented for UBC History Lab course taught by Dr. Heidi Tworek in January 2018.

eTone

Python

a web application and game where a sentence or a word with different tones from a tonal language (eg: Cantonese, Yoruba) is played and people need to try and replicate the tones exactly.

Features

  • A language agnostic algorithm to compute the similarity in tones of two different voice recordings.
  • Uses the similarity in fundamental frequencies to calculate the similarity.
  • Uses Django to provide the backend for the webapp
  • Implemented for Interdisciplinary Speech Research Lab

Basic Linux OS

C, Assembly

A 32-bit Linux Operating System with keyboard support

Features

  • A memory manager to manage memory allocated by user proceses
  • A process manager to manage all the processes in the operating system
  • A signalling system to deliver signals with priority to the user processes
  • A buffered keyboard driver to provide access to the keyboard
  • Class Project for CPSC 415

Mini Java Compiler

Java

A compiler written in Java to compile programs written in MiniJava, a subset of Java

Features

  • Uses JavaCC to implement a parser with a Lookahead of 2 to parse the MiniJava grammar
  • The compiler does typechecking, translation to IR, Instruction Generation, Liveness Analysis and Register Allocation
  • Class Project for CPSC 411

Canadian Football League Predictor

Python

A predictor game for ongoing CFL games which allows users to guess which play will occur next and predicts the outcome of each play.

Features

  • Uses Random Forests for training the model to predict the results of future games
  • Uses Django to host the backend functionality of the game
  • Utilizes Materialize CSS for an aesthetic frontend

Music Plagiarism Detector

Python

A python application that calculates the similarity rating between any 2 given songs by comparing their lyrics and MIDI representations.

Features

  • Implements teh algorithm described in this paper
  • Uses PyQT for frontend of the desktop application.
  • Implemented at nwHacks 2016

Fantasy Premier League Manager

Python

A data scraper program that scrapes data using the fantasy premier league API about all the players adn teams who have featured during the current English Premier League season.

Features

  • Uses the requests library in conjunction with the json library to obtain all the data from the FPL API.
  • Scrapes all the FPL data about every single player that has featured during the current English Premier League season
  • Cleans, Filters and Saves all data in csv files using the csv python library

Vancouver Fruit Gardens

Django, Python

A web application that shows all the fruits gardens in Vancouver and allows the user to save their favorite gardens as well as tweet about them.

Features

  • Shows a map of all gardens in Vancouver as well as all the types of fruit trees in each garden.
  • Allows user to save their favorite gardens.
  • Plots route from user's current location to a specific garden using Google Routes API
  • Allows you to tweet about any app using twitter API.
  • Gets reviews of every garden of twitter on click.
  • App was deployed on heroku and can be found here

Event Manager

Android, Java

An andorid application aimed at making the jobs of event amnagers easier

Features

  • Uses firebase to provide consistent data across all platforms
  • Developed at the inaugural nwHacks Hackathon in 2015

Restaurant Quiz App

Android, JAVA

The game basically requires the user to guess by clicking on the map where a randomly chosen restaurant is in the city with the ability to use upto a maximum of 3 hints

Features

  • Uses JSON parser to parse Yelp restuarant data
  • Uses Google Maps API to place markers on the map where the user had clicked and to plot the total route between all the clicked points
  • Uses Google Maps to overlay an arrow in the direction of the reaturant from the user's click in order to provide hints to the user.
  • Class project for CPSC 210

Monopoly World

C++

Textual Version of the popular board game Monopoly World

Features

  • A native Windows application
  • Allows a maximum of 6 players to play the game at the same time
  • Captures all aspects of the board game including but not limitied to buying properties, paying rent to other players, random dice rolls, random community chest cards
  • My first ever CS project!

Project JOKER

Microsoft KINECT + C#

Just One Kool Esoteric Responder a.k.a JOKER was intended to be a futuristic AI with the ability to take commands from the user and perform designated tasks just like JARVIS from The Iron Man.

Features

  • Could perform simple math operations on voice commands.
  • Open basic windows applications on voice commands.
  • Pong game using gesture recognition

Data Analysis


Visual Analytics 102 Project

Theme Extraction of Hourlie Marektplace Reviews

Presentation

Report

Visual Analytics 101 Project

Why Arsenal haven't won the english premier league in 10 years?

Presentation

Kaggle Ocean Ship Logbooks Project - British Conquest of India

Visualization showing routes of all shipts that landed in India during the British Raj

Source + Demo

Data Analysis Assignments from Data Science Specialization on Coursera

Rpubs profile

Research


UBC WLIURA

Undergraduate Researcher at the Network, Systems and Security Lab

Worked under Prof. Ivan Beschastnikh and Stewart Grant on Dara

UBC iGEM 2016

Responsible for setting up the wiki and some of the microorganism population modelling

Link to Wiki

Stanford Crowd Research Collective, Winter 2016

Crowd Researcher, Daemo - a self-governed crowdsourcing marketplace

Aided in gathering needs of requesters and workers as well as reviewing existing crowdsourcing marketplaces like MTurk

Sample Contribution

Undergraduate Research Opportunities Conference (UROC)@UWaterloo, 2015

Bioninformatics mini project on Tandem Mass Spectroscopy

Ipython Notebook

Source Code

CPSC 421/501 Research Project

Survey paper on Efficiency of Parsing Methods for Context-Free Grammars

Paper

Academic Service


Sub-Reviewer, SIGCSE'19, William Anthony Mason

Sub-Reviewer, ESEC/FSE'18 NIER, Dr. Ivan Beschastnikh

Sub-Reviewer, ESEM'18, Dr. Ivan Beschastnikh

Volunteering


Software Developer, UBC UX Lab, Jan 2018 - Apr 2018

Undergrad Representative, UBC CS Program Experience Committee, Sep 2014 - Aug 2015, Sep 2016 - Dec 2016

Mentor, Girls Learning Code Summer Camp, Ladies Learning Code, June 2015 - Aug 2015

Volunteer, GirlSmarts4Tech, Nov 2014 - Apr 2015

Volunteer, UBC CS TechTrek, Feb 2014

1st Year Imagine Day Orientations Leader, UBC Centre for Student Involvement and Careers, Mar 2014 - Dec 2014

Technical Skills


C++

Java

Golang

C

Python

Perl

Bash

Ruby

R

MATLAB

SQL

Julia

Racket

Haskell

Scala

C#

Creative Endeavors


Mondrian Art Generator

Generates a random art piece in the style of Mondrian everytime you refresh the page

Try it out!