Career Profile
Full stack developer with a strong software background and hands-on experience in design, development, and deployment of applications.
Experiences
I worked on Amadeus Social Media Management tool. The first part of my internship was focussed on creating a natural language processing module for analyzing social media data (twitter). The second part was creating the user-interface for displaying the social media data, customer and flight details and customer profiles. The thord part constituted interfacing Amadeus's Customer Experience Mangement (CEM) with the application and creating REST API end-points in backend for retrieving customer profiles.
I worked on Python, Flask, MongoDB, Angular, HTML and CSS.
I worked on a project that provided Manufacturing Execution System (MES) solutions to our client. I was part of a team that gave real-time and updated information about the production plants, and helped our clients make informed decisions, and identify opportunities for improving the production process. These goals are achieved by integrating the Enterprise Resource Planning system with the Shop Floor Control system.
I worked on GE Proficy -Plant Applications, SQL and Java.
Obtained hands-on experience with advanced micro-controllers and their coding. Designed circuits that involved interfacing AVR micro-controllers with LEDs', keyboards and LCDs'.
Projects
Folfox-Network
I created a social networking website featuring signup/login, wall, profile pages. The user can post and also comment and like on other people's posts. In the profile page the user can view/edit his profile, send and accept friend requests. Chatting is implemented using websockets. MongoDB serves as the database. The application is made in Node.js. I created docker image for the application and deployed it on Digital Ocean. The configuration involves 1 MongoDB server, 2 NodeJS application servers and 1 load balancer. I used a separate droplet for Rancher to manage the servers and to scale.
Node.js, websockets, MongoDB, Docker, Rancher, Digital Ocean
Mini-Pregel
I designed a multi-threaded graph analytics system modeled on Google’s Pregel. Given a graph, the system calculates the PageRank of all the vertices. The communication between vertices is achieved using message queues and synchronization using cyclic barriers.
Java, Multi-threading
Distributed Word Count
I built a distributed word-count system consisting of master and many worker nodes. The master manages the workers - spawns/re-spawns them; does fault-tolerance by sending heartbeat messages every 3 seconds; and renders the final output. The workers communicate with master using sockets.
Java, Multi-processing
Tic-Tac-Toe
I designed a tic-tac-toe game using MVC architecture. The model, view and controller are decoupled such that replacement of a component doesn't effect the others. I used the Adapter Pattern to interface the view (grid of buttons) with the controller.
Java, Spring, MVC
FolfoxSearch
I created a simple search engine comprising of web-crawler, parser, indexer, tf-idf and PageRank, and MongoDB. The crawled pages were parsed using filtering techniques like stemming, stop word removal, etc. I used Cloudera VM running Hadoop MapReduce to index the pages. Ranking was then done using a combination of tf-idf and PageRank. The project was also deployed on an AWS EC2 instance using DynamoDb and S3 file storage.
Python, Hadoop Map Reduce, MongoDB and AWS
Linear Regression
I implemented two Linear Regression models using Gradient Descent algorithm and Normal Equations without using any Machine learning libraries from scratch. I then compared the performance using RMSE and R-Square metrics by varying variance, size of the dataset, correlation, etc.
Python
GestureMusic
I created an Android music player application whose features like play/pause, volume control and switching to previous/next songs were controlled by hand gestures detected from Microsoft Band. The pipeline of segmentation, feature extraction and classification layers was implemented in Python. I employed socket programming and Plotly's JavaScript API to achieve data communication and visualization respectively.
Python, Android and Plotly
Web Crawler
I created a multi-threaded web crawler from scratch in Python. The cralwer was deployed on AWS EC2 instance and its results were stored in S3 file storage.
Python, AWS and S3
KnowYourSurroundings
I created a web application that takes in a location from user and displays the interesting places near that location. Along with the location on map, it also gives links from Wikipedia of those places. A user sign-up page was also created. The site was hosted on Heroku.
Python, Flask, Heroku, PostgreSQL and WikiPedia APIs'
Phoenix
I worked in a team to design and implement a secure multi-threaded mobile payment system which involves four entities Merchant, Payment Gateway, Certificate Authority (Java servers) and Client (Android application). We used 512-bit RSA key pair, MD-5 hashing, X.509v1 certificates, encrypted timestamps and session keys for ensuring confidentiality, integrity, and authentication. We added One time password (OTP) as a second layer of authentication. Email and message notifications were also enabled.
Java, Android, Twilio’s Java API, JDBC-SQLite and JavaMail API
RestaurantMenuWithOAuth
I created a Restaurant Menu application with OAuth2 APIs of Google+ and Facebook. The application displays a list of restaurants and their menus to users. Users can sign in using their Google+ or Facebook credentials. The restaurant owner can add, edit or delete an item/restaurant. (CRUD functionality). Access to modify is restricted to the owner of that particular restaurant.
Python, Flask, SQL Alchemy, CSS, Bootstrap
Analysis of Google's QUIC Protocol
I experimentally analyzed the performance of Google's QUIC protocol on GENI testbed. I used the proto-quic library for obtaining QUIC connections. The performance was tested by measuring download time of different files under bandwidth restriction, varied initial pacing rate, UDP and TCP cross-traffic and delays in transfer. Simulation of the project was done on GENI testbed to get real-time performance analysis.
C++, GENI and Linux
BlogWithAkash
I created and designed the sign up, log in and blog creation pages. I then implemented wiki to allow users to edit blogs. The passwords were stored secure using sha256, random salt, and secret. The website was then deployed using Google App Engine.
Python, Jinja, Google App Engine, HTML, MaterializeCSS
FolfoxMusic
I developed a music player application using Processing. I used 'minim'- a music library for playing audio and employed Fast Fourier Transform (FFT) to audio signals for visualization. I the added audio’s meta-information in display, and support for keyboard inputs.
Processing
Home Butler
I collaborated on the design of an autonomous robot which fetches objects upon a voice or text command. The objects and their locations are pre-fed into a library. So on the command the robot moves towards the object's location and on reaching it an on board camera starts taking images of the location, simultaneously comparing it with already stored images of the object. Upon successful comparison the robot activates a mechanical gripper which then extends towards the object and fetches it. Once the object is gripped it traces the path back to the user along with the object.
LabVIEW, MATLAB, Android and Arduino