Preface
Have you ever been waiting for something to happen so impatiently that you counted down the days? I took that to the next level when I was eight. I still remember waiting for my first computer to arrivea Commodore 64. Not only was I counting the days left, but I actually had dreams involving a time machine that I used for the sole purpose of fast-forwarding through those few days and making the wait shorter. I suppose that was my first exercise in overengineering.
My world expanded when the computer finally arrived. It wasnt like any toy Id ever seen; you could actually provide the instructions to make it do whatever you wanted. As I learned BASIC, my universe kept expanding. I still remember my cousin showing me how to store text strings by adding a simple dollar sign to a variable. I didnt believe itsuddenly I could make the machine have a conversation with humans! After many if-then-elses, I called my father and excitedly told him to ask the machine a question. It didnt work, of course; he would have needed to say exactly one of the sentences Id programmed in my code. Unfortunately, my cousin didnt know about things like machine learning, neural networks, or natural language processing. Almost nobody did at that time.
Fast-forward 15 years. Now in college, I had the opportunity to learn about all of these exciting concepts. I couldnt wait to put my newfound knowledge into practicethe idea of teaching a machine by examples instead of manually providing the instructions to perform an action was mind blowing. I decided to use machine learning techniques to complete an exam assignment involving a robotic arm equipped with a camera and a marker. The system should have been able to play tic-tac-toe with a human, identifying the board state on a piece of paper, working out the best next move, and physically drawing the move on the paper. It was a disaster.
Using techniques like neural networks for such a project at that time was just not practical: the functionality for accomplishing tasks like object detection to identify the board and the marks on it was not robust, and most computers available wouldnt have been powerful enough to run it anyway. I had to go back to if-then-elses to pass the exam and finish my college degree.
This mishap didnt affect my passion for computers, though. Well-written programs with thousands of if-then-elses and similar programming language constructs can still do amazing things. In my developer years after college I was able to create such diverse things as shareware applications, virtual reality 3D engines, software for tracking items in manufacturing production lines, and supervisory systems for power plants and airports, all of them requiring me to patiently add one instruction after the next.
During those times, I found a company whose products made my job easier. My connection with Microsoft was different than the connection many people had with it at that time, which was primarily focused on it operating systems. For me Microsoft was not the DOS or Windows company; it was the developer tools company. My beloved Commodore BASIC, which opened my world to computers, was actually based on Microsoft BASIC, the very first product of a tiny company at the time. As my career progressed, so did the tools I used. I discovered Microsoft Quick Basic, then the charming Visual Basic, which led to me embracing Visual Studio C++, and C# after that.
I was so in love with those products that helped developers create programs that I ended applying for a job at the company. I left my job creating applications to join Microsoft and help others creating those applications. That was 18 years ago. During that time I was fortunate enough to work in a group fully dedicated to helping developers and then to lead the business and marketing areas for my beloved Visual Studio, launching products such as Visual Studio Code, Visual Studio Online, and .NET Core. Never in my most amazing dreams would I have thought I would end up creating the kinds of tools that I had worshipped at the beginning of my career.
Then, a few years ago, something captured my attention. What had once seemed to be a dead end in software development was suddenly in the news again: advancements in neural networks from the research community and the vast compute power available in the cloud were providing amazing results. In 2015, a team at Microsoft Research developed a neural network so deep that it was able to identify images better than a human. And there was enough compute power available to run that neural network instantaneously. In a matter of months record-breaking results became common in the news: human parity was achieved on tasks like speech recognition, machine reading, and even translation. All those achievements were made possible by the rebirth of artificial intelligence (AI).
As a developer, these achievements expanded my world once again. Just like the dollar sign my cousin had taught me all those years ago, AI techniques such as deep learning opened the door to entirely new scenarios. I didnt have to provide the instructions one by one; I could focus on designing an algorithm that could learn by itself. Applications that I had worked on beforelike the chat program for my father or the tic-tac-toe robotic arm in college, or even the manufacturing monitoring or power plant softwarecould be redefined with these techniques and improved dramatically.
Career-wise, I made an important decision when this revolution started to happen. I left my beloved Developer Tools team and started to lead a newly created team at Microsoft for AI business and productization. Although my goal until then had been to help developers and organizations to program computers, my goal now is to help developers and organizations to