INDERJOT KAUR RATOL

IMAGINE / PROGRAM / REALISE.

About Me

Inderjot is working as a Java Developer with Ericsson. She is working as a part of the team which develops and maintains the open source project called "Gerrit". The development is done using agile methodologies. Prior to this, she was a student of Masters of Science in Computer Science at the McGill University, Montréal, Canada. She graduated from McGill in Dec, 2017. She held the NSERC's Graduate merit-based scholarship while working under the supervision of Prof. Martin P. Robillard in the area of Software Evolution and Maintenance. Her thesis aimed at developing a tool named FraCo focused on Comment Refactoring - an approach that automates the synchronization of code and comments with the evolution of a system.

Prior to joining McGill, Inderjot graduated with a distinction and honors in Bachelors of Engineering in Information Technology from Panjab University, Chandigarh, India. Immediately after graduation, she joined Infosys Ltd. as a Systems Engineer and gained 2 years of experience in Windows application development, Unit Testing, Document creation with XSLTs, UI designing and creation.

In addition to the above, she is passionate about Machine Learning, Refactoring, Recommendater Systems, Natural Language Processing and Generation and Code Transformation Techniques.

Research Projects


FraCo

Detecting Fragile Comments

It focuses on the detection of fragile comments generated due to changes in the source code with software evolution. Most of the developers do change the comment directly related, i.e. written one line above or below, to a code element but the problem of inconsistent code comments arises when refactoring activities like "renaming" are performed automatically rendering the comments mentioning the renamed identifier unsynchronized. I have built an Eclipse-plugin to automatically detect the renaming changes and the fragile comments generated due to such changes. The tool works works on a rule-based approach and uses NLP techniques to analyze the comments for fragility.

Currently, the below mentioned link is private and will be made publicly available upon the publishing of the related paper.

Find out more

Konaila

Automatic Code Summarization

Extended the work done by a Ph.D. student on Summarization of Code snippets in Java. Built a Google chrome extension to create the code summaries of results found on StackOverflow search page with the summarized code snippets to make it easier for the developer to find right information correctly with the concise and useful code snippets.

Other Projects

Classification of TextOpen Source

Classified Reddit conversations into 8 news groups using classifiers like Naive Bayes, SVM and Decision Trees. Our team scored first position on the Kaggle leader-board set for this competition.

Technologies used: Python with Sci-kit learn, Numpy, Scipy and Pandas.

View on GitHub

Predicting the winner of Miami Marathon Open Source

Predicted the winner by training the models using Linear Regression, Naive Bayes and Logistic Regression. I devised various methods to transform the numerical and continuous data into categorical which eventually helped us in getting a generalized solutions in terms of the range of years of participation given for each participant. Our team predicted the first runner-up in real marathon of 2017 as winner, accurately.

Technologies used: Python with Sci-kit learn, Numpy, Scipy and Pandas.

View on GitHub

Image Classification with ImageNet Open Source

Implemented Feed-Forward Neural Networks from scratch to classify images into 40 different categories. Our team experimented with numerous preprocessing methods and chose the best methods after applying rigorous techniques to validate each transformation and its effect on the data and predictions. Along with the FFNN, we used Deep CNN to classify the images which achieved an accuracy of 90%.

Technologies used: Python with Sci-kit learn, Numpy, Keras and Pandas.

View on GitHub

Privacy Preservation in Machine Learning Open Source

Surveyed and conducted a comparative study of differential privacy techniques to preserve the sensitive data. Applied the studied techniques on data sets like MNIST, SVHN and CIFAR-10 with images.

Technologies used: Python with Sci-kit learn, Numpy and Pandas.

Building Compiler for GO LanguageOpen Source

Built a compiler written in C, for compiling the target language "GOLang". I used flex and bison for creating lexer and parser. Optimized the compiler using pattern matching.

Technologies used: C, GoLang, Flex and Bison.

NLP-Summarizing Reviews and Predicting Restaurant User Ratings Open Source

Summarized the restaurant reviews using phrase based semantic analysis in NLP and predicted the user ratings based on the summarized semantics of the reviews.

Technologies used: Python with Sci-kit learn, Numpy, NLTK and Pandas.

View on GitHub

Validating and re-implementing the existing tool @tComment Open Source

