When you mix in a developer and teacher, you get someone with a passion for sharing his knowledge with others, someone like Microsoft's Dmitry Soshnikov. Nowadays, Soshnikov is a Senior Software Engineer at Microsoft, but he also has a bunch of teaching jobs, as he spread his knowledge to children who need guidance.
Luckily, we got to have a chat with Dmitry during the Bucharest Tech Week in late May, where we discussed the many advantages of Artificial Intelligence, but also its potential dangers, IoT, security, and guiding the young towards a career in tech.
TechNadu: Let's start by going a bit into your career path and the role at Microsoft. Tell us a bit about that.
Dmitry Soshnikov: So I've been working for Microsoft for already something like 12 or 13 years. I initially started as an "academic developer evangelist," and it was a role in which I used to work with students. I have an academic background, so before Microsoft, I was teaching at the university - actually, I'm still teaching there now - so that was one big part of my life and still is. And, before Microsoft, I was doing some software development for an American company, leading their small office in Russia. So, by going to Microsoft, I combined these two things which I liked doing - technology and teaching - because evangelism is a very interesting, very nice position where you can learn a lot and share your love for technology with students.
Then I moved to more broad audiences and I was an evangelist for developers, for startups, for big companies, until something like two years ago, when I moved to a software engineer position, working with customers on some digital innovation projects. So, the idea is that right now a lot of companies feel that a lot is going on and that IT is changing the landscape. And it's key to surviving in the next few years, so they look for somebody to advise them on what they need to do. And we, at Microsoft, because we have the necessary understanding in terms of technology, we show how it should be applied in order to improve the business processes while solving some real-world problems. And we rely on machine learning and artificial intelligence in implementing those projects.
TechNadu: Since one of your focuses is AI, what are some of your favorite AI-backed tools to use?
Dmitry Soshnikov: Well, we use a lot of open source tools. There are no specific instruments, so we use a lot of TensorFlow, and other different open source tools and frameworks. When it comes to large scale like AI, it typically requires a lot of computational power. So, when it comes to dealing with big models, there are some Microsoft-specific tools which we use like Azure Machine Learning which allows us to train models at scale.
TechNadu: So when it comes to AI development, are there any things that you tried to do with AI that you haven't actually managed to implement?
Dmitry Soshnikov: There are a lot of difficult topics that we try to deal with and we succeed to some extent. When you deal with an AI project, it's hard to say whether you have done it or not, because it depends a lot not on algorithms but on data, on the available data. And there are a lot of cases when there is not enough data and, provided you had more data you would have probably solved it, but with a little amount of data, it's challenging. One of the things is a project with a customer that was trying to recognize different events in the football game, and that was pretty challenging because you can never have enough data. For example, if you wanted to recognize goals in the football game you would need a lot of data with the goals, and goals did not happen very often during the game - it's almost like five times or so. So, it's difficult to gather like thousands of positive examples, but, to a certain extent, we succeeded. It's hard to say how this will generalize to other future games.
But that's a kind of a topic which is quite sophisticated and, honestly, AI is such a field that you always need to be on the cutting age, because similar problems that are being solved in academia, in universities, in research laboratories, are also solved by Microsoft. There is Microsoft Researcher which partly does this kind of things, but they are not exactly in the research position.
TechNadu: Many voices in the tech industry are calling for some kind of rules and regulations to be implemented in regards to A.I. development due to fears of singularity. We've heard Musk discussing that sometimes again. So do you believe these fears I founded, is this a point that can ever be reached by A.I?
Dmitry Soshnikov: That's a really hard philosophical question. I don't think my opinion even matters because each person should try to understand his own beliefs in this respect, because there are no indications that A.I. will achieve consciousness and no indications otherwise - we don't know. That's why I think we are living in very interesting times when we might see and understand a lot about consciousness, about ourselves, because if we are able to build the self-conscious AI, it would probably mean that we ourselves are also very similar kind of "devices". I still think that the things that we are doing now they are far from being conscious. I mean, they are honestly complicated mathematical models and not more than that.
I believe that this road towards this dangerous and self-conscious AI can take quite some time and we definitely need to be cautious when coming closer towards this self-conscious AI.
And I think it's great that there are a lot of talks around legislation around it because that's definitely a very important topic. Personally, I'm not very much involved in that, because I'm a technical person. Inside Microsoft, we consider this topic quite seriously. Every AI project that we do, undergoes specific A.I. ethics check so that we are not getting engaged in projects which are not ethical. And there are a lot of discussions about "what is ethical" and, for example, if the model that tries to predict something based on the image - what it should take into account or that should not take into account; things like that.
TechNadu: How close or how far we are away are we from developing AIs that can code or can help to code. There are a lot of talks in the cybersec sector about developing A.I. that can help better detect malware and other attacks, but there are also fears that there will someday be malware created by AIs that will be difficult to detect and fight against?
Dmitry Soshnikov: Well, to a certain extent, every A.I. or machine learning project helps us to create code, because the essence of machine learning model is that we can avoid writing code; instead we can learn from data. Indeed, some of the areas where we had to do some research before, or some coding, they are replaced by machine learning. And the most notable being "computer vision" because there are a lot of people who did computer vision research and now it turns out that neural networks can do that better.
I think this fear is very similar to the general fear of being to some extent replaced by AI; not only coders but people in general, as we see a lot of professions already being transformed by digitalization. However, that’s Microsoft’s stance, AI is not intended to replace – but to be a tool for people – and this can also be applied to coding.
In terms of malware, I guess right now a lot of AIs are used inside the malware detection. The way most of the AI works is by being trained on existing malware, so it requires the codebase. The same is true for malware which will use AI - also has to be trained on some data so it will exploit some kind of known pathogens, it's not that it will create something completely unexpected for a human being. These malware wars are going to continue.
TechNadu: Another one of the areas of your interest is IoT. Clearly, you work for Microsoft which is actually interested in bringing secure products. But a great number of companies that produce these devices aren't that keen on the security part. What can people do to keep their data safe to keep their privacy when bringing such devices into their homes?
Dmitry Soshnikov: Well, I would probably be more prepared to answer technologically. There was a period when IoT was mostly cloud-centric; the idea was to let all the sensors send data to the cloud and then we'll deal with it in the cloud. And this is definitely less secure because all the data goes somewhere and it can be intercepted somewhere in between.
Right now, there is a technological shift towards edge-based computing. When some computing, including some machine learning models, can actually run on-premises, this makes it a little bit more secure because the data doesn't need to leave the perimeter. If you are talking about consumer devices like Cortana, Alexa, and such, they do send over quite a lot. They do send voice data to the cloud. I have not heard about major security issues like these processes being hacked. But there are a lot of discussions whether this should be at all allowable because large companies get possession of a lot of personal data and that's now the case. So, again, this is more of political debate and different companies have different policies as to which extent they handle and use personal data.
I think Microsoft follows a slightly more conservative policy. We need to give the user complete control of his data. And, I mean there is GDPR in Europe, which enforces that. So now there's a discussion. I mean this privacy issue can force a lot of complexity on developers because they need to be GDPR compliant, they need to include extra levels of sophistication into the products. Luckily, there are some cloud services which simplify managing personal data and that takes some burden away from developers. It's an important issue and you can never know the right answer - how much personal data should you provide? I think both extremes are not very good.
TechNadu: There is actually a company in France that does a personal assistant on a Raspberry Pi and none of the data goes out to the cloud, all the computational things that happen on the device. Is that something that more companies should do so they can protect privacy?
Dmitry Soshnikov: What I think is that there are some technical issues with that because there is a certain level of things you can do locally, but if you want to do really sophisticated things you still require a cloud. For example, if you want to remember the preferences of the user. The user deals with this voice assistant only a fraction of time, most of the time he searches on the Internet online, he goes to restaurants, and he does things which this device would not know if it was not connected to the central profile which is in the cloud. So the user gains a lot if the system knows a lot about him and this is only possible if this data is accumulated in the cloud. Another example is that, in most of the assistance, you can say "Please tell me when I need to leave for the airport." And this requires the system to monitor constantly the traffic between different points. And this can only be done in the cloud. Definitely, there is a room for such devices, for example, if you want the system for a child, that will tell him fairy tales and answer simple questions, I mean that can definitely be a local thing and you will be sure that the child data will not leave the perimeter. And I think, again, it will be a personal choice of people whether they want secure with less functionality or they want to open up more data and gain more functionality out of it convenience.
TechNadu: Then what are some of the projects you worked for that you are most passionate about?
Dmitry Soshnikov: I think that during the last year, when I was focusing on AI, almost every project was very interesting, one example being what I already mentioned - the event detection in the video - which was very complex. To do that, we also developed our own Python library which helps deal with large complex streams of data and we used it in all our projects. I think that was the thing that I was most passionate about during the last year. It was strange that I had to switch to using Python after many years of .Net development. Actually working on that library, I tried to bring a lot of things that exist in .Net and F# in particular into the Python world so that we don't have to struggle as much writing in that language. So I think that that was my passion project last year.
TechNadu: What is some advice you have for kids that are maybe interested in development?
Dmitry Soshnikov: That's a very good question because one of my interest is working with kids and helping them to get involved in software development, and now machine learning and AI. So my advice is that I personally believe that development is one thing which would probably be very much in demand in the future because it's a very creative thing. But the development is becoming more and more interconnected with mathematics, and if you take machine learning and AI there is a lot of math things. To stay truly creative, you need to be very technical and good.
So I believe that if the kids have any interest in mathematics, computer science, development, they should definitely try to develop and learn. When people ask me quite often "what's the best book to read "and "how can I learn software development," I think the best thing is to get engaged in some kind of project. If you think that developing games is cool, try to develop a game and if you think that AI is cool, try to do something with AI. I have very good examples. One of my colleagues in France has a kid who is I think 15 years old. He got interested in AI and started training neural networks, generates artificial images of cars in a very good way. I actually consulted with him when I also had to do similar projects. So it's quite accessible if you are interested, even though it's some complex mathematics involved, but there are tools which can make it simple and you can start creating really complex and crazy things.
TechNadu: Is there any specific domain that you think would be more successful in the future?
Dmitry Soshnikov: Well, I think the domain should come from some personal interests. If you're interested in 3D graphics, do that, because that would be definitely popular, especially if VR comes into play. Right now, I think VR is the area which everybody thinks as very cool. Already, all the business niches have been taken and there are no new ones. At some point, futurologists say that VR would be projected directly into our brain in which case there would be a complete immersion and when there is a complete immersion, definitely there'd be a lot of need for 3D modeling to populate that artificial world. So I think 3D design is a good area. AI is definitely a good area. Just general development is also probably a good area because everything is connected with general software development.
I think you should just start with something you like and follow your interest and maybe start expanding into different other areas. There are a lot of good ways to learn. There are a lot of online courses and there are a lot of code samples on GitHub which you can study and try to understand. There is one, in particular, a cool initiative started in France called School 42. It's a place where you can come and learn together with other people, but mostly by doing things and they have an educational program, so if you graduate you will become a professional software developer. If you really aim to become a software developer, you don't even need to go for traditional education. Even though traditional education is probably still a better way to do it because of good math background and things like that.
So, do you agree with what Dmitry says? Let us know by dropping a comment in the section below the article. Share the interview so others can read it too and follow TechNadu on Facebook and Twitter for more tech news, interviews, guides, and reviews.