The state of technology. A talk with Tiberiu Covaci

Several days ago Visma Lietuva had a guest. One of this years Build Stuff speakers Tiberiu Covaci, a Microsoft MVP and CTO of Cloudeon. For over 20 years he dedicated his life to improve the quality of the software written by other people by helping them to understand the technological choices they are presented with. Tiberius efforts include training, mentoring, advising and motivation of the development team. He spoke about the state of .NET, but we had other questions. So read the full interview with Tiberiu about the state of technology.

  1. What is it like to be a Microsoft MVP?

MVP stands for most valuable professional and it’s an award given by Microsoft to people that do outstanding community work. The meaning of community work is very liberal, but normally most MVPs are speaking at conferences, meetups, organizing meetups, lately they are looking at people who have a lot of twitter followers, I am not one of them (laughs). They are looking for contributions to open-source projects, so I like to joke that this means doing free work for Microsoft, and in return you get invited to Microsoft Redmond Campus once a year to meet with the product team and get access to software a little bit ahead of time. Of course, you need to get the attention of your local Microsoft representatives or get some other MVPs to nominate you for the program. Once you get nominated then Microsoft will start evaluating your contributions. Like, how you contributed to the community? Does the product team know you? Does the community know you? Do the local Microsoft representatives know you? Those are some of the things that are required.

  1. In your opinion what is the most valuable skill for a great tech. public speaker

There are two main things to keep in mind if you want to be a good public speaker. The first and most important thing is to be passionate about what you’re talking and two – imagine the audience naked, then you’re not afraid of speaking (laughs).

  1. So speaking is in your comfort zone? 

I don’t have any comfort zones. Every time I go on stage, I have the butterflies, I’m stressed, it’s not like it ever goes away. It’s an adrenaline kick every single time. I always said that the minute I stop being stressed, that’s when I will know that public speaking is not for me anymore. The first time I spoke on stage was by mistake. The conference organizers started looking for me at midnight and asked me to talk, because one of the speakers had to cancel, I said:

– Okay, when?

– 9am,- they replied

I had nothing prepared, I stayed until 3am and you know what? I made a fool of myself. I was the worst speaker at that conference and that was my first time. The second time I spoke on stage I almost called in sick, I was so afraid of going on stage I started to think:

– Oh, no, no, no, I’m going back home.

But then something made me change my mind. I went into the room and they almost didn’t let me in, because it was full. They said:

– Sorry, we have no more seats.

I replied:

– I doubt you really don’t want me here.

They said “okay, okay, we didn’t know you were the speaker”.

When I got in the room, I was afraid that I wouldn’t be able to start because I will have no voice, but as soon as I said “Good Afternoon” everything just started to flow. That is the very single time I listened to a session that I did. I was voted the best speaker on the developers track and I couldn’t believe it. So, I really enjoy being on stage, but it does require preparation and it’s not like “oh, I’m in my comfort zone and I can do it in my sleep”. It’s still quite stressful.

  1. Do you see a difference between a public speaker that speaks on technology related issues and someone that speaks on a soft skills topic? Or is there no difference at all? 

I think there is a very big difference. Tech. public speaking is you talking about the things you know and are passionate about. Talking about soft skills, and by the way that’s what I’m planning to do at Build Stuff this year, it’s a completely different ballpark. It’s talking about opinions, and the thing with opinions is – everybody has one. So, you need to learn how to deal with someone opposing you.

Tiberiu Covaci

Tiberiu Covaci with interviewer Liutauras Medžiūnas

  1. What investment does Microsoft do in Azure? 

