I am a recent Master’s graduate from George Mason University. From May 2009 to Dec 2009 I worked as a software engineering intern at Rivermine. Before that, I was a Graduate Research Assistant for the department Postgraduate fellowships and scholarships from Oct 2007 to May 2009. Below are some of the recent projects I have worked on.

DataPump

During my internship at Rivermine I was asked to develop a tool in Java Swing that would transfer customer information from one database to another. The challenge here was that the company’s Telecom Expense Management Software was a multi-customer system (initially it could handle just one customer). The database contained information that was customer specific as well as common configuration data. This data had to be extracted and inserted into the destination database. It was not a simple copy/paste operation. It had 3 stages.

  • extract customer specific data and insert into temporary staging tables in the destination database
  • update all foreign key mappings in the staging tables
  • copy data from staging to main tables

The application was built on Java 5 using multi-threading and had the following features

  • Automatic creation of new primary keys
  • Automatic update of foreign key mappings
  • Single configuration file which contains information about each table. The infomation includes conditions for data extraction and mapped columns which are not mapped within the database.
  • Automatically creates stored procedures(PL/SQL) for operations that cannot be performed by a single query.
  • Option of deleting customer specific information
  • Detailed feedback of progress on the UI
  • Automatically identifies tables with LONGRAW or BLOB datatypes
  • Detailed logging

Technologies: Java, Swing, Oracle, PL/SQL


Distributed Trading System

This is a prototype for a trading system. Exchanges located in different cities act as brokers, receiving buying and selling orders for goods. Different exchanges may trade different sets of goods, and the trading price for the same good may be different at different exchanges. Geographically distributed traders issue buying and selling orders, each order directed to an exchange.

Selling orders identify the good being offered and the asking price. Exchanges have no initial knowledge of the available goods; goods become available for trading at an exchange only after the first selling order comes in. The asking price in each incoming selling order becomes the new trading price of that good at the exchange.

Buying orders identify the good being purchased and the quantity. An exchange ignores buying orders for goods that are not traded at that location.

Each exchange echoes all processed buying and selling orders to traders. This allows traders to follow the activity at each exchange, and to determine where to buy at the most advantageous price.

The challenges faced while building this application was keeping the clock across each system in sync and making sure that all the processed orders received by each trader is in the exact same order. Ordered received more than 10 seconds late will have to be flagged.

Technologies: Java, Swing, RMI and PToP (MySQL and aspectj for used for compiling data)


Degree Audit System

This was a class project for the course SWE 632- User Interface Design. The requirement was to evaluate a student’s eligibility to graduate as per the University’s graduation requirements which include minimum GPA, prerequisites, core courses, etc.

While building the application we had to take into account the background of users, age, computer skill level, the number of times they will be using it, screen resolution, operating system and also offer proper suggestions using the appropriate works and colors.

We built our application on a single page using ajax and results would automatically update as the user page changes. The final product got a fantastic evaluation from our professor for its innovative concept.

Technologies: HTML/CSS, PHP/MySQL, Spry


Online Student application

Generally when students apply for scholarships etc, they have to complete a large paper application form and these have to be manually entered into a database so that they can be kept track of. The director of the scholars department asked me to make a web application which would eliminate the use of paper and make things more effecient for processing. This application was the result. Unfortunately it never went into being used because of reasons I do not want to get into. Click below to see a prototype of that system. (use ‘shadow’ as the username and password)

Demo

Technologies: HTML/CSS, PHP/MySQL, Spry


Websites

I designed and maintained the following websites from Oct 2007 to May 2009 when I was working as a web developer at George Mason University.

Technologies: JQuery, HTML/CSS, Javascript.


Placement Management System

This system was an add-on module for the existing system that managed student information within the college. We had to build a registration module and a search module. The registration module allowed students to register for placement activities and the search module allowed interviewers an easy way to filter students during the placement activity and also access student details. It also provides the ability to develop reports based on student placement.

Technologies: Google Web Toolkit, structs, Java/J2EE, Oracle