Career Profile

Full stack developer with a strong software background and hands-on experience in design, development, and deployment of applications.

Experiences

Software Development Engineer Intern

June 2017 - Sept 2017
Amadeus, Boston

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.

Assistant System Engineer

Sept 2014 - June 2016
Tata Consultancy Services, India

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.

Embedded Systems Engineer Intern

May 2013 - July 2013
Tech Innovates Embedded Solution, India

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

Mar 2018
Social 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

Nov 2017
Graph Analytic System to calculate PageRank

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

Oct 2017
Master-worker paradigm distributed word count system

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

Oct 2017
Tic-Tac-Toe games using MVC architecture

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

Aug 2017 - Sept 2017
A search engine

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

Check it on Github

Linear Regression

Sept 2017 - Sept 2017
Implementation of linear regression using gradient descent and normal equations

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

Check it on Github

GestureMusic

Feb 2017 - May 2017
A hand gesture controlled Android music player

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

Check it on Github

Web Crawler

May 2017 - May 2017
A multi-threaded web crawler for wikipedia.

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

Check it on Github

KnowYourSurroundings

Apr 2017 - Apr 2017
A website that tells the interesting places near user using Wikipedia APIs'.

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'

Check it live

Check it on Github

Phoenix

Nov 2016 - Dec 2016
A Secure Mobile Payment Application

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

Check it on Github

RestaurantMenuWithOAuth

Dec 2016 - Dec 2016
A restaurant menu application using OAuth

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

Check it on Github

Analysis of Google's QUIC Protocol

Oct 2016 - Nov 2016
FA brief 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

May 2016 - July 2016
A blogging website

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

Check it live

Check it on Github

FolfoxMusic

Sept 2014 - Dec 2014
A desktop music player application

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

Check it on Github

Home Butler

Dec 2013 - May 2014
A Voice Controlled Robot for the differently abled

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

Skills & Proficiency

Python & Flask

Java

Angular

HTML5 & CSS

MongoDB, SQL, PostgreSQL, SQLite

Android

Hadoop

Google Cloud & AWS

Linux