linkedin badgeResume pic



I am a work in progress.

During the 2010 winter, I was reading the book “Men of Mathematics” by E.T. Bell. Reading about Euler, Gauss, Galois gave me shivers. I realized that I, as a graduate student, am traveling a path blazed by them, I realize or not. It was the moment I decided to pursue the mathematical aspects of computer science.


Yes, it is real.

As can be expected, my journey has not been smooth. I did my Masters on topics in bioinformatics.  However, on my insistence, my adviser kindly allowed me to pursue a Ph.D. in an area I like, preferably involving his interests: large-scale networks and/or high-performance computing (HPC). For a while, I worked with projects like GPU programming using CUDA/OpenCL and porting an open-source large-scale MPI/OpenMP-based brain simulation project to use GPU. In the meantime, I was also studying the spectral graph sparsification problem on my own. Algebraic graph theory did not prove easy at first, but I was making steady progress. Unfortunately, the two different worlds (theory/HPC) did not mesh out well, and I decided to devote my time entirely to theoretical CS, with a different Ph.D. adviser.

Since then, I have been working with Professor Alex Russell, with problems/areas/ideas/tools involving linear algebra, probabilistic method, bounding large-scale deviations, generating functions, graph theory, linear programming, complex analysis, optimization, polynomials, cryptography, and as I write, coding theory and abstract algebra. I have been fortunate to have appreciated the beauty of different areas in theoretical computer science. Although some areas seem difficult at times, I am still making progress and we’ll see where it goes.

The way I feel about computer science is best articulated by none other than Robert Endre Tarzan:

The magic of mathematics and theoretical computer science is all the unexpected connections. You start looking for general principles and then mysterious connections emerge. Nobody can say why this is. (Source)

Prior to coming to grad school, I and four other friends co-founded a software start-up company. Those were heady days: we used to work on various smartphone apps, and I, in particular, used to take care of the web server/client code. For various reasons we did not survive beyond four years; I was there for three years. Before this start-up attempt, I used to work as a C++ software engineer in a game development company. As a graduate student, I was part of a team creating pLogo, a web-based pattern-visualization tool. I started the project and wrote the then web front-end using PHP/JavaScript. I am grateful to my then employer, Professor Daniel Schwartz. He really poked me in the eye and made me see why a good visual design is important. As if to prove his point, this project got published in Nature Methods.

I have also had two internships. The first one was at Bentley Systems, where I accelerated an existing C++ engineering software to use GPU. The experience was fun, and I managed to make the application run about 4 times faster. Dr. Zheng Wu, my then supervisor, taught me the difference between science and engineering, and why it matters to build a tool that “works.”

My second internship was at the MathWorks, the creators of MATLAB and Simulink. This was an eye-opener for me: I saw up close how a big software is written, maintained, and innovated. (I marveled at distcc.) Within a summer I developed, (with ample help from my manager Vijay, mentor Tony, senior teammates Srinath and Sid), a working prototype. It allowed one to draw state-machine level system-descriptions and generate MATLAB code. When everything fell in place it felt awesome, and people thought it was no mean feat. (They were too generous, I’m sure, but I’ll still keep the compliments.) The challenges were, in no particular order: rewrite new C++ data structures of state-machine/control-flow systems; various intricacies of C++ linking and nuts and bolts of C++ backbone code (thanks, Tony); being the first user (and bug finder) of an in-house UML-to-C++ code generation tool (thanks, Boris); finishing the entire thing on time. As if in a movie, my manager found a crucial bug just two hours before the presentation. The only reason I managed to fix the bug on time was my test code: As it happened I had a vast unit-testing coverage on both the MATLAB front end and C++ back end. It saved the day, and I preach this lesson to this day.

I love to read, or to be precise, to listen to books on Audible. I love to hike. I love to hit the gym. Recently I took up running. I had to give up basketball because of my nagging meniscus tear; but I picked up small-scale climbing and adventure hiking/backpacking instead, much to the chagrin of my mum. I like to think about new project/app ideas. I love natural history: how (and why) the universe/earth became what it is today, and how we evolved as the animal we are in terms of history, behavior, culture, and psychology. I grew a fascination towards behavioral economics/psychology; I discovered a lot of cognitive biases and bad habits in me, and I am working on them.

I am grateful to everyone that has helped me to be who I am today: in particular, but in no particular order, they include my parents, my sisters, my wife, my friends, my teachers. No matter what I become, thank you all. I have had an absolutely awesome journey, and my story is not finished yet. As I said at the outset, I am a work in progress.

Going up the pristine Spur trail towards the summit of Mount Adams, Fall 2017.

PS: The same winter I was reading the book “Men of Mathematics”, I received a hand-written letter from Donald Knuth, telling me to Google the unreasonable effectiveness of mathematics. That envelope also carried a check of one hexadecimal dollar, or $2.56, from the Bank of Sans Serif (picture at the top of this page).


One thought on “

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s