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 Algorithms and Data Structures.
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