Let's Get Technical
My experience along with some interesting ideas and technologies that I've worked on.
Awesome Experience
HCL Technologies
Innovation Lab Intern Cary, USA
- A team comprising of handful of people and backed by a great mentor, the primary goal of Innovation Lab was to deliver ideas in an Agile manner.
- Some of the interesting areas that I have worked on include building an intelligent data synthesis application in Java, constructing a DevOps practice using Jenkins and Ansible, creating reusable components in Angular 4 and integrating them with RESTful Java application.
May, 2017 - Current
Accenture
Software Engineer Mumbai, India
- This was the beginning of my professional experience as a software developer.
- I worked on multiple e-commerce projects, primarily on creating multi-threaded and concurrent APIs for managing high volume data transactions. I used frameworks like Spring Batch, JAXB, OSGI, etc. to parse, process, store and report voluminous data generated by e-commerce website.
- Apart from backend I have worked on frontend in designing UI components and integrating them with backend services.
- One of the highlights was the use of Adobe Experience Manager (AEM). It is a content management system that helps to design highly configurable web pages and has great support for analytics. I designed OSGI modules for processing data from SAP Hybris external API, authentication and web components that were integrated with AEM.
Nov, 2013 - July, 2016
Cool Projects
DevOps
-
Automated Robust Continuous Deployment
- Devised Ansible roles that can create and provision remote virtual machines hosted on AWS, capable of running Jenkins CI jobs and subsequently trigger intelligent deployment to a Nomad cluster, that is fault tolerant with ability to rollback in case of any failure.
- Created a robust rolling update strategy for sending updates to all the nodes in AWS, that updates only few nodes at a time.
- Built a canary release strategy using Node.js and Redis Server that will publish and manage new experimental features to production environments.
JavaScript
Ansible, Node.js, Jenkins, AWS, Redis -
Cluster Monitoring and Auto-recovery Agent
- Created an agent which monitors traffic from Nginx load balancer to clusters of AWS nodes hosting micro-services, the logs of which are parsed and saved on an Elastic Stack.
- On discovery of under-performing node/s, agent will stop all the traffic to that node/s, notify system admin and try to recover the node/s by performing predefined actions based on type of problem.
JavaScript
Ansible, Node.js, Elastic Stack, AWS, Redis, Nginx
Artificial Intelligence and Machine Learning
-
AI assistant for Lexis Advance, Lexis Nexis Hackathon
- Built an interactive chat bot using NLP that can help find relevant information across multiple pages and data store of Lexis Advance System, by leveraging power of Node.js, Microsoft Bot Framework and Azure Services.
JavaScript, Python
Microsoft Bot Framework and Azure Services, Node.js -
The Natural Conservancy Fisheries Monitoring
- Employed machine learning to monitor fishing techniques and identify any illegal activities.
- The inputs were from cameras installed on boats, which are processed using convolution neural networks, using Keras and Tensorflow, to accurately classify fishes.
Python
Keras, Tensorflow
Networking
-
Peer-To-Multi-Peer File Transfer System
- A simple java application that uses UDP protocol for fast transfer of a file to multiple peers from one peer.
- A peer advertises a list of files it has available in its repository to all the peers in its list.
- Any peer that needs a particular will send the request to this peer, which on receipt of response from all peers proceeds to transfer the file to all the requesters.
- If a file has not been transferred, it will try again till file transfer is successful, this achieving reliability on UDP.
Java
RESTful Applications in Android
-
Business Services using Peer-To-Peer Referral System
- An android application for providing business services using peer to peer referral system, based on highly scalable Akka server and powered by Play Framework.
- The user can provide a matrix of their requirements, which will be checked with their immediate acquaintances. If a particular acquaintance cannot fulfill acquaintance, it will refer it's own acquaintance that can possibly fulfill the requirement. This acquaintance is now a new acquaintance of the user.
- When an acquaintance fulfills a request, it's importance factor is increased and can become a preferred acquaintance for fulfilling requests.
Java
Play Framework, SBT, Akka, Android Studio -
Distance Tracker Android Application
- A simple android based application powered by Play Framework that tracks a user's current location and keeps a track of distance travelled by the user.
Java
Play Framework, SBT, Android Studio
WebApps
-
Reservation Management System for Library
- A robust web application designed using Ruby on Rails that allows users to create accounts and reservations as well as to manage their profiles and reservations.
- Admins can use the app to manage accesses and reservations of users.
Ruby on Rails, JavaScript, HTML, CSS
PostgreSQL, Heroku, RubyMine
Some other interesting projects
-
Tumor Board Protocol
- A protocol designed using Blindingly Simple Protocol Language (BSPL) that formalizes interactions and business services between patient and entities of medical institution for successful identification of cancer.
- The protocol can be tested using protocheck tool.
BSPL
protocheck
Tools of the Trade
The two most important things in Computer Science are
However, knowing few tools and languages can certainly get work done faster.
-
Languages
Java, Ruby on Rails
JavaScript, Python
R, SQL, Prolog
HTML, CSS -
Environment
Windows, Linux, Android
Eclipse, AndroidStudio
RubyMine, RStudio, Atom -
Technologies
Ansible, Puppet, Docker
Elastic Stash, AWS, Akka, IBM Liberty, GIT, Nomad, Redis
MS Bot Framework and Azure Services, Keras, Tensorflow
Node.js, Play, Spring, ANTLR, Hibernate, IBM DB2, MySQL
Angular 4, Android, Jekyll
Adobe Experience Manager, Nginx, IBM WebSphere, Tomcat