I’m not quite sure about the monetary investment, but I know that Microsoft invests a lot of money in Azure, they already have 54 regions, so that’s a lot. Also, they just announced that they would build a data center in Sweden, which makes me very happy, the center is going to be about 50km from my home. Of course, that doesn’t help me in any way, I don’t think they’ll let me plug in my cable there. But the idea of having a national data center near you is awesome. All in all, I don’t say this often about Microsoft, but when it comes to Azure, I think they made all the right choices, not just a few of them. Think about it like this, they started with a platform as a service, because they wanted to solve the distributed computing problem. They didn’t want to get rid of the data centers and the hosting providers like other companies are doing. But then they realized that as developers they still didn’t know how to do distributed computing, they still needed their virtual machines, they still needed the feeling of being able to touch the network. That’s why they ended up getting all the virtual machines and infrastructure as a service offering. Doing this move Microsoft soon realized it has a lot of compute power they can use for stuff like AI and Machine Learning.

  1. When do you suggest to not use Containers for app hosting? Containers versus Virtual machines.

I’ll tell you what my take at it is. First of all, if you’re application is web based, just don’t reinvent the wheel and go with the web application, but if your application is not purely web based and you need other services around it I think containers help you with a very interesting aspect. It makes you cloud independent or cloud provider independent. I try to look at the whole independence thing with a grain of salt, because we had database independence for a very long time, everything else was selling exactly the same dream and we still ended up being bound by Oracle or Microsoft. Same goes for JAVA, once you start deploying your app on a Linux machine, you’re bound to Linux or Windows, and that’s it. It’s not like purely platform independent. It’s always something that will tie you to a specific platform. The difference with containers is that different providers have a lot of similarities, so it’s much easier to move from one to another. And when it’s easier for you, the more incentive they have to offer you better solutions, and do the right thing.

  1. Currently, we have Visual Studio, Visual Studio community, Visual Studio Code and .NET IDE Rider? How to choose the best IDE for .NET?

Every single one of them is good for something specific you need to do. I’ve been using Visual line of products since 1994. The very first version was Visual C++ 1.5. Now I’ve been using Visual Studio and Visual Studio Code. For everything back-end related I love Visual Studio it gives me whatever I need, but for everything that’s front–end related, doesn’t matter whether I use Angular, React or Vue.js, I use Visual Studio Code.

  1. I saw some presentations on Youtube on how to run Blazor, how WebAssembly benefits us for better speed in a browser. What do think is the best benefit for the enterprise to run C# in a browser. How that technology will move into enterprises?

So, what Blazor gives you is stability. That’s the biggest advantage, with JavaScript you get a new framework every day and that’s a problem. The reason we invented so many frameworks is because we disagree on something and we don’t think it’s good enough to make everyone want to use it. As soon as something is half good people start to look around and they start to invent their own stuff. If something is more than good enough and can help you solve business problems, go ahead and use it. I think that WebAssembly is the promise, because they’re working on bridging and making sure you have access to the DOM and all the manipulations you can normally do in JavaScript. There are still a lot of things missing, but once you have that, and you can use C# and do the development, you’ll be able to do a lot of stuff.

We use JavaScript, we use all those things. We tapped into an unused market, let’s put it like that. You have your server, and you do all the rendering. Or you move the things and you pass the rendering to the client. Once you do that the client actually gets a better experience with your application. So that was making really rich user interfaces without  making the user install your operating system, that’s why gaming gets a lot of praise. But when you think of it, you get access to WebAssembly. You can start developing your application and you don’t have to care about your framework disappearing because there’s a better framework around the corner. You know, we were almost there with SilverLight, but Microsoft got really scared when Facebook announced that they will skip it, and then Apple said that they are not going to allow any plug-ins to work anymore on iOS. SilverLight was at the time plug-in based. We were on our way to something and Microsoft killed it in favor of HTML5. I don’t know if that was a good move or not, but we’ll see.

  1. 10 years ago we used web forms and most of the business logic was left in the application, now do technologies like WebAssembly open up the same programming opportunities like we had in the past? 

