These are the projects I have worked on so far, as well as those that I am planning on tackling in the not too distant future.

Internship Projects - KPIT

Staging Toolkit

The staging toolkit is a command line utility I wrote in Java to aid in data transformations for the data migration team of the Extended PLM business unit of KPIT. The utility uses Java, MySQL, and XML. It accepts files in CSV format and enters the data contained in the file into a MySQL database based on a schema that was designed to allow for more efficient data transformations.
Languages: Java, MySQL, XML
Technologies: IntelliJ IDEA, Ant, Jenkins
Source Control: Subversion

Personal Contributions
  • Refined initial project requirements
  • Implemented all requirements except for the XML configuration file parser
  • Increased experience in system design
  • Increased experience in refactoring code
  • Wrote/managed a medium-sized codebase
  • Wrote an INI configuration file parser (complements the XML configuration file option)
  • Increased experience with MySQL and JDBC

Legend Reports

Legend is a tool used to migrate CAD files from one Product Lifecycle Management (PLM) system to another. It maintains a database of metadata which is used to verify the integrity and correctness of the data before the files are migrated. The reports that Legend provides are the primary means by which migration teams get actionable information. I implemented six new reports that provide access to previously inaccessible data.
Languages: Java, MySQL
Technologies: IntelliJ IDEA, Ant, Jenkins
Source Control: Subversion

Personal Contributions
  • Implemented all requirements personally
  • Learned to work within a medium/large-size legacy code-base.
  • Learned to work with JIRA
  • Developed methods to recursively nagivate graph-like structures

School Projects

Boeing Configurator - Degree Capstone Project

Team Project - Role: Team Leader

The Boeing Configurator is a web application that facilitates creation of configuration files for a new financial management system being implemented by Boeing at its 70 world-wide locations. The primary objective of the system is to accept input from designated users and then generate an XML configuration file that can be fed to the financial management system. The system also provides a submission system, allowing administrators to generate configuration files only after they have reviewed and accepted the user's submission. The application replaced a complex spreadsheet-based form that was used previously, and provided several benefits: centralized storage of user input data, a dashboard for checking status of submitted configurations, improved error-handling, and vastly improved user experience.
Languages: C#, ASP.NET, SQL (Oracle 11g r2), Selenium
Tools: Visual Studio with JetBrains Resharper, SQL Developer, TeamCity
Source Control: GitHub
Testing Framework: MSUnit, NUnit, Selenium

Personal Contributions
  • Wrote the project requirements documentation
  • Designed the majority of the system architecture and database schema
  • Implemented portions of the table creation SQL code and database interaction code
  • Prepared and delivered the final project presentation to 400+ attendees
  • Gained experience with the model-view-controller meta-pattern
  • Gained experience with eliciting and refining scope of requirements

iTrust - Software Engineering Project

Team Project - Role: Team Leader

iTrust is an open source medical record management application project used to teach the software engineering course at NC State. Over the course of the semester, we were required to find and correct defects in the existing code-base and implement new functionality. We followed the agile development methodology and were required to write requirements in both functional and use case formats. We also used test driven development, writing JUnit and HttpUnit tests prior to implementing any new functionality. My class implemented new functionality to support obstetrics care.
Languages: Java, SQL (MySQL), JSP, XML
Tools: Eclipse, MySQL Workbench, TomCat
Source Control: GitHub
Testing Frameworks: JUnit, HttpUnit

Personal Contributions
  • Wrote the requirements for enhancements being added
  • Designed the enhancements being added
  • Wrote JUnit and HttpUnit tests
  • Assisted teammates in debugging their code
  • My team's version of the application was voted the best out of 15 total teams based on the votes of our classmates and teaching staff

Traces - Mobile Development Project

Team Project - No roles assigned

Traces is an android application that displays tweets within a given radius of a specified address or GPS location. The user is able to use a Google maps interface or an advanced search menu to specify the parameters of their search. The application consumes data from a REST API previously developed by one of our team members.
Languages: Java, XML, Gradle
Tools: Android Studio
Source Control: GitHub

Personal Contributions
  • Implemented the advanced search drawer
  • Heavily influenced the UI design
  • Gained experience in the Android development process
  • Gained experience in using a REST API