Smiley face Hi there ! I'm Neeraja Ganesan. I obtained my Masters degree in Computer Science after graduating from University of Southern California.

Thinking of ways to solve a piece of code, or a problem, and making it as efficient as possible, are things I enjoy the most and have gotten me inching closer to a Master’s degree in Computer Science. Being a staunch believer in holistic development, I've independently studied courses apart from school curriculum, on “Parallel Programming in GPU computing”, "Algorithms: Design and Analysis" and also learned how to code for device drivers. Courses that I studied at USC are: 3D Graphics and rendering, Multimedia systems, Analysis of Algorithms, Operating systems, Brain Theory and Artificial Intelligence, Web Technologies, Database Systems and Computer Networks.


Skill-set: C, C++, CUDA, Java, HTML, Javascript, XML, PHP, XML, CSS, Android Programming, SQL, Python, Shell Scripting, Perl.

Environments: Bluemix, Vitria, Eclipse, VI Editor, Git, GDB


Dancing is key to the person I am. Among my other hobbies would be reading. I involve myself in them at opportunities I get.

Having been a part of the sponsorship team and other organizational committees during my undergraduate years, has opened me to interacting in a professional environment from an early age. Coupled with this, my work experience in the technical field over the last 2 years, as a permanent employee earlier and an intern recently has, only led me to further believe that strong communication skills and building a good rapport with the team, will invariably aid in progress and help one hone one’s skills.


I am looking to work in a professional environment that will harness my logical thought process, perseverance and analytic capabilities.


Email address : nganesan@usc.edu

GPU Computing GPU Computing has been done in CUDA platform.

  • Converting photos from Color images to Grey-scale
  • Using the concept of multiple threads and blocks to compute an image, a regular coloured image is converted into a grey scale image in less than 1/100th of a millisecond.

  • Gaussian filer for smoothening the blurring of an image
  • This is a filter used to smoothen a blurred image

  • High Definition Range tone-mapping for making the range of intensities device compatible
  • The very high and very low intensity of an object in real-world is adjusted according to those that the digital world(cameras, computers ,phones and printers) can handle so that it is perceptible to the human eye. This is done by categorizing intensities into histogram buckets. All different intensities that fall into a particular bucket are given the same final value.

  • Red Eye Removal from images
  • As used in any photo editing software, red eye removal is done from an image. What makes this algorithm particularly fast and thus harness the potential of GPU computing is the ability to throw away pixels that aren't used for computing and thus work only on a very small yet specific area. This makes the algorithm more efficient.


  • BG BG
    Color image to grey scale.
  • BG BG
    Gaussian blur.
  • BG BG
    HDR Tone mapping.
  • BG BG
    Red Eye removal.
Querying for an image in a database of images and videos

A query image is provided, of size 256 x 256. The set of search images, contain the query image, in a different orientaion, position in the image, and a drastically different size. The project searches for the query image, in the search image. The peak hues of histograms has been used to color seperate the images.


This is the most basic and primary means of detection. This technique may not however produce a fully satisfying result as the search image could contain many hues that are similar. In order to refine the results that texture analysis of the surface of the search image and query image has been performed. This ensures that if there are more than 1 region with the same set of hues, the one whose texture matches that of the query image can be used to further detect the presence. Once the hues have been segmented, a blockwise Mean Square Difference(MSD) has been calculated. If the blocks do match, then the MSD is within a certain threshold. MSD is used, as it gives more weight age to bigger differences than smaller ones. It gives the average of the squares of the "errors", that is, the difference between the estimator and what is estimated. This data is used to further determine the exactly in the search image, where the query image is present. Code has been written in Java.


  • BG BG
    Search for Starbucks logo in the image.
  • Report
Image Compression and encoding

Digital compression and coding of continuous-tone still images were done. Baseline, spectral and bit approximation techniques are used for encoding and decoding, with bit approximation taking the least amount of time. In baseline, a 8-by-8 pixel block of data is subjected to discrete cosine transformation, one block at a time. Spectral method, employs the sum of partial differential equations. Different variants of the DCT correspond to slightly different even/odd boundary conditions. Bit approximation takes each bit of every pixel and performs a DCT on all of them, after which it moves on to a bit in the next higher index. Code has been written in Java.


Ray Tracer

This introduces ray tracer as as technique to render 3D images and models, rendering it superior to the LEE and scan line methods for rasterization. The report mentions the advantages and disadvantages of the tracer. The algorithm, the mathematics behind it, and the diagrams indicating way to determine color, are all described in the report.


3D object renderer

