[00:00:05] SY: Welcome to the CodeNewbie Podcast where we talk to people on their coding journey in hopes of helping you on yours. I’m your host, Saron, and today we’re talking .NET with Maria Naggaga, Senior Program Manager at Microsoft for .NET Interactive and ASP.NET.
[00:00:20] MN: And I don’t know if people understand that when you’re dyslexic, sometimes school can be such a challenge that it becomes frustrating. And with computer science, it was the most freeing experience I’ve ever had in my life.
[00:00:33] SY: Maria talks about how coding was actually a great path because of her dyslexia, what .NET is and what it’s good for and what the learning curve is to use it effectively after this.
[MUSIC BREAK]
[AD]
[00:00:52] TwilioQuest is a desktop roleplaying game for Mac, Windows, and Linux to teach you real world developer skills. Take up the tools of software development, become an operator, save the cloud. Download and play TwilioQuest for free at twilio.com/quest.
[00:01:09] Simplify your infrastructure and cut your cloud bills in half with Linode’s Linux virtual machines. Develop, deploy, and scale your modern applications faster and easier. Whether you’re developing a personal project or managing larger workloads, you deserve simple, affordable, and accessible cloud computing solutions. Get started on Linode today with $100 in free credit for listeners of CodeNewbie. You can find all the details at linode.com/codenewbie.
[00:01:40] The more you know about web development, the more fun it is. With Pluralsight, you can take your skills and your career to the next level. Start a free account today to access 50 expert-led courses, plus five extra free courses rotating in each week, charged into 2021 with the confidence of someone who has development experts in their corner. Go to pluralsight.com/free to create your free Pluralsight Skills account today.
[00:02:07] Awesome applications need data wherever, whenever, and however users want to consume it. In addition to a fast to deploy application stack, if you missed React with Cassandra Dev Day, a half-day interactive virtual event that happened on December 9th, it’s not too late to learn how to use React with Netlify and Apache Cassandra, the same database that powers Netflix, Spotify, and Apple. Register to view on-demand content at events.datastax.com/reactwithcassandra.
[AD ENDS]
[00:02:43] SY: Thank you so much for being here.
[00:02:44] MN: Thank you for having me, Saron. This is exciting.
[00:02:46] SY: Yay! So you have been in charge of one of Microsoft’s biggest programs for the last few years, which sounds incredibly fulfilling and also kind of stressful. Let’s talk about the path you took to get you there. Where’d it all start for you?
[00:03:01] MN: So it all started for me in an internet cafe in Uganda where I accidentally hit right click and saw view source. So like a lot of people I’ve met who have gone to computer science school who have had a passion from it from day one, I stumbled across it by accident. So I went home with my view source, which I saved in a notepad file and I went and edited it. And without knowing what HTML was, I tweaked it and created my very first webpage while not really understanding the bits that made it.
[00:03:35] SY: And how old were you?
[00:03:36] MN: Twenty. Yeah, 20.
[00:03:37] SY: Interesting.
[00:03:38] MN: Yeah. I started a little bit later because I have two degrees.
[00:03:43] SY: Ooh! What are your two degrees? Computer science is one of them.
[00:03:46] MN: Computer science is one of them. So I did history.
[00:03:49] SY: Oh!
[00:03:50] MN: And then I did computer science afterwards. So I went to university twice.
[00:03:53] SY: Okay. So I want to talk about that moment when you tweaked the HTML and then basically made your first website. What did that feel like?
[00:04:04] MN: It felt fulfilling. It felt like I had control of something that I had never seen before, because education is so limiting in a way where things are done a specific way. And there I was presented with Markup and HTML and just bringing it out. It just made sense.
[00:04:23] SY: So how did you go from, “This is a cool thing that happened by accident,” to, “I’m going to study computer science”?
[00:04:31] MN: Like a lot of African kids out there, parents. So my mom noticed me tweaking this and feeling incredibly independent. And as a person, I’m dyslexic, and I always struggled with reading and school was always a little bit terrifying for me and I had great supportive parents. And when my mom saw me just being incredibly independent with code, she was just like, “Okay, this is it. You’re going to go get a degree in this computer science thing that I have no idea about, but I read a Times’ article and I think it’s the future.”
[00:05:04] SY: Smart woman.
[00:05:05] MN: Yeah. Mrs. Naggaga like pushed me into this and I’m grateful for it every day because she wanted me to test the waters first. So she put me in a diploma program in Uganda, like after I’d finished my history degree, and I got a diploma in software engineering and I had never felt smarter in my life. And I don’t know if people understand that when you’re dyslexic, sometimes school can be such a challenge that it becomes frustrating. And with computer science, it was the most freeing experience I’ve ever had in my life. I felt like I had an equal playing field for the first time.
[00:05:41] SY: Why is that? Because even when you’re coding, you still have to read it, right? There’s still a huge part of the experience is actually reading the code. So what made it feel better for you? What made it feel more comfortable?
[00:05:55] MN: With computer science and when you’re writing programs, let’s say programming in general, the fact that you have curly brackets and angle brackets and semi-colons, I feel like it acts as an anchor for me. And if you look at popular fonts for people who have dyslexia, they have this style where they actually put heavier weights on curves that allow you to anchor the text. And I found that because the sentences were short, right? So the lines of code were short and they were passed easily. You could glance with them over the eye. It wasn’t overwhelming. So the words didn’t move around in my head anymore. They weren’t jumbled up because I knew that the semi-colon marked the end and the curly braces marked the beginning of something new that you’re starting something new. So it was even mentally easier for me to context switch as well.
[00:06:47] SY: Very interesting. Okay. So you mentioned that there are specific fonts for dyslexia, which I don’t think I knew exactly what they did, but I think I’ve heard of that before. Are there specific fonts or tools for coding that make it easier for people who have dyslexia?
[00:07:04] MN: There aren’t specific tools that exists in any ID that I’m aware of right now that help people with dyslexia, but with VS Code and Visual Studio, you can add your own custom fonts into the editor of your choice. So I just put open dyslexia in there, right? And then there are also a bunch of themes that allow me to have more code colorization, which have also been really useful. My favorite one is actually from Google, I don’t know if it’s taboo for me to say.
[00:07:36] SY: I don’t think you’re allowed to say that. Yeah.
[00:07:37] MN: I think I’m allowed to say it, but Google has a material theme, which has been amazing for me. I think it’s just the way it splits the color blocks between the body of where you’re writing your code as well as the menu. So I find ways. maybe I should write a book on all the tips and tricks for dyslexic programming.
[00:07:58] SY: Definitely a blog post, at least a blog post.
[00:08:00] MN: I think so.
[00:08:01] SY: I think it would be really useful. Yeah. I think it’s helpful for even those of us who don’t have dyslexia, just to get a better understanding of different accessibility issues and usability, and just understanding the experiences of other people who are not like us. I think it’s really educational and really useful for us to know. So yeah, if you’re up for a blog post, I’m sure lots of people would be interested in reading it.
[00:08:24] MN: I should give it a try. As a dyslexic, a blog post can be intimidating, but I’m up for the challenge.
[00:08:29] SY: Okay. So I want to go back to college. So you studied computer science because basically your mom told you to, even though she didn’t really know exactly what it was, she still told you to because she was very smart woman. What were your expectations when you thought about getting that degree graduating? Did you have a sense of the kind of job you wanted or the kind of career you wanted to build?
[00:08:50] MN: Yes. And what ended up happening was completely different. So when I went into my computer science program in Canada, I was expecting to graduate, get a job at Microsoft or Google or Apple building these great elaborate programs that people would be using every single day because I thought that was only one thing that you could be when you had a computer science degree, which was a developer. And I was completely and utterly wrong. Also going through the computer science program, it was more theoretical than practical. Yes, we did have coding assignments every single week. However, when I joined the workforce, there were so many things I was never taught. Like I joined the workforce and I had no idea what Git was. Right? It wasn’t something that we’re taught about. We weren’t really allowed to do web development when we were in school. It wasn’t considered a real science, like computer science. And then I joined the workforce and everything that they told me not to worry about was everything that I should be worrying about.
[00:09:56] SY: Very Interesting. Yeah.
[00:09:58] MN: That is terrifying because you feel like you’re unprepared for the workplace.
[00:10:04] SY: How did you deal with that emotionally? Because I’ve heard a lot of people say that where they felt like that CS degree was a little bit of a bubble. They learned the theoretical stuff. It wasn’t very practical and they’re kind of thrown in the middle of the ocean and kind of expected to swim when they have their first job. How did you deal with that transition?
[00:10:22] MN: So I was lucky enough to go to a school that had internships or as we call them co-ops. I actually had a real job, real in quotes, but I was getting paid every four months after your first year. And that was a wake-up call for me, wake up because you’re given a code base and you’re given a set of tasks and you have no idea how to do it. And what really helped me was my first boss ever was a woman engineer. And I think that was momentous in my career to have a woman who was really great at her job, being able to guide me through it. So what helped me was knowing that I was in a safe place where I could ask these questions and having her pair with me. And pair programming is invaluable, but it’s also really hard when you go into an industry and nobody looks like you and you might not feel comfortable pairing with another person who might not be a woman or who might not be a person of color.
[00:11:23] SY: Tell me about how you got that first job out of school.
[00:11:26] MN: At Microsoft was my first job out of school. The way I got it was through a career fair, but it wasn’t even a career fair at my school. It was a career fair at another school where I happened to be doing an internship at the time.
[00:11:40] SY: Oh, interesting.
[00:11:41] MN: I know. It’s basically I gate-crashed a career fair.
[00:11:47] SY: Good for you.
[00:11:48] MN: I thought it was a good idea because the big five didn’t come to my school. They only went to, I believe, two schools in Canada. One of them was the University of Waterloo and the other one was British Columbia. And I happened to be at BlackBerry and people laughed. They’re like, “You were an intern at BlackBerry?” I was like, “This was before the iPhone. It was cool.” So I went to the recruiter and I presented my resume and it went into this huge stack of where they took all the Waterloo graduates resumes and I got a call. But going through that process of interviewing is another wring, it was a huge process. I think I did a total of 16 interviews before I finally got a job at Microsoft.
[00:12:31] SY: Wait, 16 interviews for that one position?
[00:12:33] MN: Sixteen interviews for two different positions.
[00:12:36] SY: Wow! That’s a lot of interviews.
[00:12:38] MN: It was a lot of interviews and it took about a month before I got an actual offer.
[00:12:44] SY: How was that for you?
[00:12:45] MN: The 16 interviews was, to be honest, incredibly annoying because you’re being moved back and forth between Canada and Redmond going for these interviews and not knowing what’s going to happen. You arrive on Redmond campus and you don’t even know what team that you’re going to interview for. You just show up and they’re just like, “Well, these are the teams that have open positions for people coming out of college.”
[00:13:09] SY: Interesting.
[00:13:10] MN: It made me feel powerless, but however, being able to get through those many interviews with my head up, felt amazing because I had never been more challenged in my life, but also allowed me to reflect that now I’m in a position where we can think about the way we interview people. How can we make that experience better? How can we make sure that when new hires are coming into a company for the first time feel better prepared? And we’ve made some strides there, especially on the program manager side at Microsoft, specifically in the developer division, where I work on how we make a more inclusive interview loop.
[00:13:53] SY: So what was that first job that you ended up getting a Microsoft? What was the title?
[00:13:57] MN: It was the developer evangelist role.
[00:14:01] SY: Ooh, tell us about that role. What did you do?
[00:14:03] MN: In that role, I was responsible for getting net new developers excited about Microsoft. And maybe I should explain what net new means.
[00:14:12] SY: Yes, please.
[00:14:13] MN: So net new is a term that we use probably in almost every company to describe the target demographic that we haven’t reached yet. So in our case, it was people who are using AWS and maybe they’d be interested in Azure or people who are using Java and might be interested in C# and .NET. So I was responsible for figuring out that entire strategy, and this was across startups and students. And I have to say it gave me profound empathy on how people who are not used to using our products every single day are thinking about it.
[00:14:52] SY: What did you learn?
[00:14:53] MN: So I learned, first of all, our products are the best to acquire and that’s like a pain that I have my entire engineering team thinking about now is going through the customer pain. So I’ll give you an example of getting started with Azure a few years ago. You’d go through the portal and let’s say you wanted to just put together an API that called some sort of cognitive services, finding out where to find that cognitive services endpoint was impossible. It took someone, I think, 20 minutes to find it. And if you think about from a developer’s experience, just from a human being’s experience, so someone who’s paying you money to use your stuff, it should be a lot easier.
[00:15:39] SY: Yes.
[00:15:39] MN: I should be able to do one click and it is there and I’m up and running within minutes. And that’s what I’ve driven my entire career route is how do I make sure that getting started experience is as easy possible.
[MUSIC BREAK]
[AD]
[00:16:12] Explore the Mysteries of the Pythonic Temple, the OSS ElePHPant, and The Flame of Open Source all while learning the tools of software development with TwilioQuest. Become an operator, save the cloud. Download and play TwilioQuest for free at twilio.com/quest.
[00:16:30] It’s hard to believe that JavaScript is 25 years old this month. Why not celebrate the occasion by sharpening your JavaScript skills? Pluralsight is making five of its expert-led JavaScript courses free each week in December. So you can learn something new, whether you’re a beginner or advanced. That means you could theoretically take 25 free courses before the start of 2021. If you’re wanting to do a frenzied movie montage thing where you transform your entire life in the time it takes to play a shortened version of Eye of the Tiger, or you could just have a pleasant time learning something new and start next year with Gusto. Go to javascript.com to get access to some really helpful JavaScript resources and start building new skills for free.
[AD ENDS]
[00:17:20] SY: You are a senior program manager for .NET. Let’s start by explaining what .NET is.
[00:17:27] MN: If you go onto our marketing website, it says, “.NET is an open source platform where you can build anything.” And I feel like that doesn’t explain it enough. Yes, with .NET, you can build a multitude of apps, but what .NET more than anything is, it’s an ecosystem, right? It’s an ecosystem that exists of several different programming languages, which are C#, F# and VB, Visual Basic, and consists of a web framework called ASP.NET. So for those of you who are listening, it’s like using React or Ruby or like all those other frameworks that you love. And with those tools, you can build a mobile application. You can build a game. You can build a Docker files, like you can do anything. Right? So from microservices all the way to gaming, the .NET ecosystem supports you through that process.
[00:18:17] SY: So why would I use .NET compared to some of the other things you mentioned, React, Ruby on Rails, Django? What’s the benefit of using .NET?
[00:18:26] MN: So the benefit of using .NET, oh, that’s a difficult question. I don’t make it sound like, “Oh, .NET is better than React.” Right?
[00:18:35] SY: Right. Right. Right.
[00:18:36] MN: But the benefit of using .NET is that it’s the flexibility of its backend services. So for example, if you are excited and you love React, you can use React on your front side, on the client site for anything you want. But if you wanted to take advantage of the memory management and the ability to handle much larger compute, you can use .NET for all your backend services. So one of the things that .NET has done very well, and there are a number of other ecosystems that have done the same, is the ability to scale to millions. So if you are starting up your small business and it might scale to a multi-million-dollar empire, which I really hope happens to somebody who’s listening to this, .NET can let you scale to that group of customers without having to change to a different framework.
[00:19:29] SY: Right.
[00:19:29] MN: That’s what I think the beauty of .NET is because it was built for enterprise. So we understand enterprise incredibly well. We have companies such as Disney and Walmart and so many others that rely on .NET to scale, but we’re also reflecting on how we can be useful to somebody who is a smaller business or a first time developer who might scale to a multi-billion-dollar company one day. So I think that’s the benefit of .NET is the ability to scale over time.
[00:19:58] SY: So what is the learning curve on it? Because when you were talking about being able to scale and it being built for enterprise, enterprise is usually synonymous with being bulky or too many features, kind of intimidating to get started. So what does the learning curve for .NET?
[00:20:14] MN: So the learning curve, and I’m going to be very honest with you because you and I are friends, the learning curve for .NET is pretty steep. Right?
[00:20:21] SY: Okay.
[00:20:21] MN: Because if you built an ASP.NET application today, the number of files it should find in our file new template is massive. However, on the plus side, I have been brought in as a new person who owns a whole of ASP.NET to figure out the simplification strategy for that. So what that means is I want to improve the learning curve because I am very well aware that it is huge right now. This also stems back to the first product I ever built at Microsoft, which was my idea. I’d like to say I am the inventor of it, which was, “Try .NET,” which is now called .NET Interactive. And where that came from was I was writing a paper for Julia, who is our corporate vice-president, who said, “Maria, go figure out how to get the next generation of developers excited about .NET.” And I wrote about the learning curves and the bulkiness and how massive our documentation is and the assumption of knowledge. But the biggest thing that I noticed is that .NET is the only platform, right? Where if you go online three years ago, there was no online experience. So it was just like, “Hey, do you want to learn .NET? Install Visual Studio. Download the .NET SDK.” And then maybe two hours later you’ll be successful. So what I suggested is that we have an online experience, so we can actually write C# code in the browser. And that was insanely successful. Our customer satisfaction on documentation that had that went up by 20%. So we went from like 60 to 80 percent. So I proved that we need to meet developers online. We had the data to show it. And the next phase is like, “How do we make sure when they transition to an editor of their choice that it is useful, that it feels like something you’d do in React or something you’d do in Ruby or something that you would do in Python?” Which are all languages I love. And I think they’ve catered really, really well to the first time developers experience.
[00:22:27] SY: So even with all of these improvements, these changes, lowering the learning curve a bit, what are some reasons where .NET just may not be the right framework?
[00:22:37] MN: I knew you were going to do this to me. One of the reasons where .NET would not be the right framework for you, and I hope this doesn’t get me into trouble, is if you are building your first website, let’s say you’re just building a website to do an about-me page, .NET is not for you. Right? I think you can do all of that with HTML, JavaScript, and CSS without even needing any other framework. Yes. I want to say I don’t think you’d need React for that level of simplicity as you explore. But if you are looking to build an application that allows you to do some sort of crud, .NET might be the place for you. Fair question. Thank you for putting me on the spot because I need to think about things like that in my new job. Right? So is .NET the place for the first-time developer? I hope so. And I will work very hard to make sure that we do create experiences like that for them.
[00:23:35] SY: So what does it feel like to own all of .NET? I mean, that just sounds massive and just so huge and I know this is a relatively new role for you. I think this is just two months, is that right, that you’ve been in this position?
[00:23:45] MN: Yeah.
[00:23:47] SY: What has it been like?
[00:23:48] MN: It has been one of the scariest things that I’ve ever done in my career. It has felt like a reset. Because I own ASP.NET, which is one of the biggest things to own at Microsoft. And it has, I believe 25 years of it that I’ve inherited.
[00:24:08] SY: Wow!
[00:24:09] MN: So it’s been humbling more than anything. It’s been intimidating, but however, I also see this as an opportunity because I’ve looked at all the areas where we’ve shined and realize that we’ve got to about 80%. So I want to take us to a hundred percent. So what I’m focusing on for the next year is getting that 20% over about I want to say nine different templates and platforms. It’s pretty scary. Right?
[00:24:42] SY: Uh-hmm.
[00:24:43] MN: And millions of developers. So I’ve gone from .NET Interactive, which was my brain child, my baby, which we would get maybe like 5,000, 6,000 active developers a month. And you’re just like, “Yay! We’ve made it!” To looking at the numbers of. ASP.NET and they’re just like, “Oh yeah, we have two million active developers a month.” And you’re just like, “What?” They are two million people who depend on me and my decisions to be successful for literally their businesses. So I talked to a company last week and we had to figure out how to modernize some of the applications to ASP.NET Core. And I realized they’re a business of 700 people, 700 people who have built their entire stack, who have made their entire revenue on something I own now and how I’m responsible for them as well and their customers.
[00:25:37] SY: How are you managing all the emotions that come with that? I mean, there’s the excitement of owning something so huge. There’s, I assume, the nervousness of hoping you do a good job, the weight, the responsibility of serving all your customers, how do you manage and balance all those emotions?
[00:25:54] MN: Well, it hasn’t been easy. But I realized that it takes a group of people to build something good and not an individual. So what I decided to do was I created an ASP.NET council internally. That includes two people and my boss who had been working on this for years. So one of them is David Fowler, and David Fowler is the architect for all of ASP.NET. So we meet every two weeks to break down what we need to do. So I think leaning on others who have the wealth of knowledge has been incredibly beneficial to how I’m coping with how huge this is, also breaking this down into individual items. So like I split it into work streams of what we need to accomplish and different themes. So I’m just like, “Okay, these are the bedrock themes. So these are the things that we have to change. Otherwise, they affect customers.” And those are things that I worry about every single day, but I do them in small bursts of panic, which is every single day I meet with the lead dev and I’m just like, “Okay, what fires do we have to extinguish today?” And we address those. And that has been really beneficial, just looking at everything and understanding that it’s more than just me. Yes. I drive the vision, but I think about three other PMs that I work with who own different, smaller bits of ASP.NET, the council, who are the people who have been working on this for over 10 years and then as well as my engineering team. Working as a group has been relatively good for me over the past two months. Now is it working? I don’t know, but I really hope that I will continue to adjust how I am taking on this emotional, I don’t want to say burden, but this emotional responsibility is the best way of being accountable for the platform internally and externally to Microsoft.
[00:28:07] SY: Coming up next, Maria talks about what she does as senior program manager for .NET and how she bears the responsibility and stress of overseeing the whole program after this.
[MUSIC BREAK]
[AD]
[00:28:28] Who doesn’t want their React app to make it to the top five? Built for virality with Apache Cassandra and Netlify, battle tested for scaling data and deploying with speed. If you missed the React with Cassandra Dev Day half-day event with Honeycomb’s CTO Charity Majors, Netlify Cofounder and CEO, Matt Biilmann, and Retro Game Builder Ania Kubów showcase what it takes, you can still watch these sessions on demand at events.datastax.com/reactwithcassandra.
[00:28:58] Linode has data centers around the world with the same simple and consistent pricing, regardless of location. Choose the data center nearest to you. You also receive 24/7, 365 human support with no tears or handoffs, regardless of your plan size. You can choose shared and dedicated compute instances or you can use your $100 in credit on S3-compatible Object Storage, manage Kubernetes, and more. If it runs on Linux, it runs on Linode. Visit linode.com/codenewbie and click on the “Create Free Account” button to get started.
[AD ENDS]
[00:29:40] SY: I want to dig into the title of program manager a bit, because at least in other industries, a program manager isn’t usually seen as a technical role. It’s usually kind of someone to like a project manager versus something like a product manager, which is seen as a more technical role. So when we talk about having program managers at Microsoft, what exactly does that mean?
[00:30:02] MN: So a program manager at Microsoft is exactly a product manager at other companies.
[00:30:07] SY: Okay.
[00:30:07] MN: It’s just that Microsoft was the first. I don’t think a lot of people know this, but Microsoft was the first company to have program managers who were engineers, who are responsible for the vision of everything, because the devs work on the individual pieces that make everything run. Program managers need to figure out the overarching vision. So. I’m responsible for where ASP.NET and .NET Interactive are 10 years from now and I’m also responsible on how all our partner companies across Microsoft are working and using ASP.NET and making sure that I’m plugging in with them. So from the moment you join a tech company as a program manager or a product manager, you are in a leadership position just without the engineering reports to you. So that’s the difference. So project manager is basically someone who manages the timelines, I believe. Right? So you’re just making sure everything goes.
[00:31:09] SY: Right. Right.
[00:31:10] MN: A program manager and a product manager, you’re responsible for the vision and you have to understand the tech because I could go and say, “I want to put ASP.NET on a rover at SpaceX.” And without understanding the tech that goes in there, that’s a whole bunch of garbage. Am I allowed to say that?
[00:31:32] SY: Sure. Sure. Yeah. I can imagine you do a very good job if you didn’t understand how things actually worked as a program manager.
[00:31:41] MN: You’re also responsible for always knowing the latest tech. So you could get an email from a CVP who’s like, “Tell me about GraphQL.” You’re just like, “Oh, okay.” I have two days to figure out our entire strategy for GraphQL.
[00:31:59] SY: And CVP meaning Corporate Vice-President, right?
[00:32:02] MN: Yes.
[00:32:03] SY: So what is your day-to-day look like? It sounds like you’re not totally in the weeds, so you’re not literally coding and building features on a day-to-day version. So when you talk about the vision and the tenure picture and how developers are going to use it in the future, what does that mean for your day-to-day today?
[00:32:20] MN: So my day-to-day is a lot of meetings, which is exciting, and I say that with a sarcastic smile, but it’s a lot of meetings. More than anything, you are meeting with collaborative teams every single day. And the reason why that’s important is you don’t want us to work in silos. But the most exciting thing about my job that I love the most is the user research that we do. So everything within dev-div, the developer division, where I work, which owns .NET, Visual Studio and Visual Studio Code, as well as all languages, is we are very customer driven. So I am talking to customers constantly about their experiences, what is missing and where we can improve. And when you begin to have all those conversations over and over and over again, you begin to build up the vision because customers begin to give you tiny hints of where you should be going without knowing what they actually want. I know it sounds manipulative, but it’s not. It’s a therapy that I feel like it’s therapy for both us and the customers that we’re talking to, like them, knowing that we understand them and we’re listening to them and we’re not doing what we did before. So software in the past, you would sit down for a year, work as a team and then announce it to the world and the world’s like, “Well, I bet we have to accept that Windows Vista is a thing.” So it’s a lot of that. So customer development, writing a lot of papers, meeting with a lot of teams, that’s a huge part of being a PM. And then also sometimes writing code, which is always the exciting stuff, because devs will send me PRs to review. And it’s funny how much that makes me smile. When they send me PRs and then I get to critique it, it’s the best thing ever.
[00:34:19] SY: Is it fun?
[00:34:20] MN: Yeah.
[00:34:22] SY: So I want to hear a little bit more about .NET Interactive, which is the thing that you invented and it was Try .NET, as you mentioned earlier, when it first started. Tell me a little bit more about what people can do with .NET Interactive. Because it sounds like a really great way for a lot of the people listening to give .NET a try and kind of test things out. What kinds of things can I do with that?
[00:34:43] MN: .NET Interactive, also known as Try .NET as I mentioned earlier, was something that was born out of a paper. And the things that you can do with it is, one, you can actually use Try .NET to embed interactive coding experiences into your website with an iframe. Right? So if you wanted to write a tutorial, Saron, that happens to use C# and you posted it on your blog using Try .NET/.NET Interactive, I know it gets a little bit confusing because both names still exist.
[00:35:15] SY: Okay.
[00:35:15] MN: You can actually embed it with an iframe that allows people to write code on your website without any additional cost to you, which I love. That was a brainchild. The other thing that we’ve done with .NET Interactive is provide data science tooling for .NET developers. So when you think about data science, Saron, you probably are never thinking about .NET, right?
[00:35:37] SY: Yeah. No. Sorry.
[00:35:39] MN: No. Right? You’re thinking about Python maybe, right?
[00:35:41] SY: Right. Yes. Exactly. Yeah.
[00:35:43] MN: So what we did was, a year ago, my manager called me up. He said, “Okay, you need to figure out data science tooling for .NET developers.” And I was like, “Yeah, that’s going to be great.” So we built a .NET kernel. Right? And what I love about our .NET kernel is that we had to also accept that Python and JavaScript have these amazing sets of libraries for data science tooling, and we needed to be able to tap into that. So we introduced a concept of a multi-language notebook, which means that you can write multiple languages all working together in a single Jupyter notebook. So an example would be, you can do that in Python, but let’s say you’re more familiar with PowerShell, which is a scripting language that we have within Microsoft. You can do that in PowerShell. If you wanted to munch the data and manipulate the data, you can do that in C# in another cell. If you wanted to plot the data, you could do it in JavaScript in another cell. And the beauty of that is that it allows for you to share a variable across different languages within the same notebook.
[00:36:57] SY: Yeah. Yeah. Yeah.
[00:36:57] MN: I am so excited about that. It’s probably been one of my favorite things to work on with .NET Interactive. And the other thing that we’ve done is the ability to write code snippets within Microsoft teams. And we announced that at Microsoft Build Conference, which is the equivalent of Google I/O for us, where we had a demo where my former boss, Scott Hanselman, was writing C# code in teams and executing it right within teams. So he didn’t have to have VS Code open. He didn’t need to open up CodePen. He didn’t need to do a live share with somebody. They were working on a snippet of code within teams, like it was a conversation and it was executing.
[00:37:41] SY: Wow!
[00:37:42] MN: So if you think of any other cool ways you want to use .NET Interactive, let me know because we’re pretty flexible. The whole point is to embed .NET code into any experience that you would like. We want to continue to push it as far as we possibly can.
[00:38:00] SY: So you mentioned that the idea for Try .NET came about from a paper. Can you tell me a little bit more about that? Is that a normal way that ideas come to life at Microsoft is through papers?
[00:38:12] MN: Well, it’s how I do it because what happened was my Corporate Vice-President, Julia, as I mentioned earlier, said, “Hey, we need you to figure out why the next generation of developers, millennials, you and I, are not excited about Microsoft offerings.” So I did about five months of research of talking to developers, talking to consulting firms, talking to people, hiring new devs for the first time, talking to people like Ari over at Flatiron School and what we would expect and I put together a proposal of how should we think about Microsoft developer tools and documentation, and that’s where Try .NET came out of. I think it’s a great way to pitch your product because as devs, we have a horrible, horrible habit of never writing things down. I don’t know if you do this, but…
[00:39:09] SY: Terrible job. Yeah.
[00:39:10] MN: It’s terrible, right?
[00:39:11] SY: Yeah.
[00:39:11] MN: Like it’s terrible. Like I’m seeing changes in my products right now and I’m just like, “Who thought about this?” Oh, we had a talk in 2003 and I was like, “Nice!” Right? So I think it’s a good way for people to think about building products is like start from a paper. Right?
[00:39:27] SY: Right.
[00:39:27] MN: Figure out why you want to do this. Go and do your customer research and development, have a hypothesis of why, what you’re building is going to be relevant and use that to drive developer and design decisions.
[00:39:47] SY: So now at the end of every episode, we ask our guests to fill in the blanks of some very important questions. Maria, are you ready to fill in the blanks?
[00:39:54] MN: I am.
[00:39:55] SY: Number one, worst advice I’ve ever received is?
[00:39:59] MN: Attaching myself to somebody else’s success.
[00:40:02] SY: Ooh. Tell me about that.
[00:40:04] MN: Well, there is this myth when you join any workforce, is that you attach yourself to someone who is going to take you all the way.
[00:40:12] SY: Yes. I’ve heard of that.
[00:40:14] MN: And what we forget to say is that this individual is an independent person and they might move on. They might even move on outside the company and they might not be able to take you with them.
[00:40:25] SY: Yes, because I’ve definitely heard of that strategy. How did they put it, like hitching your wagon to a horse? I don’t know if I made that up, but I’ve heard of that idea and it seems like a very logical strategy until you apply it to the tech world where everyone jumps around in different jobs every two years and you can’t really attach yourself to anyone. So yeah, I like that. That’s a good one. Number two, best advice I’ve ever received is?
[00:40:52] MN: Take a moment for yourself every single day.
[00:40:55] SY: Ooh, I like that. How do you do that? How do you take a moment?
[00:40:58] MN: So I have a very analytical way of doing it where Cortana actually sets aside 30 minutes every single day for me to do stuff and just reflect.
[00:41:09] SY: And tell us what Cortana is.
[00:41:11] MN: Oh, so Cortana is Microsoft Siri. That’s the best way to describe her.
[00:41:16] SY: And do you do that just in silence? Do you write that down or what does it mean for you to reflect?
[00:41:22] MN: So I do it by writing things down.
[00:41:25] SY: Number three, my first coding project was about?
[00:41:29] MN: I built a Destiny’s Child website.
[00:41:32] SY: Yes! That is my favorite answer to this question. Oh my goodness! So you built like a fan page? Is that what it looked like?
[00:41:38] MN: I built a fan page using pure HTML and adding the worst images with the worst resolution ever.
[00:41:50] SY: Is it still up anywhere? Do you know?
[00:41:52] MN: No, it’s probably not up anywhere.
[00:41:54] SY: Yeah. That’s awesome. Number four, one thing I wish I knew when I first started to code is?
[00:42:02] MN: Working in groups is okay.
[00:42:04] SY: Oh, interesting. Tell me about that.
[00:42:05] MN: So when I first started learning how to code, being traditionally from a computer science background, you are taught to work on your own. Otherwise, it’s seen as plagiarism.
[00:42:16] SY: Oh, wow!
[00:42:16] MN: So when you joined the industry, you don’t feel as comfortable reaching out to a peer or a manager to code with you. And I feel like you miss out on so many great techniques and tools that you could learn from somebody.
[00:42:30] SY: When did that change in perspective come for you? At what point did you realize, “Oh, it’s actually a good thing to work with others”?
[00:42:36] MN: Four years into my career, right?
[00:42:39] SY: Oh, that’s a while.
[00:42:40] MN: Yeah. It took a while. And I think it’s because being an advocate still had that kind of school thing because you’re working on your own target demographic and nobody else is working on it with you. When I was an advocate, it’s changed since then. And then when I joined a product team working in dev-div, people are like, “Okay, do you want a pair?” And you’re just like, “What?” So like getting into that comfort level and I’ve seen how it allows for developers to feel more comfortable for them to grow their tech skills and also it builds a relationship, a good working relationship within the team itself.
[00:43:19] SY: Yup. Makes sense. Well, thank you so much for joining us, Maria.
[00:43:22] MN: Thank you so much for having me, Saron.
[00:43:31] SY: This show is produced and mixed by Levi Sharpe. You can reach out to us on Twitter at CodeNewbies or send me an email, hello@codenewbie.org. Join us for our weekly Twitter chats. We’ve got our Wednesday chats at 9 P.M. Eastern Time and our weekly coding check-in every Sunday at 2 P.M. Eastern Time. For more info on the podcast, check out www.codenewbie.org/podcast. Thanks for listening. See you next week.