A single page version of my resume is also available here.
Lead Software Engineer, Practo (Since - Jan 2015)
Lead a team of four devs and one QA, to design a develop an ad network for clinics and hospitals to advertise on Practo.com.
Have been working closely with the Talent Acquisition team (HR), to help them recruit new front end developers by taking interviews and fabricating innovative puzzles for them to solve.
Senior Software Engineer, Practo (Jan 2014 - Dec 2014)
Developed _Appointment Request Manager_, an internal NodeJS based CRM that helps connect patients and doctors via. Phone.
Have been working on transitioning the Doctor facing part of the application, from BackboneJS to AngularJS + RequireJS based architecture. This migration was aimed to improve performance and resolve code maintainability/scalibility issues.
Improved the perceived page load performance from 9.6 seconds to 3.8 seconds on average. Lead a team of developers to build an application monitoring system to make sure the performance metrics are within a set threshold.
Software Developer, ZS Associates (Jan 2011 - Jan 2013)
Developed Core application functionality and features such as Bulk Forecast Generation and User Activity logs. Designed and implemented Application Settings module that managed — privileges for users, features enabled, customizations and Help & Support.
Assisted in setting up a branching strategy for parallel development of multiple client logic into a single code base with a sustainable release & hot-fix plan.
Added Solution Tasks to the Forecast Manager Application for automating builds and tag creation, appear seamless across the transcontinental team & infrastructure.
Was solely responsible for all the Dev Ops related tasks for Forecast Manager. Automated the complete deployment process, causing a significant reduction in upgrade times (4 hours to a matter of seconds). The tool featured -
- Generation of upgrade & downgrade logs for diagnostics.
- Database Migration.
- Scheduled tasks migration on remote servers.
- Auto backup and restore of systems in case of failure.
- Upgrade multiple systems to different versions in one go.
- Setup new instances from scratch — bootstrapping databases, generating default application users and configuring settings for the app.
- Auto configure client specific, environment specific and application specific settings for every deployed system.
- Generate upgrade reports and email notifications in case of upgrade failures.
- Integrated it with Subversion and Jira to auto publish release notes.
- Live site monitoring.
Worked on harmonising the user interface across the Javelin suite by creating customisable dynamic web layouts which could be directly integrated into the application via CDN. Assisted in designing and implementing a publishing strategy to ultimately have single version of the UI components that could be maintained centrally, thus reducing a significant amount of time in UI development.
Evaluated cloud based data integration tools primarily Boomi and Pervasive to integrate our in-house ETL tool — Javelin Data Manager with Salesforce. Designed and developed data integration solutions to make Javelin Data Manager communicate with Boomi using web services. Prototyped Boomi Processes for simulating how data could be transfered within the Javelin Suite. Took trainings for the consulting team at ZS on Boomi Integration with in-house tools.
Trainee Technology, Sapient (Jul 2010 - Dec 2010)
Underwent training for basic Java and Delivery Approach to get hands on experience of real life delivery project with respect to the phases, roles, project processes and technical know how. Developed an E-Commerce application using WCS, Hybris, ATG and Interwowen as a part of the training.
Undergrad, Pune University (2006 - 2010)
Completed Bachelors in Information Technology from Army Institute of Technology. Graduated with a First Class grade.
- Won the first prize in a programming competition at Bharat Vidhya Peeth University (2010).
- Final Year project Geo Code your life.
- Project was selected by Calsoft Inc. for sponsorship.
- Worked on building multi-tier .net based applications as an Intern at Indigo Architects.
- Developed a new version of games such as — Tetris, Tic Tac Toe, Sudoku and softwares such as — a Text Editor with Syntax Highlighting and Autocompletion, an LZW File Compressor, a Database Management System, and Web based Blogging Platform.
Open Source Contribution
- dbl-linked-list-ds: A typescript based doubly linked list data structure.
- ts-codemod: Typescript based codemods.
- update-function-types: Provides a specification and basic type classes for update function..
- action-type: Type class for actions.
- reactive-dom: A reactive ui library.
- node-config-ts: A simple node configuration manager.
- hoe: Module to emit higher order events (HOE).
- side-nav-vanilla: side nav web component.
- rwc: Reactive Web Components (RWC).
- movable-tabs: webcomponent for material design like tabs.
- flex-jss: flexbox fun with jss.
- rx-raf-throttle: requestAnimationFrame based stream throttler.
- muxer: stream multiplexer for es6 observables.
- funag: Testing the limits of a progressive web application.
- histable: A no external dependency module that maintains the history of state changes..
- funjector: Dependency injection for functional paradigm.
- logistic-progressor: A sigmoid function based progress bar.
- react-announce-collapse: a reusable decorator to create collapsable components.
- adb-fastboot-install: Automatically exported from code.google.com/p/adb-fastboot-install.
- react-announce-draggable: expose component drag and drop events as a stream.
- react-render-if: declarative way to conditionally render a react component.
- react-announce-fetch: a react-announce declarative to create REST based data stores.
- react-announce-size: a react-announce declarative that exposes component size as a stream.
- react-announce-connect: Applies a stream to a component's state..
- react-announce: a declarative approach to creating react components.
- reactive-storage: a simple state based store that is exposed as a stream.
- observable-air: Observable for the calorie conscious.
- chaining-tatum: A module to enable method chaining of async tasks.
- ioc: Dependency injection with support for inheritence.
- vagrant-node: A set of simple vagrant provisioning tools for node.js.
- web-offline-seed: AngularJS Seed Project.
- html-scraper: Scrape data using method chaining.
- mtd-console: A console application for mt-downloader.
- Multi-threaded-downloader: A http file downloader made in nodejs.
- Super-Cache: Enables caching of static content on client side irrespective of the implemented server side caching behavior.