Think about it like this. The browser should be good for one thing and that is to render your UI. There are many frameworks that are trying to solve the same paradigm, you write the whole thing in one single application like meteor. You don’t have to worry, you just write your application as it is, and we’re just going to move stuff to the left and to the right based on what is possible to accomplish with the client. The same is with WebAssembly. Once you know your application is able to work on WebAssembly, you can do a lot of stuff. I think that Microsoft is on the right track with Blazor, because there will be no new versions of ASP.NET WebForms. The reason WebForms were so successful, and still are, it’s the ease of development. When we talk about the line of business applications, we talk about text boxes connected to a database. That’s what most of the applications out there are about. You have some business logic in the back and can try to do some calculations, but most of the time you just want to make the data look nicer, maybe throw in a power BI, some crafts, so it looks even better, but at the end of the day, data is what it’s all about. And if you can make that with WebAssembly then it makes a lot of sense.

  1. For developers is hard to choose between Xamarin, Hybrid and Native app development. Is it better to go with Xamarin instead of native development? How to explain the benefits to the client? 

If you really need a fast application with good responsiveness, you just go with Native, because no one else can beat that. But if the application you’re developing is not really bound to this why not go with Xamarin. The fact that Microsoft bought Xamarin gives it a lot of credibility, it’s not a third-party company or someone doing it in a garage. Talking about Hybrid applications I think they had a time, but I think it’s over now, looking at how unstable all of those JavaScript frameworks and applications are. That always makes me think “do I really want to go there, do I really want to create so many security holes.”

  1. How does Microsoft move into the world of Artificial Intelligence?

At the moment Microsoft is the only company that I would trust with this kind of technology, because they have strong ethics that no other company has. Or at least, that’s what they let people see. I might be wrong, but they are doing a lot of investment in AI and trying to be ethical. We’re not really at Asimov’s level, but I think that’s where they are looking at, that everything you do with AI should be well thought out. Let’s face it, technology is and can be used for bad stuff. There are a lot of movements saying that when you start working for a company, think about the things you’re doing. Of course, you can get a good salary, but if you create bad things than you have that responsibility on your shoulders. An example would be child pornography, it’s easy to develop sites like that, but it’s a problem if you as a developer don’t pay attention to what you do.

  1. How did software development change during these years? Can you name any significant changes?

Oh, yeah. I think the biggest challenge today is that most developers do not understand what they have to do. Instead of resolving the problems they’re having, we end up creating new layers of abstraction. That’s your containers. Why did we do containers in the first place? Because we wanted to avoid talking with our IT pro guys, in order to try to see how we can deploy our application in production. It’s like “No, I will give you my machine and you’ll run it on that server, and I don’t care about communicating with you.” I talk with a lot of people and it seems like they don’t have any idea about simple programming constructs.

  1. What are the main mistakes developers make when choosing software technologies?

The biggest mistake is that they actually choose with their heart. They don’t choose keeping in mind that it’s a product for a certain business, because normally when you choose a technology stack, you have to think:

– How will this technology help the business?

Everybody talks about Microservices and Containers, so of course that’s what we have to do. And if they end up not using Containers in the project, they feel betrayed. I don’t think it’s only the developers’ fault, because the businesses are not helping them understand:

– This is how we create value. And this is why we need you to do this for us.

When the business doesn’t fully understand what it needs, then of course we will choose what we think is best. What I would see myself doing in a year from now, which might not be the same thing the company will profit off in a year from now.

  1. What is the future of software development?

10 years ago when I started to speak at conferences, in order for me to make friends I started a series of interviews called “the 5 minutes with”. So, I would interview people, and I always had the last question:

– If you had a crystal ball, what do you think the future would look like, what technology do you think would be the most important one?

So, the future of software development that’s a very interesting question, because the way things are currently evolving, I don’t know, sometimes I feel like there will be no more software developers anymore. If you talk with businessmen, they all want to get rid of the developers. If you look at the programming languages, they’re trying to be more and more expressive. Even if you look at the tooling, it’s so hard to make mistakes nowadays, because there is always some AI engine behind it asking:

– Are you sure that’s what you meant? Maybe you meant this?

One thing that always happens, I don’t know if you ever noticed, but every couple of years Microsoft is coming up with a new framework to develop applications without needing a programmer. Why do you think they do that? Because I think there is a market, but they still didn’t figure out how to do it. So, I see a bright future for developers (laughs). At least for the next ten years or so, then I will retire, and I won’t care anymore (laughs).

Thank you Tiberiu for your time