Nithin Bharathi

I am a graduate student studying Computer Science at Dalhousie University. My interests revolve around Algorithmic Complexity, Data Structures, Programming Languages, Software Engineering, and Distributed Systems. Prior to this, I also worked as a Software Engineer at Odessa Inc.


Experience


Home

Odessa Inc. - Senior Software Engineer

I joined Odessa as a full time software engineer in 2020 right after my graduation.

At odessa, I was part of the data migration team wherein I worked on enhancing Odessa's Data Migration tool by developing new migration modules, improving the performance of existing modules and implementing additional product functionalities. This includes but not limited to features like logging data metrics during migration through multithreading, subroutines for processing data efficiently to avoid timeout issues, and automating migration set up tasks at the database level.

Besides, I also spent a significant amount of time working on bug fixes, writing stored procedures, tuning expensive queries, redesigning existing functionalitites, creating test scenarios, working closely with junior developers, assisting them, and handling production release activities for the team.


Projects

JMatrix is a Java package that is designed for working with 2-dimensional matrices efficiently. It consists of methods that support parallel execution of Numerical calculations to improve the performance. The current implementation supports operations for all the wrapper classes that extend the Number class in java and uses bounded generics to enforce type check during compile time.

Scalargrad is a reverse automatic differentiation system that supports simple arithmetic operations on scalar values. These operations are recorded internally using a directed acyclic graph and later used in computing the derivatives during backpropagation.

Computer vision contains implementations of various neural network architectures like k nearest neighbors, convnets for image classification from scratch using Python.

Wordgen is a character-level language model that predicts the next character given a sequence of characters as input using a Multi-layer perceptron.

MarkovGenerator is a stochastic model based on the technique of the Markov chain that predicts new names based on the text sample provided. It also has an interactive UI where the user can import the text file based on which the words have to be generated.


Misc Links

The following are a collection of techinal links that I have found to be interesting.