Full-Stack Software Developer
UI/UX Researcher

Hi! I am Gaganpreet,

I am a recent M.Sc. Computer Science graduate from the University of Manitoba. I worked as a graduate Research Assistant in the Human Computer Interaction Lab for last 2 years. Beside academics, I have 2 years of professional experience as an Android Developer and Software Developer.
I like working of new ideas and think-outside-the-box. In 2014, my prototype ready startup was selected to qualify for pitch-sessions at a National-level entrepreneurship event organized by Nasscom 10,000 Startups and Microsoft Accelerator.


Bachelors of Science

Sep 2011 - May 2015
Computer Science and Engineering
Punjab Technical University

Masters of Science

Sep 2015 - Aug 2017
Computer Science
University of Manitoba


  • September 2015 - August 2017

    HCI Research Assistant/ Interaction Developer

    University of Manitoba

    1. Developed applications for emerging wearable devices (running on Android OS).
    2. Developed a back-end server applications to capture the real-time performance data from the wearable devices (using Sockets) and stored the data into SQL databases.
    3. Wrote code to analyze the data and visualize it real-time on a web-interface using JavaScript visualization libraries such as plotly.js and D3.js
    4. Built a novel touch-gesture library for smartwatch which reduced navigation time by 50%, thus, allowing faster access to information.
  • June 2014 - August 2015

    Android Developer

    Root Work Systems Pvt. Ltd.

    1. Responsible for initial design and development of the Zee-TV mobile app. Collaborated and worked with front-end team for implementing UI and UX design.
    2. Actively took part in Agile Scrum meetings to provide high-level estimates for backlog items.
    3. Worked on client server architecture for parsing the data from REST web-services.
  • May 2013 - December 2013

    Software Developer

    InfoBiz Technologies

    1. Developed and deployed a web reporting software that easily integrates with multiple databases.
    2. Developed a user-friendly dashboard with visually aesthetic widgets that supports a widerange of user queries. It allows easy export of data-reports to PDF, Excel, HTML5, XML, and other formats.
  • November 2016 - July 2017

    Software Developer

    SAFCANADA (Volunteer)

    1. Developed a data-base driven Java application for systematically arranging and matching the entries of the donors and recipients
    2. Developed Servlets & JSP pages for administrative tools, using custom tags.Used JavaScript for client-side validations in the JSP and HTML pages
  • January 2016 - April 2016

    Teaching Assistant/Grader

    University of Manitoba

    1. Marked assignments and tests for the Object Orientation Course
    2. Provided written feedback to the students regarding their assignments

Programming Languages and Technologies



Eximius, IIM Bangalore (wiki)

Eximius is the oldest and the largest Entrepreneurship Summit hosted by a B-school in India and has also been rated as one among the top 5 business plan competitions in India.

I presented my prototype-ready startup (Friendzweb) at - Disrupt It! event, Eximius, IIM Bangalore, sponsored by Nasscom 10,000 start-ups and Microsoft Accelerator. My startup was one of the top-50 startups of India to qualify for pitch sessions to compete for a direct seed-funding. I was indeed the youngest and the least experienced candidate among all the participating entrepreneurs.


D-SWIME: Smartwatch Interactions

The goal of this project was to explore the effects of mobility on smartwatch use, and to design techniques to support mobility and encumbrance. I developed a set of new interaction techniques for panning and zooming tasks namely, SwipeZoom, TapZoom, PanPress and FlickPan. The new interaction techniques outperformed the traditional panning and pinching gestures in terms of completion time and other dependent variables such as overshoots, pan counts etc. In contrast to traditional pinching for zooming, the SwipeZoom and TapZoom showed a 27.59% and 48.45% decrease in completion time. Similarly, PanPress and FlickPan outperformed traditional panning by 21.79% and 45% less time.

Android Javascript HTML5 CSS3 J2EESQL Research Project


Clique Finder

I developed a software in Java for finding maximum and maximal cliques. A variant of classic Bron-Kerbosh algorithm was used to find the max-cliques. I also implemented other optimization methods that can be further used to reduce the running time of algorithm.I could achieve the running time of O(3n/6).

Java Graph Theory Course NP-Complete problem

Geo-Spatial Tagging of Objects in Location-Based Augmented Reality

I proposed a method by which we can augment the virtual content to objects at distinct geographic locations using markerless augmented reality. Virtual content can be in the form of text, image, video, audio or animations that can be generated or displayed in real-time. During object tagging, shape and texture of object is analyzed and virtual content is assigned to the object. After tagging, object information and virtual content is stored to local machine (or cloud server) with unique identification ID based upon geographic location and object characteristics. Based upon this identification ID, object is recognized and augmented content is displayed.

Java OpenCV OpenGL JSON Computational Perception and Cognition Course



I developed a social networking platform and presented it at a national-level entrepreneurship event. Friendzweb aims to connect people based upon their occupation, gender and location. It is a complete social networking platform with basic features like textual chat, wall post, profile pages and some exclusive features like connect, audio-posts, button of choices, city pages etc.

PHP Javascript Ajax Jquery MySQL CSS3 HTML5 Social Networking web application

Friendzweb Mobile App

Android JQueryMobile JSONSQLiteAJAX


Bluetooth Mobile Chat Application

Developed a complete Bluetooth chat application (Android) that establishes the RFCOMM channels to transfer data and supports a wide range of multimedia files.

Android JSONSQLiteAJAXBluetooth

Microsoft Word Plugin

Participated in Microsoft Imagine Cup 2014. Developed a plugin for Microsoft Word that provides real time suggestions on typing i.e suggestions to complete the line, spellcheck and autocorrect. It also provides thumbnail and information about the weblinks embedded in the document. In addition, it allows to publish the document content directly as a webpage thus providing an easy way to develop websites and personal blogs.



AR Drone Automation

Automated the AR.Drone Parrot by using YaDrone Java framework and used OpenCV to recognize colors and patterns. I wrote a program that makes Ar.Drone parrot follows an orange ball.

Java OpenCVMachine Learning Project

User Activity Detection using Smartwatch Sensors

Detected the context and activity of the user from the gyroscope and accelerometer reading of the smartwatch by applying the Kalman Filters. This enables smartwatch to detect the mobility state of the user i.e. whether user is standing, walking or running. It also identifies whether the user is looking at the smartwatch or not, by detecting the position and orientation of the hand.

Android Kalman FilterResearch project


Joint-Interactions for Smartwatch & Smartglasses

By using the sensor readings of both the devices, I developed an application to determine the direction from which the smartglass is tapped or swiped with a finger. It also detects the force with which the smartglass is tapped. It allows to provide the functionality such as panning the maps or navigating through the image gallery.

AndroidJ2EE Kalman FilterResearch Project


Picture Manager and Editor

It is one of the oldest application that I developed (that I can still remember) in 2012. I made a photo manager software for Windows OS with 120 different visual effects. It also provides the web-space to easily store and share the images. A mint of social networking was added by allowing exclusive features such as commenting and liking the images of other user after accepting the share gallery request.

C#Image Processing

Music Player in JavaFX

When JavaFX first became popular in 2012. Out of curiousity, I started programming in JavaFX to develop a fully-functional multi-media player. It has all the features that a standard music player should have such as playlist, forward, backward etc. In addition, it allows to modify the rate and balance of the multimedia file. It can play all the files in a folder or by scanning a web page with multiple embedded audio files.

JavaFXMusic Player