Built a system that recommends subreddits for a user based on collaborative filtering -- a technique that includes identifying users similar to a given user.
The dataset was a JSON dump of all of Reddit's comments from May 2015 (found here) totaling ~53 million. Python, Pig, and Apache Spark (in Scala) were first used to order and pre-process the data. Then, Spark's MLlib was used to create a machine learning model, and to train that model implicitly on 80% of the data.
All code can be found on the project's Github repo.
Collaborated with Amirali Rajan, developer of the top-selling iOS game "A Dark Room" (ADR), to create an Android version of ADR using RubyMotion and Java (Android Studio). Working prototypes of game screens and animations, including 2-dimensional map scrolling and the "falling asteroids" sequence, were delivered in Ruby.
RubyMotion is an innovative way to "write cross-platform native apps in Ruby." It was only a few weeks before we started this project that Android support for RubyMotion was released. Hence, documentation and examples were quite limited. This motivated us to not just work on our project, but also to give back to the community by open sourcing our general code samples and blogging about them!
Devised a security system using an RFID card reader, a PIR Motion Sensor, a NERF gun, an Arduino UNO, a servo, and some other components. The objective was to shoot a trespasser who attempts to walk in through the doorway either by presenting an invalid ID, or no ID at all.
Here's the final test video. See project code on GitHub.
Programmed a C++ application that simulated the typical activities at a restaurant: table assignment, ordering food, serving, payment etc. Extensively utilized dynamic memory concepts to ensure high memory efficiency and performance.
Built a Java application to simulate the flight of a remote-controlled helicopter. Essentially, the screen is infinite and the user sees the helicopter's top view. The helicopter scopes in/out to create the effect of gaining/losing altitude.
Created efficient GUIListener classes that controlled the rotation speed of the blades relative to the altitude and thrust. Here is the final video:
Designed and developed Java classes for the 2-3 Tree Data Structure. Heavily utilized complex recursion. The many corner-cases of the problem were excellent practice for breaking down a big structure into smaller, simpler units.