Developed a renderer that renders 3D objects, containing features like :

  • Rotation, Transformation and Scaling
  • Shade an image using Gouraud shaiding(that disregards normally falling light,
  • Shading an image using Phone shading(that considers light falling normally, thus producing the sheen on the object)
  • Anti-aliasing, to reduce blurred edges. This is done by condering a matrix of pixels around it and using the weighted average
  • Warping a surrounding image on the object using bi-linear transformation
  • Imposing fractals from Julia set and Madelbrot set, on the teapot

This has been implemented in the C language.


  • BG BG
    Original teapot and teapot after scaling by a factor of 2, rotated and transformed, a different view is seen.
  • BG BG
    Gouraud and Phong shading.
  • BG BG
    Before and after antialising. Rough edges are reduced.
  • BG BG
    School logo warping the teapot.
  • BG BG
    Fractals generated on the teapot.
Operating Systems Kernel Project Kernel assgns on:
  • Processes and threads
  • Virtual File system layer
  • Virtual memory
  • Device Drivers

in a 6th edition UNIX kernel known as Weenix. Developed in C


Spatial Databases An application is designed to query a spatial database. It uses Oracle11g, Oracle Spatial Features and Java(JDBC) - the API that enables Java programs to execute SQL statements by connecting to any SQL compliant database. A system is created to keep track of all the fire hydrants, buildings and buildings on fire, with the hydrants and buildings represented using polygons to indicate the area under consideration.

Unix Socket Programming A program that demonstrates communications between server-client and client-client using TCP and UDP connections. Scenario: Server communicates data to client A, which in turn communicates it to Client B. Client B passes it to Client C and C passes it to client D. Client D eventually passes the data to Client A. After each pass, data is manipulated. This is done on a linux machine. Coding is written in C and "Pipes" are used to transfer data between child and parents, after forking.

Android CRM User friendly android application to facilitate communication between the network service providers and customers. Facilitate bill payment mechanisms, smarter recharge of mobile phones using GPS service, location based service to provide the nearby stores and service provider centers. Implemented features such as easy downloads, latest music, offering various delights to customers based on usage and regular bill payments to increase customer satisfaction rates.
  • Collaborated in a team of 3 to develop a CRM application for Telecom service providers.
  • Responsible for the user interface design, database work with SQLite, Json as a data object model that we pass to the client.
  • Utilized the Android components (Activity, Service, Broadcast Receiver, Content Provider) to create a map application.
  • Increased customer satisfaction by 50%

This project was presented in the Final 10 projects at a national level competition called Techadroit.



Click image to see the report for the project



  • Search Engines using Evolutionary Algorithms
  • A subset of AI is, evolutionary algorithm (EA) which involves evolutionary computation, a generic population-based meta heuristic optimization algorithm. An EA uses some mechanisms inspired by biological evolution: reproduction, mutation, recombination, and selection. A genetic algorithm (GA) is a search technique used in computing to find exact or approximate solutions to optimization and search problems. Working of a search engine deals with searching for the indexed pages and referring to the related pages within a very short span of. Search engines commonly work through indexing. The paper deals with how a search engine works and how evolutionary algorithms can be used to develop a search engine that feeds on previous user requests to retrieve "alternative" documents that may not be returned by more conventional search engines.

    • Worked with Professor Rizwana Shaikh (Research Scholar, NMMIS).
    • Presented the paper at the International Conference on Computer Science and Information Technology, in the final round of 15 (ICCSIT)-2012.


  • Technology and its use in Healthcare
  • The paper deals with two major advancements in healthcare with the help of technology:- a) TeleMedicine b) Neuroprosthetics Telemedicine consists of transferring medicine using any form of media i.e. telephone, satellite etc. The paper will contain details about its various forms, advantages, disadvantages along with details on Telepediatrics, Teleradiology etc. Neuroprosthetics is an area of neuroscience concerned with neural prostheses, that is, artificial devices used to replace or improve the function of an impaired nervous system. The paper will contain descriptions of the advantages, types, obstacles, advancements (Cochlear implants etc).


  • Dynamism in daily activity learning
  • Under the guidance of Professor Michael Arbib at USC,a paper on "Dynamism in daily activity learning" of Routine Activities was presented as a part of the final project. Models on the study of neural processes at a single cell and network level were studied over the course. The minor lapses in the control of routine activities and severe breakdown following certain forms of neurological damage in individuals was studied. This paper analyses the studies of the computational model of selection of routine actions based on competitive activation and proposes a theoretical model on a different approach to the same, in an attempt to overcome the disadvantages of previously mentioned models.

As a software engineer at IBM, I have used the Bluemix platform and created applications on Watson's service on Personality Insights and AlchemyAPI. Natural language is processed to reveal a person's personality. Twitter feeds are analysed to extract sentiments, keywords, entities and establish relationship between different parts of text. Using Internet of Things, a temperature sensor reader was created which accepts data in JSON format and sends it to the phone for as a text message, by using the Twilio API. I'm currently working on a project that uses sensors to fetch scores from a game and sends it on social media for real-time updates.

Shoot me an email at nganesan@usc.edu

A linkedIn profile connection in here at neeraja@linkedin

Phone number to be reached at : 213 610 6650