Software Projects

Research software (as a Ph.D student):

1. PFIS-V: Modeling programmer navigations among variants:

PFIS is a family of computational models that predict how programmers navigate in code. I built PFIS-V which models how programmers navigate in the presence of variants  (multiple slightly different copies of the same program), which add an additional dimension to the information space. I also extended the PFIS family of models to support navigation in Javascript programs also (in addition to prior Java). Codebase.

2. Javascript parallelization

Back when Mozilla and Intel were working on Parallel JS, I worked on understanding patterns to parallelize JS applications. We abandoned this line of work after Mozilla abandoned the line of research.

Professional software (as a developer at Thoughtworks):

1. Org Structuring Tool – I: (Jul 2011-Jul 2012)

Worked on an organization restructuring tool for a Big Three firm. It was a desktop application, dealing with large and complex hierarchical (actually matrix organizations, which was criss-cross hierarchy) data and rollup calculations. The tool had a complex search and also interfaced with their in-house tools.

Tech stack: WPF, C#, SQL Server (a desktop app). NAnt / MSBuild / Powershell for build. NUnit for unit tests and White for UI tests.

2. Org Structuring Tool – II: (Aug 2012- Dec 2012)

This was a web application with features similar to the prior tool. It was a single page web app and handled complex data and rollup calculations (even on IE8). This tool interfaced with one person’s desktop tool. I worked on the project from its inception and performed the initial spikes and requirements workshops.

Tech stack: HTML, CSS, Javascript, Angular 2. Jasmine for testing.

3. Retail logistics and supply chain: (Jan 2013-May 2014)

This was a large program for an antibody production and retailing company with a global presence. I worked on their logistics software, which involved revamping the systems that dealt with processing customer orders, buying and aliquoting stock, stock management and restocking and forecasting systems. This project involved revamping legacy monolithic system to a services-based architecture and accounting for expanding businesses.


  1. Stock management — restock products, packaging to retail sizes, forecast needs, balance stock across warehouses, managing and serving their customer orders.
  2. Restrictions — System for managing federal regulations governing antibody sale across the world.
  3. Product recommendation system: I did a proof of concept for a recommender system based on both user-user and item-item similarity.

Tech Stack: C#, ASP.Net MVC, NHibernate for ORM, SQL Server database, R for recommendations.

4. Retail

This was also a program for one of Europe’s large retail chains. I worked on the project that helped the retailer manage their promotions. This also involved rewriting mainframe legacy systems to a microservice architecture.

Tech stack: Java microservices (DropWizard), Ruby on Rails web app, Backbone.js for client-side MVC.

Pet projects:

  1. Sabdakosha: An Android Sanskrit dictionary app.