ASF 018: Mladen Prajdic interview

ASF 018: Mladen Prajdic interview

Introduction

Mladen Prajdić is a Data Platform MVP from Slovenia. He’s been professionally programming for over 15 years, developing different types of applications in .Net (C#) and SQL Server, ranging from standard line-of-business, image-processing applications to high performance and IoT applications. He’s a regular speaker at various conferences and user-group meetings, really likes to optimize slow SQL statements, analyze performance, and find unconventional solutions to difficult SQL Server problems. In his free time, he also develops a very popular add-in for SSMS, called the SSMS Tools Pack (www.ssmstoolspack.com).

This talk has taken place during SQL Saturday #782 Slovenia conference in Ljubljana, on 8th December 2018 (Saturday).
Interviewers: Kamil Nowinski & Michal Sadowski.

  • How many people do live in our guest’s country?
  • What can give you a valuable perspective?
  • How can you convince your boss to upgrade SQL Server to a newer/latest version on enterprise platform?

Find out the answers to these questions and much, much more.

Audio version

 

Don’t you have time to read? You can listen this as a podcast! Wherever you are, whatever you use. Just use the player directly from this site (above), find it on Spreaker, Apple Podcasts, Spotify (new!) or simply download MP3. Enjoy!

Transcript

Kamil Nowinski: Hello, Mladen. Thank you for accepting my invitation for this podcast.

Mladen Prajdić: You’re welcome, glad to do it.

KN: At the beginning, could you tell me what your name is and where you live?

MP: So my name is Mladen Prajdić and I live in Ljubljana in Slovenia. It’s a very small country south of the European Alps. It’s a beautiful country.

KN: How many citizens are there?

MP: In Slovenia? There are 2 million people in Slovenia.

KN: And in Ljubljana?

MP: Ljubljana has about 250,000-ish. Depending on what you count as Ljubljana. But it’s a very small country, but you’ve been here more than once, so you know about our hospitality and how the nature is beautiful and how the people are friendly. We try to treat you right.

KN: Yes, and basically the city centre looks amazing during December and winter.

MP: Yeah, with all the Christmas lights and everything. It’s pretty romantic.

Michal Sadowski: What are you doing for a living?

MP: So basically, I’m a developer. Right now, I’m developing for iOS. I’m doing Swift development, but I basically specialize in databases and database development, C#, stuff like that. I like to do performance tuning as well, on both sides of the IO, on database side and the application side. I do sessions about that as well and I organize the SQLSaturday Slovenia. Well, I help organize, I’m one of the organizers. I go around and give sessions around the world. Different SQLSaturdays and other conferences. So yeah, it’s a fun life.

MS: Could you tell us a little bit more about the tool you have created, this SSMS Tools Pack? When was the first release?

MP: The SSMS TooIs Pack is basically an add-in for SSMS. I created it in 2006, that was the first version.

KN: At the beginning it was free version, I think.

MP: So the story was, I was talking on about 27 December 2005, I was talking to a friend in the States and he said “You know, it would be really nice to be able to somehow add functionality to management studio” and I’m like “Challenge accepted”. So it basically took two weekends and reverse-engineered the steps to extend SSMS, and I wrote what he wanted, basically a CRUD generator, CRUD stored procedure generator. That was the first feature. So I created that, gave him the test version, he was like “Oh my God, this is amazing”. And then I said “OK, this might be useful to other people as well”. So I started developing more and more features and the first official public version was about six months later. I can’t remember what features there were at that time, but since then it has grown in popularity a lot. And it’s free for SSMS 2008 and SSMS 2008 R2, it’s still free. 2012 and upwards requires licensing, because in 2012 I said “Well, this is consuming so much of my free time”, because this is a project that I do in my free time still. It consumes so many resources and my free time that I either open source it or start charging for it. And I decided against open sourcing it, because it was something that Microsoft hasn’t supported officially. It still isn’t supported officially. And I would still be the only one working on it to be honest at that time. So I decided to start charging for it and do proper customer support and everything. And then it just grew, and now it’s grown a lot.

KN: Can you say how many customers you have for this or how many licenses you’ve sold?

MP: Well, no. I mean, I know, but I won’t tell you. But I can tell you that since I released it in 2005, I had about 1.3 million downloads since 2005. So this is all versions and everything.

KN: When you started working on that, did you have any documentation how to create add-ins to the SSMS or did you ask Microsoft for help?

MP: No, there was no documentation at the time, there still isn’t. I basically took Reflector, so that wasn’t Red Gate’s tool at the time, it was still open source I think. Somebody created it, I don’t know, I don’t remember who, but it basically showed .NET DLL’s in disassembled form. So I took that and just went through how SSMS works. I reverse-engineered it and I used Sysinternals tools to see what folders SSMS reads at the startup to see where you should put some files that are recognized by the add-in model. Because SSMS was built on top of Visual Studio, which supported add-ins at that time, so it would make logical sense that SSMS also does something similar. It was just completely unsupported by Microsoft. And to this day, every new version of SSMS that comes out, it breaks something from the previous version, so I have to rewrite some infrastructure code.

MS: Do you still use Sysinternals tools for that? Just to reverse some of the procedure, or do you have any other tools?

MP: No, I still use the Process Monitor and Process Explorer to see where it goes. It’s still the basic tools for this task. And of course now I use ILSpy, this is an open source disassembler. And that’s pretty much it. And it’s still the same process: going, see what happens, reverse engineer, try it, if it works, it works, if it doesn’t, it doesn’t.

KN: Next question: about the MVP. What do you think about the MVP those days? MVP as a program?

MP: I have no issues with it, to be perfectly honest. I mean, sure, things could be better, but things could be always better. As a group of people, we have some talking about MVPs in general. Everybody has their own views how something should be run, but in the end it’s Microsoft’s program. Microsoft decides how it should be run. I mean, we can either go with it, go against it, or try to improve it. And I think that most people are trying to improve it in their own way. I mean, sure, things could be better, but I have no real issues with it. I mean, it gives you great benefits, because you get… I don’t know, what I can say that’s not covered by the NDA. You get some access to people that you wouldn’t get access to otherwise.

KN: My next question would be like what specific benefits are important or useful for you?

MP: For me basically meeting people. Through the MVP program, MVP Summit, there are different communication channels, stuff like that, gives you the opportunity to meet people that you might not get to meet otherwise. Because they’re highly technical, highly knowledgeable and, in the end, it basically comes down to that if you have an issue that you cannot solve, you know who to ask that can point you in the right direction of the solution. And, in my opinion, that’s the most important thing that you can get. Because you can buy licenses, you can google stuff, but you have to know what to google for. Once you know what to google for, it’s easy. You have to know what to google for.

KN: And also you can get the answer much, much quicker and directly from the source. Last question about the MVP. When were you nominated, when were you awarded for the first time?

MP: 2010. I’ve been an MVP for a while. 8 years now. Time flies.

MS: What hints would you give to young people who want to start working on the market, I mean the IT market. In general.

MP: It’s not as simple as it sounds, the IT market. You have to be prepared to learn constantly. I mean technology these days is going so fast, it’s developing so fast that you just can’t keep up. Realistically expecting that you can keep up with everything is impossible, so you have to find one or two things, preferably two things that you can be really good at, that you like doing, and just go do that. There is enough work in those two areas, no matter what the areas are. There’s more than enough work for you and you can always switch areas if you want. For me that was C# development and T-SQL development. I don’t do DBA. I do DBA but I don’t like doing it. Also one important thing I think that they should know, is learn the basics. So I see a lot of young people just jumping into the waters of IT without knowing basic stuff. Like if you’re a developer, you don’t know basic algorithms for things, or basic data structures. And sure, you might think that’s not important, but in the end it is important, because it gives you perspective on how you can solve different business problems. Because what is programming in the end? It’s translating business problems into solutions via code, and that’s just algorithms in a different way. For other kinds of IT, since I don’t specialize in those, I don’t have any other advice, but you have to know the basics, you have to have a good foundation that you can build on.

MS: Then how can they reach that kind of foundation? How can they learn those things?

MP: There’s a lot of resources online. Which one you choose is completely up to you, but once you start reading into something or listening to podcasts, or learning from videos from different websites or whatever the method is, you will see which ones are good. Because not all are created equal. But you don’t know which are good and which are not, because you don’t have enough knowledge to decide which are good and which are bad. So once you get to know some stuff about the subject you choose, then you can decide “OK, this is not giving me the things I need” and you can find something better. So in the end it doesn’t matter, just type into Google the subject that interests you and start reading on the first link. And then you will find either books that are good or videos that are good. I mean, if you just say “OK, I want to learn programming T-SQL” and you go grab a book “Beginning T-SQL Programming”, sure. I made up the title of the book, I don’t know if that exists actually. But you don’t know if that book is good or not. Sure, you will start reading it and then after 500 pages you will see “OK, that maybe is not that good”. You have no clue. When you start, it doesn’t really matter, where you start or how you start. You just have to start. And you have to be prepared to learn a lot.

MS: Do you think that it’s required to have university background just to start working in IT? You need to graduate in computer science or something similar?

MP: No, I don’t think so. Because I know a lot of people who are really good IT people programmer system analysts, system engineers that do not have official technical background. You might run into issues when you try to get, I don’t know, visas for some countries or something like that. That if you have, say, a social studies degree and you want to get a visa to, I don’t know, United States or whatever. And you say “OK, I’m gonna work in programming or in IT” and they will say “But you have a social studies degree. That does not work together. How are you gonna prove that you know what you’re talking about? Or do you have any certificates?” So from this perspective, I would say that getting a degree is very, very good. For me it potentially opened a lot of doors that I would have to work for much harder otherwise.

KN: And what about certificates then?

MP: So personally, I don’t do certificates. It’s not because I wouldn’t want to or I think they’re bad or anything, because they’re not. They can be very useful. I just don’t have the need for it. So it depends on what you want and the situation. If you go for an interview to a company that you can see that they like certificates, go to them, it’s fine. You will learn new stuff. That’s always great. But I don’t do certificates mostly because I haven’t had the need to do them yet.

KN: So as you mentioned, we know that you are speaking a lot. Not only in Europe market. Also across the pond. And how do you prepare yourself for a speech?

MP: For a session? I don’t actually do a lot of preparation because I’ve been speaking for more than ten years now, so I know my timings by head. I don’t have to go in front of the mirror and practice. I just ride the slides and it doesn’t matter what I write on the slide time wise. It doesn’t matter because even if I write just two words about the subject, I can still extend that to ten minutes if I have to. And if I don’t have the time, I can just compress it into one minute. So I know usually where I am time wise. As for content, I always try to overprepare. Because if, for example, I would now give a session on, say, high ability. I don’t know much about high ability, because I never really did a deep dive into HA before. If I had a session about that, I would do a complete deep dive into that and learn every single thing I can, because you can never be overprepared. You want to answer as many questions that people give you as possible, but never be afraid to say “I don’t know”, because nobody expects you to know everything. If somebody expects you to know everything, it’s illusion.

KN: Sometimes people expect, especially if you are an MVP.

MP: They can expect, but that’s not realistic. Other than that, I don’t do much preparation.

MS: How do you start with the presentation? Do you start with a blank sheet of paper and pencil and then you just draw all of the items that you would like to discuss, or do you start with PowerPoint or some other tool?

MP: If I were to build a completely new session, first I decide what I want to talk about. I write the title. Then I write the abstract, because the abstract gives you clarity on what you want to say. What you want to have the session about. And then I open PowerPoint and put about ten key points. One per slide, so I have ten slides for example and put ten key points in each slide, which I think are the most important for that session. And then I expand on each key point on one slide, but I don’t overdo the slides. And when I do that, I look at the session, I take a break of about a week and then probably completely rewrite it. But why? Because for me it takes about a week to put all of the pieces that I put in PowerPoint already to put them together in my mind and see “OK, the flow is maybe not that good, here it can change etc.”. And then I give the session and then I see a hundred thousand different things that I could change and then I change it again. So every session is different and every session, every presentation, is basically a work in progress.

MS: Do you have any, let’s say, freeze code just before the presentation? That you are not changing anything in the presentation before the presentation? Or you are making the changes like two minutes before “Oh, I just need to change this slide” and then…

MP: No, I have a rule that I don’t change anything in my slides at least three days before the presentation. So I do a test run about two days before the session. I do a test run of all the demos and slides and everything. If I find something that I’ve made wrong or anything, I fix that. But generally, as for big changes, I don’t do that. And then I do another test run of demos about a few hours before the session.

KN: Because Azure is changing every day.

MP: That’s true. Luckily, I don’t do much Azure demos. I try to do as little as possible because of that reason.

MS: How about work-life balance?

MP: As you get older, that changes. When I was 25 I think, I said “I will not overwork myself”. Because I’ve done a lot of work before I was 25 and I said simply “No”. Now I have a very strict differentiation between work and life. I do eight hours at work and then, when I go home, I put work on hold and I deal with my pet projects like the SSMS Tools Pack or family or whatever. And basically I think family has priority always, but it’s easy for me to say as I am not a consultant or I’m not self-employed. I’m an employee in a company, so it’s probably easier for me to say that than for somebody who’s a consultant who has to take care of their own cash flow.

MS: What is the personal achievement that you are most proud of?

MP: Personal achievement? So when it comes to the technical side of things, it’s definitely sticking with the Tools Pack for so long. It’s been 12 years now. As for personal, I don’t know. I mean, I’ve done a lot of stuff, I’m proud of all of them.

KN: Now everyone knows that we do not send our questions in advance.

MP: These questions… like, personal achievement, what the hell? It was the hardest question.

KN: Which part of your life, of your work is the hardest?

MP: That’s a really good question, very hard to answer. I would say the hardest part of life and work is getting well and along with other people. Because we are not all people persons, right? So when you work with people, you get a lot of different personalities and everything, and nicely navigating those borders – it can be quite hard. And same in personal life. So I think that’s the hardest part in everybody’s life. You know, getting along with other people. The communication thing, I think that’s the hardest point. Everything else is just a matter of doing it. If you don’t want to do something, you won’t do it.

KN: What do you think is the future of on-premises servers?

MP: I think it has a future. I’m not worried about them at all because there will always be customers that, for one reason or another, won’t be able to go into cloud. And the cloud is not a magic solution for everything. So I think they will stay here for quite a while.

KN: How do you think we can help customers or companies migrate to the newer version of SQL Server? Either on-premise or to the cloud.

MP: You have to show them the business value for it. That’s simply it. IT is a cost center, it’s not a profit center, so you have to have the skills to turn it into a profit center somehow. Or lessen the cost of it. Now, that’s a business value. And if you can show that, then you’re done. Most people in management positions think of IT as a cost center. So how do you position yourself as a profit center? You have to position yourself as a problem solver for the profit centers in the company. Now what are the profit centers in your company? That’s up to you to decide. I don’t know who the profit centers are in your company. Either its production or marketing or sales. And then you talk to those people and solve their problems. That’s pretty much it. And if you can show a company that their profits will go up because of moving to a newer version of something, then you should be able to sell that.

KN: So we already know what is the main reason why companies are not emigrating to the newer version.

MP: They don’t see the reason for it. I mean, the place where I work, we still have one 2000 server, because there’s no actual need to change it. Sure, it isn’t open to anywhere outside, it has one table that is used by five different applications, but that server is enough to run that table. It’s not a high speed table, so there is no need to buy another license for that server.

KN: But it’s not supported. What if something happened to this database or maybe if you can’t maintain some application?

MP: The database would be just migrated to another server. If one of those things where if things work, don’t break them or don’t fix them. Well, don’t break them, of course not, but if they work, don’t try to fix them. You have to be pragmatic about it as well.

KN: How many customers do you think are ready to migrate to Azure?

MP: Percentage-wise or…? I have no idea.

KN: It’s changing a lot. Azure is more popular year by year.

MP: I think a lot of small businesses could easily move to Azure, because of all the infrastructure thing. And so they don’t have to keep their own IT.

KN: It’s easier for startups.

MP: Not start-ups, smaller customers, mom-and-pop places, smaller businesses, up to say 50 people. I think there are prime candidates for that. As to how are you going to convince them to do that? Show them the profit in it.

MS: What do you think about the current trend of migration to cloud? Is it going to be replacing fully SQL Server that is on-premises, or will it be that the market will be divided into two separate silos that will remain the same. So like 80% in Azure and then 20% on-premises, or will it be changing?

MP: Right now that trend is definitely going up. People are migrating to Azure. Now, we’ll see what happens in the future. If they are happy with the services they receive, sure, they will stay there. If not, they will move back to on-premises. But I think on-premises isn’t going anywhere. In the end it’s going to be a mixture of some kind and if you can build something that eases that distinction between on-premises and in the cloud that bridges that gap, that will solve a lot of issues. There won’t be either one or the other, there will be a mixture of both. What the percentages will be, I have no idea. That will totally depend on the success of cloud offerings and features.

KN: The last question is how did you start working with SQL Server?

MP: So, when I was a student, I started working in programming in 1999. And at that time I worked with Microsoft’s Visual C++ and Oracle. And after that, I swore I would never touch databases again. And I haven’t! Fast forward to 2002 I started working with .NET in a different company. My boss at the time comes up and says “So we have to do this Pivot thing, we have to change this data into grid form etc.”. And I don’t remember what he was explaining at that time, but I was like “OK, fine”. So I started programming things in C# and I’m like “There has to be an easier way”. So I’m like “How do you even start searching for this?” Because come on, this is 2002, Google was very non-existent at the time. I mean, they were there, but you know. So I found a website called sqlteam.com. It was forums, had a lot of articles and I asked a question there. They told me it’s called transposing data or pivoting data or something like that. And I said “OK, that sounds promising”, so I started looking into it and I wrote my first T-SQL statement to do a Pivot on that data. I wrote it, I don’t know, in two days and it magically worked and then I started asking and answering questions on forums on sqlteam.com. And then I started blogging and then I started speaking and then I started the Tools Pack. Well, I started the Tools Pack, then I started speaking. And now we’re here. So that’s how I started working in SQL.

KN: In 2002. Sixteen years.

MP: That’s a lot of time.

KN: At the end of our conversation, tell us where we can find you. I mean on the Internet of course.

MP: If you google me, I will be two pages of Google. Seriously though, I have a blog at sqlteam.com, which has been inactive for quite some time. You can visit me at ssmstoolspack.com, that’s the page of my add-in. You can find me on Twitter, so @MladenPrajdic. I’m on Facebook, but I’m not a lot on Facebook. You can mostly get me on Twitter.

KN: OK, cool. Thank you very much for the conversation.

MP: Thank you, it was fun.

Useful links

Mladen’s Twitter: @MladenPrajdic
Mladen’s LinkedIn Profile
SSMS Tools Pack: official website

 

Previous 17 months of podcasting - recap
Next Last Week Reading (2019-01-27)

About author

Kamil Nowinski
Kamil Nowinski 200 posts

Blogger, speaker. Data Platform MVP, MCSE. Senior Data Engineer & data geek. Member of Data Community Poland, co-organizer of SQLDay, Happy husband & father.

View all posts by this author →

You might also like

Podcast 0 Comments

ASF 013: James Rowland-Jones interview

Introduction James Rowland-Jones is a Principal Program Manager for Microsoft. He is passionate about delivering highly scalable solutions that are creative, simple and elegant in their design. James specializes in big

Podcast 10 Comments

ASF 001: Brent Ozar interview

Introduction Brent Ozar talks about himself, his passion, hobbies and carreer. Brent Ozar is one of the most known person in the SQL Server world. He is a Microsoft Certified

Podcast 0 Comments

ASF 035: Alex Yates interview (part 2)

Introduction Alex is a Data Platform MVP who loves DevOps. He’s has been helping data professionals apply DevOps principles to relational database development and deployment since 2010. He’s most proud

0 Comments

No Comments Yet!

You can be first to comment this post!

Leave a Reply