Validated the claims made by @tComment tool’s authors and re-implemented the technique that achieved an improvement in accuracy by 10% over the original tool.

Technologies used: Java

View on GitHub

Summarizing documents Open Source

Generated automatic document summaries with 75% similarity to human created summaries.

Technologies used: Python with Sci-kit learn, Numpy and NLTK.

Hostel Allocation Portal Open Source

Built an application automated the process of hostel allocation in my college- UIET, Panjab University. It managed allocations for a total of 16 hostels. Students could get the hostel forms online and consider the waiting lists of hostels.

Technologies used: JSP, Servlets, MySQL and AJAX.

Imperial Finance Open Source

Built an application to provide consumers with a facility to get loans from multiple banks through a single interface. It handled personal information of customers, process of initiation of a loan request, tracking the request and monthly reports for the administrator.

Technologies used: JSP, Servlets, MySQL and AJAX.

Work Experience

Agile Java Developer - Ericsson (2017 - Present)

I am working on the open source project called "Gerrit". Gerrit is a git server providing more systematic and clean code reviews. Here are some of the highlights of the work done by me:

  • Developed a new plugin to enhance the capability of Gerrit to rename projects efficiently. Earlier, this operation could take upto 2 days for a single project because of the way it was configured. With this plugin, it could be done between seconds to few minutes for the projects with huge number of changes that are open, in review or merged.
  • Converted the integration between ITS system and Gerrit from single server to multi server in order to multiple instances of the same ITS system per project.

Software Developer (Part-time) - Sensequake (2016 - 2017)

I worked on the main product of the company named - 3D SAM. This software performs structural health monitoring and seismic assessment solely based on actual data from highly sensitive vibration sensors. I am working as a Lead User Interface Developer. Apart from that, I work on data management tasks and security related issues in the software. As this software is still in initial stages of software development, I also work on many business applications. Here are some of the highlights of the work done by me:

  • Scaled up the efficiency of JSON data management tasks by reducing the time taken by 85% and minimize space requirements by 75%.
  • Created 3D plots enabled with different animations.
  • Optimize the source code by refactoring and effective implementation of MVVM pattern.
  • Designed and developed GUI using WPF with XAML. Created a number of custom controls to meet the requirements.

Research Intern - McGill University ( Jan, 2016 - Apr, 2016)

Working under the supervision of Prof. Martin P. Robillard, I extended the work done by a P.H.D. student on Summarization of Code snippets in Java. Built a Google chrome extension to create the code summaries of results found on StackOverflow search page with the summarized code snippets to make it easier for the developer to find right information correctly with the concise and useful code snippets.

Systems Engineer- Infosys (2013 - 2015)

Project - Vehicle Information and Diagnostics Application (VIDA).
Built a windows application for the renowned Automotive company - VOLVO. The application reads all the data from the ECU's present in the car by connecting it to computer through an adapter and applies diagnosis on the entire car data to find any existing faults. It automates the work of technicians and takes minimal time to detect and report the faults along with various relevant suggestions to fix the fault. The following are the highlights of the work done by me in this project:

  • Developed and maintained the front-end code and handled various business applications.
  • Optimized the code and decreased execution time of various tasks working closely with the lead technology architect of the project.
  • Solved the problem of printing WPF forms by creating XSLTs for the printing process making it 20 times faster and easier to print. Independently created XSLTs for all the modules present in the entire application.
  • Independently created NUnit test cases for the entire project and brought up code coverage from 0% to 60%.
  • Contributed to the knowledge pool of the company by writing articles on WPF Inspector, MoQ and Fixtures in NUnit Tests and Creating GUI using WPF.
  • Moderated team meetings and mentored knowledge sharing sessions for the team.

Software Developer Intern- Infosys (2015 - 2015)

Project - Task Allocation Portal
Designed and developed a Web application with other 3 team members using ASP.net to allocate tasks to the Teaching and Training Staff at Infosys, Mysore. The requirement analysis phase of the application was one of the main challenges faced by our team as the Teaching and Training Department at Mysore is huge. We designed and created with database which was built using SQL server. During the requirement analysis phase, I prepared design documents and requirement documents for the application along with my group members.

LET'S GET IN TOUCH!