Akshay Nagpal

Software Engineer | Lifelong Learner | Meme Addict

About Me

I am currently working at Amazon as a Software Engineer.
I completed my masters in Computer Science from Columbia University, New York.
I also blog occasionally at BeanCoder.
I have gained experience in the following languages and tools via fulltime jobs and/or internships, school projects, hackathons and open source projects.

Python
Java
JavaScript
PHP
HTML5
OCaml
Bootstrap
Phaser.JS
Canvas.JS
OpenCV
MySQL
PostgreSQL
Amazon Web Services
Flask
Django
Unity3D
PhoneGap
Pandas

Experience


Software Engineer Intern - Summer 2017, Fall 2017

- Implemented Real Time Performance Categorization of critical ETL tasks in the data warehouse using Python Flask, JavaScript and SQLAlchemy.
- Reduced time taken to monitor tasks and identify unexpected behavior by 400%.
- Extended Apache-Airflow for inter-graph task dependency support and reduced page load time by 60% through query optimization.
- Implemented lazy loading of task dependencies using AJAX calls. Complete system worked asynchronously with a backend API.
Columbia University Information Technology (CUIT)

Software Engineer - Fall 2016

Teaching & Learning Applications Team
- Developed a database query interface and backend using Flask (Python MVC web framework), JavaScript & SQL.
- Improved the efficiency of the tool by 70% by eliminating redundant calls to database through changing usage design of the interface
- Improved code quality by static analysis using Pylint.
- Integrated application component with the modular app using Flask BluePrint.
MIT Media Lab Asia

Software Engineer Intern (R&D) - Summer 2015

Research and Development Team
- Built a focused search engine for research journals using R (Shiny) as a part of a larger medical analysis application
- Generated search results using string matching and collected usage data by tracking clicks and search box inputs
- Built RgScholar : Open Source API to integrate Google Scholar search functionality into R applications
Karmatech Mediaworks

Software Engineer Intern (Web Apps) - Summer 2014

Web Applications Team
- Implemented media upload and thumbnail creation interface, social login APIs and form input validation using PHP
- Designed and implemented MySQL Stored Procedures

Projects



JengAR

JengAR is a one-player, augmented reality game in which users can interact with a pre-existing Jenga tower containing 48 blocks. Like the real life Jenga game, users are able to select a block from the base of the tower and place it on the top of the tower. The user’s goal is to avoid collision and collapse of the tower. If the block placement causes an imbalance of the Jenga structure, the program will detect this fault, resulting in the tower toppling over, and terminating the game. JengAR is designed to mimic real Jenga as closely as possible, just with different control mechanisms.
View Code - GitHub

Hello World

Talk to people with similar interests without knowing their language. View on Devpost
PyPi_Logo

Word2Number

This is a Python module to convert number words (eg. three thousand and twenty one) to numeric digits (3021). >>> print(w2n.word_to_num("nine hundred and ninety nine billion forty four million four thousand three hundred twenty three")) 999044004323.
View Code - GitHub
GRIDLang_Logo

GridLang

GRIDLang is a language to design games in an intuitive and expressive manner. It enables developers to quickly prototype grid-based games and get a programmatic view of it. It simplifies the process of defining rules for a game, creating a grid and manipulating them. There are in-built language components focused on game development that enables developers to express more with less lines of code.
View Code - GitHub
SigmaLearn

SigmaLearn

Our application records a professors speech and converts it to text in real time. It is an efficient application that enhances note taking by providing the summarisation feature accompanied by an assist that can aid a student understand any word that he does not understand. The application also provides videos relevant to the content to enable audio visual learning. Further, we provide relevant news articles to enable one to remain abreast with the current trends. The application will not only serve as a one stop learning solution but also serve as a saviour for the differently abled. View on Devpost

Coverage Based Fault Injection

Prototype implementation of ​Coverage Based Fault Injection (CBFI), to test programs for errors caused due to faulty or malicious underlying hardware, operating system and other related components. In this approach CBFI is implemented as a coverage based fuzzer with ​dynamically linked library that wraps around existing GNU libc calls and permutes fault injections to fail a set of libc calls and test the program robustness as well as susceptibility to vulnerabilities due to unhandled exceptions or crashes at runtime. This work is inspired and extends the previous work on fault injections.
View Code - GitHub
codeprofiler

CodeProfiler

Github Code Analysis & Visual Summary. Scan your Github profile and get summary about your repositories and gists. View Code - GitHub
frameseller

FrameSeller

- Built FrameSeller API that allows user to view products, buy and pay online via stripe and see their orders.
- HATEOAS style implementation for API responses.
- SQS + SNS architecture for the “fan-out” design pattern and decoupling microservices for asynchronous operations
- Slack Integration
- AWS Step function integration for User Sign Up/Verification Process
- Custom Authorizer to authorize user for buying products and viewing his orders - Request body validation in API Gateway
- Response Integration so that API throws valid error codes in case of errors
- Orchestrator - orchestrates complex product ordering process, bringing together async operations of order queueing, updating order status throughout the process, payments etc.
- Integration with Stripe API for accepting payments
- Serverless microservices architecture using AWS API Gateway and AWS Lambda
- API was successfully exported to Swagger and deployed to AWS Lambda again via Swagger file
View Code - GitHub

AngelMatch - Matching Volunteers to NGOs

- Web Application to intelligently match people seeking to volunteer their services, to organizations seeking volunteers with specific skills. We utilize the latest machine learning techniques along with cloud technologies to bring forward a smart, scalable application.
- Cloud technologies used: AWS ElasticSearch, SQS, ElasticBeanStalk, S3, SES.
View Code - GitHub
LionMart_Screenshot

LionMart

- Online re-seller marketplace for students built using Play MVC Framework (Java) - It is a web application that allows users to post used items for sale and buy them by communicating through Facebook message, as well as provide price guidance for items. - Front end built using BootStrap, JavaScript, HTML5 ; Database: MySQL - Using Travis-CI for continuous integration and JUnit for unit testing View Code - GitHub
tweetSentiments

Plotting tweets with Sentiment using Kafka, Alchemy API, SNS, ElasticSearch

- Used Twitter Streaming API to fetch tweets from the twitter hose in real-time.
- Used AWS ElasticSearch to store the tweets
- Created a web UI that allows users to search for a few keywords (via a dropdown).
- Used Heatmap (Google Maps API) to render these filtered tweets in the map
- Deployed on AWS Elastic Beanstalk in an auto-scaling environment.
- Used Kafka service to create a processing queue for the Tweets that are delivered by the Twitter Streaming API.
- Used Amazon SNS service to update the status processing on each tweet so the UI can refresh.
- Integrated Alchemy API into the Tweet processing flow to detect the sentiment of the tweet.
- Plotted tweets on a map using based on their locations and added custom markers based on their sentiment.
- Deployed on ElasticBeanstalk and EC2 instances.
View Code - GitHub

Contact Me


I currently stay in New York. You can contact me at akshay DOT nagpal AT columbia.edu.

Other Profiles