Hello, Roychowdhury, please tell us about your journey from being a Programmer at Edgemetric Solutions to becoming a CTO at CodistAI?
Hello. Thanks for asking the question. I started even before that. When I was a Computer Science student back in 2002-2005 in West Bengal, I had the dream of making something different. I loved programming, and thus I joined forces with few other friends of mine from the same university and started, what we believe, to be the first game studio of India. We gathered our computers in a garage and started working on a subject about which we had no clue. Back in those days, the internet was not what it is today. Smartphones were yet to come. However, all these did not stop me. I led the project technically and created the first fully-featured, international level 3-d game prototype from India. It took us four years to be there, but we certainly did.
However, after that, we could not continue the venture due to several reasons, and I took up a job as the technical architect in Edgemetric Solutions (presently Mammoth analytics). We did crazy things back then, including setting up and operating early versions of Hadoop and things like that. It was a fun and educational journey for me because I was coming from the world of Game Programming.
I, then, ventured into some other companies. Built products such as brandbuzzindex and later worked as senior data and software engineer in two very happening start-ups in Paris.
All these experiences taught me. I love programming, and I never ceased to be a “Hands-on” guy. Because this is what I love most. However, in 2019 I got a chance to join one of the most prestigious talent investors of Europe, called Entrepreneur First. There I met my co-founder, and we started working on the idea of trying to help software developers using Machine Learning. After a while, it seemed that the idea does have some value to it. We secured seed funding, and I took up the duty of the CTO, naturally.
I will have to name the work I did in Codist. See in Codist; we are working to apply Machine Learning and Deep Learning on novel datasets such as Source Code. We are a small company (yet 🙂 ) but we have made significant progress, and we also are entirely open source. We released our first alpha version called “Docly,” which has been downloaded more than 18K times in the last three months alone. We receive comments from our users who say that how Docly has helped them to overcome a complex problem of code-onboarding. All these show that not only do we understand the science but also we understand our users. Given how young we are, I feel proud of what we already achieved. And we are just starting.
We provide open-source, vendor-neutral developer tools. Developers are a very demanding and picky set of users. And rightly so. They write critical software that keeps our modern world running. So to make something for them, you need to be very careful and also passionate about the cause. We try to provide that passion and excellence via our products. This means it is slick, single-responsibility, no-nonsense, and user-friendly. We need to keep in mind that the product should be very easy to integrate into the regular workflow of a developer.
Several ways. I read Hacker News and Reddit. I am also part of some slack group where we discuss “Future of Coding” apart from that, my mobile is abuzz with the latest tech news in the newsfeed. I also follow some excellent blogs, research institute pages for the latest updates. Despite that, I must agree it is pretty darn impossible to keep up to date with “Everything” in tech. So I focus on my main area of interest: Machine Learning, Theoretical Computer Science, HPC, etc.
Handling high-pressure situations is almost an everyday thing for a developer. Very recently, one of our users suddenly started creating support issues because the app stopped running. We care about our users a lot. So I rolled my sleeves and went on digging. After a couple of hours, I found out that we have a very rare race condition in our code, which is typically impossible to figure out or test, but she was running into it. I fixed it, which made the user happy, which means it made me happy.
When I face such situations, I tell myself to be calm and to accept that I won’t be able to solve it in the next 5 minutes. So I try to understand the root cause of it and then solve that. Also, my experience helps me a lot to quickly point out the error.
I mainly work in Python nowadays. However, I have extensively worked in C, C++, Go, JS, and Lisp in the past. Python is a friendly language and very easy to write and read (although writing good Python is hard!) and has a unique eco-system. But if you ask me my absolute favorite among all the languages, I will have to tell you C. It has a beauty that is unsurpassed by anything I had seen so far. Also, I do not think I will want to add anything or subtract anything from it. It is very close to being the perfect one can think about.
Write and read code. If you want to know how people have solved problems before you, you have to do that. I rarely face a problem that has not been attempted by someone before me. And many times, reading the solutions gives me the right direction and inspiration. There is no alternative to writing code. Programming is a game where being a spectator will not help you. You need to be a player yourself.