Navin Kabra
Eminent Speaker
Short CV: I am currently a co-founder and CTO at ReliScore.com, a software startup, and the creator of PuneTech.com, a portal for the tech community in Pune, India. In the past I've worked for large companies, and small; worked in India and in the US; seen a successful exit, and a dotcom failure; done product development and research; written consumer software and enterprise software; and been a developer, architect, and manager.
I've done my Ph.D. with David DeWitt in Computer Sciences from the University of Wisconsin in 1999, and a B.Tech. in Computer Sciences from IIT-Bombay before that. I'm interested in a number of areas of computer science, including: highly scalable systems; distributed and fault-tolerant software systems; and text search, information retrieval, and analysis of unstructured information. My latest interests are understanding what drives online communities, and use of technology in the improvement of higher education (especially in CS).
Title of Talk 1: Which Programming Language Should You Learn and Why
Synopsis: Once upon a time, a long time ago, a CS professional could learn just one or two languages (like C, C++, or Java) and work in those for their entire professional career. Those days are gone. Today, any programmer must know a bunch of different languages. There are many interesting choices: JavaScript, Objective-C, Python, Ruby, PHP, HTML5/CSS, C#, F#, VB.NET, PL/SQL, Scala, Clojure, Haskell, Erlang, Lisp. And yet, nobody can really learn all the languages that are "most important." Thus, the answer to the question "which programming languages should I learn" really depends on what you want to do. So it is important for any CS student to have a good overview of the most popular (and some not-so-popular) languages, and the strengths and weaknesses of each, so as to be able to make informed decisions about what to use in what situation.
Title of Talk 2: MS, MBA, or Job: Planning Your Career
Synopsis: Should you take a job after graduating, or go for higher studies? Should you go for an MBA or an MS/MTech? If MBA, which colleges are appropriate and which aren't? If MS/MTech, then which colleges should you apply to, India or US? If you're doing a job, how to choose the right company/role? What's the difference between a startup job, a small company job, and a large company/ MNC job? What's the difference between a services company job and a product company job?
I will attempt to throw some light on how to think about all these options so that you will pick one that makes most sense to you.
Title of Talk 3: Understanding BitCoin and the BlockChain
Synopsis: Bitcoin is a new form of money. A virtual currency-in-the-cloud, based on cryptographic algorithms. It is interesting because it allows anonymous, but secure transactions without requiring the services of a government, or a bank, or other financial institution. Bitcoin, has the potential to truly disrupt the world of finance.
But, there is a far bigger picture here that is important to understand. The core technology underlying Bitcoin is the Blockchain. This is essentially a protocol/algorithm that allows untrusted third-parties to exchange information with each other in a fully secure way, without the need of a trusted intermediary (like a Government), and still guaranteed because neither party can later claim that the transaction did not take place. This has a potential to disrupt many industries and change how we do business in lots of domains—from domain name servers to land records to voting and governmenance.
In this talk, I will give an overview of what is Bitcoin, how it works, what is the blockchain, what is the fundamental problem is solves, and what are some potential disruptive applications of the blockchain. This talk can be understood by any student who has had a little exposure to database systems, transactions, and distributed systems.
Title of Talk 4: Overview of Machine Learning
Synopsis: Machine Learning is becoming more and more important now as we enter the age of big data and analytics. All aspects of our life are being digitized and data is being captured, and much of this data is available to anybody who wants to do something with it. Which means that the most exciting technologies today (and the ones that are also the most successful) are the ones that can make sense of this data in a way humans can. Every company, from Google to Facebook to Twitter to Linkedin to Netflix to Amazon to Flipkart are turning to machine learning algorithms for best results.
In this talk, I will give a high level introduction to machine learning, and will address the following questions:
- What is machine learning
- How is it different from regular algorithms
- What are some of the most important algorithms in this field
- How they work (brief intuitive/conceptual overviews only)
- What types of problems they're best suited for, and
- What are some current applications that they're being used for
Title of Talk 5: The Difference between Student Programmers and Professional Programmers
Synopsis: In our colleges, students are taught programming. We focus on algorithms and data structures. In professional life, these form a very small part of an actual programming job. There are a lot of other things that students are unaware of, or don't give much importance to. Some examples: use of version control systems, use of appropriate IDEs or editors, and learning the IDE well, use of unit tests, and other forms of testing your code, writing robust code via defensive programming, refactoring (i.e., rewriting bad code), writing scripts to automate repetitive tasks, etc.
I will talk about all the things that, in my opinion, are important differences between student programmers and professional programmers, and how to go about picking up those skills.
Navin Kabra
Qualifications: B.Tech. (CS) IIT-Bombay, Ph.D. (Databases) University of Wisconsin, Madison
Title: CTO
Affiliation: ReliScore.com
Contact Details: [email protected]
ACM Case Studies
Written by leading domain experts for software engineers, ACM Case Studies provide an in-depth look at how software teams overcome specific challenges by implementing new technologies, adopting new practices, or a combination of both. Often through first-hand accounts, these pieces explore what the challenges were, the tools and techniques that were used to combat them, and the solution that was achieved.

Lifelong Learning
ACM offers lifelong learning resources including online books and courses from Skillsoft, TechTalks on the hottest topics in computing and IT, and more.
