The Modern .NET Show

Episode 121 - A .NET Discussion with Isaac Levin

Embedded Player

Episode 121 - A .NET Discussion with Isaac Levin
The .NET Core Podcast

Episode 121 - A .NET Discussion with Isaac Levin

Supporting The Show

If this episode was interesting or useful to you, please consider supporting the show with one of the above options.

Episode Summary

We recently interviewed Isaac Levin, a .NET Developer Advocate at AWS (Amazon Web Services). Isaac has been a .NET developer since 2010 and offered some interesting insights into the world of technology.

Isaac discussed the need for developers to focus on the business value they can bring through technology, rather than the technical details. He highlighted the importance of having a team of developers with different levels of skill and experience in order to work together effectively. Isaac also stressed the need to use existing tools and libraries rather than trying to build everything from scratch.

The conversation moved on to the importance of open source contribution and the need for companies to support open source projects. Isaac spoke of the importance of being thankful and appreciative, reporting bugs, writing documentation, or donating money to support open source projects. He also mentioned the story of left-pad, which is an example of how a developer’s choice can have a huge impact on many people.

Isaac discussed his role as a developer advocate, talking about how he helps to filter noise and be a conduit between customers, the business, and the product group. He also discussed the need for technology to be more navigable and how developer advocacy can be a routing mechanism to help customers get answers.

Overall, the conversation between Jamie and Isaac offered a lot of valuable advice and insights into the world of technology. They discussed the need to focus on business value and the importance of using existing tools and libraries. They also discussed the need for companies to support open source projects, as well as the need for technology to be more navigable. Finally, they highlighted the importance of having a designated person or team to keep up to date with technology decisions.

Episode Transcription

Hello everyone and welcome to THE .NET Core Podcast. An award-winning podcast where we reach into the core of the .NET technology stack and, with the help of the .NET community, present you with the information that you need in order to grok the many moving parts of one of the biggest cross-platform, multi-application frameworks on the planet.

I am your host, Jamie “GaProgMan” Taylor. In this episode, I talked with Isaac Levin about a whole bunch of different things. We talked about .NET, about developer advocacy, about developers who don’t have the time or want to make development into a hobby, and open source and how we all need to figure out a way to support it.

Along the way we had a very important and interesting discussion on representation in technology. It echoed a lot of what was said in the cybersecurity roundtable episode from a few months back, actually. Interestingly, when we recorded this episode the roundtable episode had yet to be released, so Isaac hadn’t heard it. So I’m really happy that Isaac wanted to talk about representation without having had any prompting from me.

I’m incredibly interested in hearing your opinions on what we talked about in this episode, too. So why not reach out over on our discord server and join the conversation?

Anyway, let’s sit back, open up a terminal, type in dotnet new podcast and let the show begin.

Jamie

So, Isaac, my goodness, it’s wonderful to be connected with you and on the show with you today. Thank you and welcome to the show.

Isaac

Well, thank you so much for having me, Jamie. I’m looking forward to the conversation.

Jamie

I am too. It’s always wonderful to be connected to different people when doing this, and that’s why I do this, because I’m learning as much as maybe people who are listening are learning, right? So I’m like five minutes ahead of the people who are who are listening in. So, you know, I get a ton of value out of these, and I hope that everybody else listening does too. So that’s my goal anyway.

Isaac

Yeah, I think that’s the nature of learning, right, where all you have to be is one step ahead of the person you’re teaching. Right?

Jamie

That’s exactly it. That’s exactly it. Cool.

Okay, so I wonder, would you mind starting us off with a little bit of a background information about Isaac? What he does, where he works, that kind of thing, the kinds of development stuff that he’s interested in.

Isaac

Sure. Yeah. So I’m Isaac Levin. I’m currently a developer advocate, a .NET developer advocate at AWS, Amazon Web Services. I’ve been a .NET developer my entire professional career. Like, my first job out of college was working on Classic ASP and also building WCF web services, so I’ve been at it for a bit. Yeah, I think a lot of folks probably know me in the .NET space. In general, I’m pretty active on .NET, Twitter, .NET social media. I’ve kind of worn a bunch of different hats in my career. I’ve been a backend like web developer. I’ve been a consultant in the .NET space. I made a jaunt over into product marketing, where I did some pretty interesting stuff. And now this is my foray into developer advocacy, which has been exciting.

Jamie

Cool. I’m always interested to find out more about developer advocacy. My friend Jay Miller, he calls himself a dev avocado. And I’m always asking, “what’s that like, then?” And he’s like, “I can’t tell you.” But I think that’s more he’s just messing with me.

Isaac

Yeah, I know Jay as well. Jay is a great guy. Like, definitely. He knows more about developer advocacy than I do, and if he knows nothing, then I think we’re all in trouble.

Jamie

I don’t think it’s that he doesn’t know anything. He’s messing with me, pretending like it’s some kind of big secret.

Excellent. Okay, so you mentioned that you’ve been working with net for a long time. Are we talking back in the 1.0 days?

Isaac

No, I’m not that old, even though I might look like it on TV.

So I graduated college in 2010. So when I was in college, I believe we were on like I was doing .NET in college, which is pretty surprising for a lot of folks to hear. I think it was I have to look at the years of when .NET was released, but it was the 2.0/3.0 time frame. So I’ve been a -.NET framework that is, I guess - after the beauty of generics being released, I never had to live in a world where I had .NET without generics. So, yeah, I think and I’ve been working on .NET framework all the way up to modern .NET, .NET 7. You know, I haven’t made it like a foray into any other major programming language other than the occasional I need to build something in Node, or I need to build something in JavaScript, or I need to build something in Python. Primarily, my job throughout my entire fresher career has been .NET.

Jamie

Cool. I feel like we’re of a similar vintage, although you’re looking way more fresh faced than I am because I’m looking like an old man, but that’s fine.

Isaac

Well, there’s a reason why I shaved my head, right? I shaved my head because there’s no hair on top.

Jamie

Nobody wants that Crusty the Clown look, right?

Isaac

That’s true. It might very much looks like Crusty the Clown. Or if you’re from the US. And you’re familiar with The Three Stooges, which is a comedy troupe from a long time ago. Larry is the gentleman with the crazy hair, and he doesn’t have much on top.

Jamie

Yeah, we’re from similar vintages. I graduated from university in 2008, and we were using .NET too. Similarly with my comp side degree, it was .NET all the way through. Okay, so we did one section on Prolog - so a semester on Prolog - and two semesters on C++. But everything else was .NET and C#. I was like, “this is pretty cool, I can get behind this C# stuff. It’s really nice.”

Isaac

Do you have a proper comp side degree or do you have what I have? I have an IS or an Information systems degree.

Jamie

Yeah, mine is CompSci Games development.

Isaac

That’s pretty impressive. I think most university professors are crusty and want to teach everybody how to mess with pipes and weird things and C. Right? I mean, pretty forward thinking to want to use modern development technologies. That’s pretty cool.

Jamie

Yeah, I think it was primarily for that reason, right? Because at least on my comp side degree, they were teaching us the background behind the algorithms and stuff. And if you’re spending three or four days just implementing the base bit of your app to be able to plug your algorithm in, which you would do in C o C++, if you’re new to the language, then that’s going to slow you down. You’re going to be less effective, I suppose, with your learning. And so I think their decision was; because I think the cohort before me was Java, and that’s totally fine, too.

And the idea is, “we give you this modern language, this modern framework, that you can almost do almost nothing, and there’s an application there ready for you.” Which means you’re more able to leap straight into the implementing bubble, sort implementing writing to disk and things like that. And then when you get your head around how they work, you can then push them to the side like you do with the framework. You say to .NET, you say, “open an HttpClient and get this resource.” I don’t have to worry about opening a socket and preparing buffers and sending it all down the pipe because that bits done for me. And so I think that’s why they focused in that way.

Isaac

I don’t know, I mean, it makes a lot of sense. I think if you talk to people of our vintage, a lot of people had to build program ATMs in C. That was an assignment that I had to do when I was in college, or not use Visual Studio. That was a thing. I had a professor that wanted all the code in notepad, basically. I don’t know what professors are like now. I’m hoping they’re probably a bit more progressive. But I was originally CompSci, and for a lot of reasons, I just kind of fell out of love with the idea that in order for you to be successful with computers, is you had to know Big O notation and you had to learn how to solve all these problems that, in my opinion, have already been kind of solved by frameworks. Right?

Let me focus on the business problems and that’s kind of why I gravitated towards mis, which is management information, which is a business degree at my university. So that very much made sense to me. Like, “how do I solve this business problem using technology?” Not, “how do I rearrange bits to make something work?” Which, I mean, is still pretty interesting, but I don’t know how many people actually do that versus just solve business problems in the real world.

Jamie

Sure, I absolutely agree. There’s two points that you raised there, and I’m going to come back to the main point there about “why do we need to learn…” or rather, “do we really need to learn Big O notation to solve the business problems?” and things like that. But the point that you made there about everything being done on the command line, that brought back some real memories because my CS 101 lecturer was Rob Miles, who seems to be world famous as like, an MVP. And he would stand there at the podium with his laptop and bring up a command line and just type in notepad source.cs and that brought up a notepad with a source file that he would type into. And then you go back to the command line, do csc, which is the C# compiler that shipped with Windows, source.cs, and it would run his application, which worked for him. And that was brilliant.

And when somebody asked him, “why don’t you use Visual Studio?” He said, “I’m teaching you programming. I’m not teaching you how to use Visual Studio. You can use Visual Studio if you want.”

Isaac

Sure,

Jamie

“That’s totally fine. I’m not going to stop you from doing that for the course work and for the assignments and stuff.” But his thing was he didn’t want to stand there and get bogged down with problems with Visual Studio because maybe Visual Studio crashed or maybe it was hanging because some thread was running in the background or something like that. And legitimately, when he needed to debug - excuse me - when he needed to debug stuff, he would load up Visual Studio and use the rich debugging tools, and that would be fine.

And then he dropped back to Notepad to write the next bit, and that worked for him. And it kind of got me used to the CLI a little bit. And then that went away when I did Visual Studio for like ten years, and then .NET Core came out and I was like, “oh, cool, it’s the CLI again.”

Isaac

Yeah. And I don’t want to go into my tire rate on this, but I think that there is some interesting in showing how the things work, right? Like getting lower level, talking a little bit about the runtime, talking a little bit about the compiler. Those things are really important because at one point in your career, you’ll have to figure something out using that. But I mean, there are so many tools that are there to make the developer’s life better, right? And I often think, “what do my college professors know when they hear like, docker or kubernetes or these tools that completely abstract away all of these bits, the networking, the service discovery, all of those sort of things, right. What do they think about that? Do they think of it as like, do they embrace it? I’m always kind of curious about that because I think that there is value in learning lower level, but you don’t do all of your job lower level. You do your job 70 stories up with thousands of tools, right?

Jamie

Oh, totally. And I wonder whether - this was something we brought up on an episode of Tabs and Spaces recently. I say recently, I think it was like a year ago, where we talked about perhaps college professors, university lecturers should spend time in industry during, like during maybe a summer break or something. Just spend two weeks, go into industry, figure out what people are using, what kind of problems they’re solving.

And that gives them an idea of maybe we can change the way the syllabus is taught. Not the syllabus itself, not the curriculum itself, but to change the way it’s taught so that then, “yes, we can talk about networking, and we can talk about building your own TCP packets and stuff like that for five minutes. And then we can take a look at Kubernetes and Docker and Podman or whatever technology du jour you’re using,” and show you how to throw that together rather than focusing on here’s the bit that you will eventually need to know, but like you said, you eventually need to know it. But not right now. To solve that business problem, you don’t need to build your own house. You don’t need to build the manufacture the bricks yourself.

Right?

Isaac

This is true. Yeah. I think one of the things that’s very interesting about this discussion is that when we were in school 10-15 years ago, 20 years ago, there was only like r1 effective way to like, learn programming and that was good to go to university and buy the books and all that. Right?

Isaac

Now there are hundreds of outlets to learn technology. Right. You can do it all online. You can do code boot camps. You can obviously still go to university. I think over the course of time, higher education will need to adapt to the fact that, “do I really want to put myself in debt for four years to learn something that I could honestly learn on YouTube?” Right?

So I think that there is going to be something that happens and I don’t know how long it will take. But I’m very interested whenever I see the stack overflow surveys or any of those sort of developer surveys. That come out every year, like the segments like the younger segments of developers, like the 20 to 25 or the 25 to even 30. And how they learned how to be a technologist. And I’m seeing like the college slowly go down and like the online, you know, boot camp go up a little bit, eventually that’s going to they’re going to be equal or even one’s going to overtake the other. And it’ll be interesting to see how higher education adapts to that.

Jamie

Oh, totally. I think perhaps more vocational style of teaching with higher education is the way forward. Because there will always be a requirement for computer scientists. But computer scientists aren’t the people that are solving the business, everyday business line app problems like you and me are solving, right? They’re solving the, “how do we make the compiler faster? How do we make the transistors smaller? How do we make the operating system better?” They’re solving those problems.

You may be solving those problems too, but from my experience, I’m solving the, “how do I read data from a database, show it in a shiny graph, and then store it back into the database in that original format?” Right? That’s what I’m doing on a day to day basis. So from my point of view, it’s kind of like you said. It’s pointless knowing big old notation of how the data is, how long the data takes to load, because I’m happy with saying to Entity Framework or to Dapper or to whatever I’m using as my ORM, “hey, go load me this data and figure out the best way to do it, please.” And then it will then talk to the data store in its own language and figure it all out and then send it back. It would be great to know that stuff. But for solving the problem, “show me the thing.”

I don’t need to know it. Right?

Isaac

Oh, I totally agree. And I think that you probably have some you’ve had people on your show, definitely. And you have listeners that are very much just like, “Jamie. We need to know all the underlying things,” right? And that’s cool. If that’s your thing. If you’re very interested in learning how to do things at that particular level, that’s totally cool. But I think we make an assumption in technology that all of the problems are very, very hard to solve and you need to get as low down as possible, as quick. And I’m of the belief that most of the really difficult problems in tech have been solved, right? In five years, there’ll be new problems to get solved. But for the most part, when was the last time you had to write a sorting algorithm for your job? Right?

When was the last time you had to write a file and actually not use some extension on System.Io.File, right? Like, there’s still times where you need to do the, you know, unwrap the buffer and all those sort of things like we were talking about. But at the end of the day, why would you do that when you have something that people probably way smarter than you have optimized to heart’s content, right? Like, our Friends of the .NET team, their whole job is to make these things as efficient and as fast as possible for us, so it makes our job easier as developers.

Jamie

100%. It feels very much like everyone says, “never roll your own crypto,” for cryptographic and stuff. And if you want to do it for a research thing to figure out how it works, but never, ever do it for work. Because for the same reasons that you said, there people that are way smarter than you or I - definitely smarter than me. I’m not sure about you, but definitely smarter than me. These are PhDs, PhD people who study cryptographic stuff and extremely high level mathematics and physics to a level that would make most of us cry, with how complex it is, and they still get it wrong, right. So what’s the chances of a mere mortal like me getting it right? Not very high.

Isaac

And this kind of leads into one of the things I love talking with developers about regarding open source contribution, right?

Because people could reach out to me occasionally, and they’re like, “oh, I want to get started in tech or want to do this.” And I say, “well, we should look at open source, go look at some of the stuff on GitHub,” and they’ll send them to the .NET repo or something like that. And they get back. It’s like, “well, I can’t contribute to any of this. I don’t understand any of it.” And my response is always, “there are so many different ways that you can contribute and be a part of the conversation. You can write tests, you can write docs, you can open issues, you can whatever,” right? You don’t have to get down and then write code, because more than likely, there’s somebody way smarter than you already write in the code, right? And I think that’s what’s really important to call out is that you can be a meter mortal like you and I, right? And be effective in tech.

You don’t need to be some brilliant person who opens up a laptop and csc main.cs, and then they have a program, right? Like, those people are amazing, and they’re even better to watch and have conversations with. But at the end of the day, it’s really, really important to realize that you can be effective in a bunch of different ways, a bunch of different slices in tech, right? And that’s the biggest thing, because I think that at times we gatekeep how difficult it is to get into tech, right?

There is difficulty to get into tech, but I feel like in tech, we don’t do a great job of letting people know, like, hey, you can come in here and hang out and have fun. I think that’s definitely something that I would love to see change over the next few years.

Jamie

100% agree? Absolutely. I’m all for kicking gatekeepers out and just letting everybody in and just say, “look, this is how I do it. This person does it slightly differently. How do you do it? How do you want to do it? What do you want to do? Let’s figure it out together,” because that’s the only way we’ll grow as a community, right? And there’s something that my friend Zac said, and that was, “I don’t have to be the smartest developer in the room and so I don’t want to be the smartest developer in the room.” I really like that.

Isaac

Have you ever been the smartest developer in room? Because I have and it wasn’t a good thing. Like

Jamie

Yeah.

Isaac

I’ve been in situations where I was the smartest developer in a room. And in my end, I remember coming home and telling my my fiance at the time, who’s now my wife, like, it was my first day. And I realized pretty quickly that this job that I signed up for, it wasn’t going to be that great. And she’s like, well, what does that mean? I said, you don’t want someone like me being the person that people come to ask questions and them taking that as gospel, right, at least in tech, right?

And that’s not to disparage anybody that I worked with there or disparage me or anything. It’s just my point is that if you can immediately identify that you’re the smartest person in the room, there’s a problem. And I think that in general, we want to have people that can work well together, people that are inclusive and accessible to each other. And at the end of the day, like, being able to identify like, people’s level of skill is invaluable.

Jamie

Oh, absolutely. I fully agree with you on that. And the way that I see it is if I end up being the smartest person in the room, I try and find another room and bring some of those people with me, right? So I’m like, “hey, look,” like you said, “you don’t want to be listening to me because I have opinions, right? So let’s go and find someone who has way more experience, way more knowledge and we’ll learn together,” and that’s how that’s going to be. Especially if we can bring the people with us because then we’re helping everyone grow, right?

Isaac

Yeah, I totally agree. I mean, the goal should be that we’re always learning from each other, right? You kind of said at the beginning, the reason why you do this show is so you can learn from other people. I also have a podcast and the reason why I do Coffee & Open Source is solely selfishly for Isaac to try to adapt the bias that they have and become a better person because of it. Solely the whole reason.

Jamie

I love that, I absolutely do, because we always need more voices in every industry. And so, like I said about ditching the Gatekeepers, I actually ranted about this on a different podcast that I do, but I’ll link it in the show notes that people are interested. But ditching the gatekeepers because the worst sentence I’ve ever heard anyone say now that I’m being hyperbolic when I say this, but the worst sentence I’ve heard anyone say is, “you’re not a real X because you don’t Y.” Like, “you’re not a real Dev because you don’t write and C,” or, “you’re not a real guitar player because you don’t use a pick instead of finger picking,” or whatever. Right? And I hate that, I really do. I despise it because I’m like, hey, they are a real X regardless of whether they do Y or not. That’s just your opinion, dude.

Isaac

Yeah. And the sad thing is that that’s like in a very overt way of doing it, right. There is, however, a far more subtle way of doing that, right? And in my opinion, that’s worse when people are subtly saying you’re not X because of Y, right?

And this is going to sound very silly to white guys on a podcast talking about this, but if you ever talk to women in tech or people of color in tech and people come up to them and say like, “oh, you’re a developer?” or “oh, do you know somebody who’s more technical?” Like those sort of things? And it’s just like, all right, cool. This is the world that we live in, right? I think in general, if we can get folks like that, with mindsets like that, kind of they don’t need to leave, but they just need to go to the back of the room. They can contribute and they can be a part of it, but they need to be in the back of the room and they need to be hard to hear. I want the people that are allies, people that want to instil change in the front of the room the loudest so I can hear them better.

Jamie

Absolutely agree 100%. You’re getting a sneak peek as we’re recording this, Isaac, but the listeners will have already heard it. There is an episode coming out in February where I hosted a roundtable of cyber security experts.

Isaac

Oh, great.

Jamie

And I specifically wanted people who were not male and not white. I was like, “this is what I want.”

Isaac

That’s great.

Jamie

I want people who are, you know, because what I what I said to the folks when I was organizing it was, “there’s too many people in this industry who look like me. I want the voices of people who don’t look like me.” Right? And so we had a really long conversation, loads of information about cybersecurity, and two of the three people in that roundtable other than me got into cybersecurity in a non technical way as well. I was like, “let’s talk about that too,” because like you said about open source, you can get into it without actually needing to do anything development wise or technical wise. And so we got into that. And one of the most interesting to me and everyone will take different things from this conversation, but one of the most interesting things to me about that conversation was I was told, “hey, the best thing you can do is just get out of the way.”

Isaac

Yeah.

Jamie

I will openly admit that I hadn’t thought of that until that point. And I was like, “you know what? Yes, let’s do this. I don’t need to be part of a conversation that’s happening. I’ll happily stand back and let both the experts and the unrepresented experts say what they need to say, and I will learn what I need to learn from them.”

Isaac

Yeah, it’s hard, right? Because you feel like you want to help, right? Like, you want to say, like, “hey, everybody, look at this person.” Right? But that sometimes isn’t as helpful as just literally not saying anything, right? I’m all for like, if you have a huge platform and you have somewhat of notoriety yeah. Lift up people with you, like, that’s cool. But at the end of the day, you do need to sometimes just be quiet. I have a very hard time with that, to be honest. I need other people to know how awesome this person that I already know is awesome. Right. Instead of me broadcasting it out to the masses. Sometimes it’s just good to be quiet because whenever I talk, it just fills up air.

Jamie

Absolutely.

Isaac

Yes. All right. Should we talk about .NET now?

Jamie

Yeah, why not?

Isaac

Instead of all the things that are all the opportunities in tech, I guess you could say.

Jamie

I like that we went kind of deep on that. And like you said, it’s two white guys talking on a podcast. So maybe my opinion doesn’t matter and my opinion is nonsense, and that’s totally fine because I’m not one of those people that are affected by it. But hey, let’s just listen. Let’s just listen to what we need to do to help. But you’re right.

So, yeah, let’s talk a little bit about .NET then. Right? So we talked about how you’ve been working with .NET since around 2010, and you’ve done consultancy, you’ve done all sorts of different work, and now you’re a dev avocado. Would you prefer I call you a dev avocado or a dev advocate?

Isaac

So it’s funny because I had somebody on my podcast last week. We’re recording this on January 13, if people care. It was like, this person markets themselves as a developer avocado. And and I’m just like I don’t know what it means, but I think it’s really cool. And the emojis cute, so, like, I’m all for it. I mean, so I guess from my perspective, I don’t even think in this is probably going to be a spicy take, but I don’t think the phrase I don’t think that the title “developer advocate” really is correct. Honestly, do I know what the title should. Be? No, I just don’t think it’s correct because we do so much stuff that literally people wouldn’t think of.

Like, there’s this great infographic. I don’t know who originally created it, but I’ve seen a bunch of people share it where it’s like an iceberg, right? Developer Relations or developer Advocacy is like an iceberg. And you see the very tip of the iceberg, which is like speaking at events or creating content or whatever, and then you see all the stuff underneath the iceberg, and that stuff is the stuff that’s really important. The talking to the service groups, the engaging with the business, the figuring out programs to amplify the developer story. Right?

So those are all the things that are interesting. And I don’t know if the phrase “developer advocate” is the best title for it, to be honest. I think most titles in general are kind of misleading. But developer advocate, at least in my opinion, has like this connotation of like, oh, they just tweet a lot and they speak at conferences. Yeah, that’s part of my job, for sure, because it’s what I like to do. There’s other developer advocates that don’t like, at AWS, where I work, we have developer advocates that don’t speak at events and they don’t tweet a lot, but they do a ton of really important work for the business and speak on behalf of developers.

Jamie

Cool. You see, whilst I agree that developer advocate may not be the best title, way better than developer influencer, right?

Isaac

Yeah, I totally agree. I totally agree.

Jamie

What’s that like then? Being actually, before we touch on that, you mentioned AWS, right? A lot of people will know that obviously you can host your .NET apps on Azure and other providers are available. Right. That’s what we over here in the UK, if you’re on public broadcasting and you’re mentioning a specific service provider, you have to say, “other service providers are indeed available.”

Isaac

Sure.

Jamie

So, like, if I’m wanting to host the .NET app on AWS, like, can I do that? Right. That seems like a really silly question, but let’s start there.

Isaac

Yes, I mean, you would think it’s a silly question because we’re and this is not to disparage anybody by the statement you are paying attention. There are a lot of .NET developers that have different levels of attention. They’re paying to .NET, right?

You’ll be very, very surprised. Like, part of my job is I go and speak at events and I go work booths at events and I talk to the developers all the time. And you’ll be very surprised the amount of developers, one, that didn’t even know you can run .NET on Linux or Mac devices, and two, that there are other options other than Azure. Right.

I think that from my perspective, that’s just because some developers that are so busy with the work that they’re doing and they don’t like .NET as a hobby, so they don’t pay attention. They just do their .NET framework four five application and it’s forms over data or whatever it is, and they’re completely content and they haven’t been paying attention .NET in the last six years. .NET has been around, what, 22 something years? 22, 23 years. But modern .NET is only like six years old, right? So if you haven’t been paying attention for the last six years, or if you’ve been paying attention but not like really paying attention, the ability to run .NET literally anywhere, and that includes not just cloud providers that are built by Microsoft, right? You know, you know, you can run .NET on Raspberry Pi’s, you can run .NET on Samsung TVs, you can run .NET on AWS. And part of my job is to educate - educate is probably not the right word - is to inform folks and raise awareness that AWS is a great option to run .NET apps, right?

It’s not my business or it’s not my place to compare it to anything, but I think one of the big things is like when we have options, it only benefits us, right? Because if you only have one option, you’re kind of locked into an experience you might not like. And with AWS, there’s many, many ways to run .NET apps so we can talk about them if you like.

Jamie

Okay. I really liked what you said there about having many options increases our ability I’m paraphrasing what you said, increases our kind of like a force multiplier, I suppose. And you’re right, because if you have more options, you have a better chance of innovating and a better chance of doing whatever it is you need to do. And then I suppose and obviously you may not be able to answer for this, but from my perspective as an outsider, if AWS comes up with some great thing that exists, let’s say they create a thing called foo and it’s wonderful and everybody flocks to it. Well, that gives Microsoft the chance to create bar, which is like their version of foo, and then they can innovate on that, and then AWS can come along and innovate further. And it breeds that innovation, not just for us as the service users, but obviously for the people behind the scenes who are doing the Comp Sci stuff we talked about earlier on, where they’re gluing all the bits together, right?

Isaac

Yeah. I mean, it’s all about like, at the end of the day, as developers, our responsibility is to use leverage technology to bring business value, right? That’s our job, most people’s job, that’s the better way to say it. And if part of your job involves this particular thing, yeah, maybe you go down this path of choosing this particular option, but if that’s the only option that you have, it extremely limits your ability to bring business value. Right?

But one of the things I think is very, very clear to me, and I don’t know if a lot of your listeners will agree with this but cloud is a commodity in a lot of essences, right? Like, “oh, you want a VM, every cloud gives you a VM. Oh, you want a serverless offering, every cloud gives you a service offering.” They might not be the exact same experience, but at the end of the day, you need foo here, you have foo here, and so on and so forth. Where you really differentiate between your choices is how it lines up with your business values.

Like one huge positive or positive the right word. One huge feature. Or our value proposition of AWS, for instance, is that we follow this least privileged model for how we interface with resources. For instance, like in other clouds, you need to pass around secrets and keys and things like that. In AWS, you have IAM, which is the identity application model, which basically you say, “this service has access to this service with these particular roles,” right? And you have the ability to configure at that level, which basically makes it extremely more secure in a lot of cases. So that’s like one thing, right?

And if security and if that particular model makes sense to you, you would choose AWS. Right. And I think there’s a lot of other reasons why people choose AWS, and there’s a lot of reasons why people choose Azure GCP or IBM or Oracle or whatever the other clouds are. But I think in general, there are tons of things that people probably don’t aren’t aware of that they can actually do in AWS because they haven’t looked at it, because they don’t even think .NET runs on AWS.

Jamie

Yeah, and I think you’re right.

I was having a completely unrelated conversation, completely unrelated to technology the other day. It was actually about health and fitness and nutrition. Because, let’s not sugar coat it, there are certain countries in the world that are suffering with a problem, with people not being very healthy recently.

Isaac

Sure.

Jamie

We’re just coming out of the Wobbliness. I don’t like to refer to the actual thing that’s happened over the last few years. We’re coming out of the wobbliness, we’re coming out of Goblin mode. We’re able to get back out into the world and do the things we want to do, right? And a lot of people are finding that they weren’t as fit and healthy as they were before. And especially here in the UK, a lot of people weren’t fit and healthy to start with. And I was talking to someone about it and I said maybe, and it’s for smarter people than me to figure out. But maybe it all comes down to education.

Now, the reason I’m bringing that in is because I’m saying that maybe it comes down to education about just knowing that there are other services, just knowing that you can run your .NET app on a Linux box on a Mac OS device, like peeking behind the curtains from inside a baseball. I’m currently diving into this conversation using a Mac laptop. And before I send the audio over to the audio editor, I do a little bit tiny amount of pre-processing using a .NET app that I run, and it just runs on my Apple M2.

It runs an M2 silicon, right? Just think about that for a second. That’s a brand new CPU architecture, kind of, I mean, it’s armed, but yeah, it’s a brand new CPU architecture that’s only really existed for two years, yet .NET runs on it natively.

Isaac

Oh, I tell you, my favourite thing to do is if I’m speaking at a conference or if I’m talking to a developer, I’ll ask, “do you have a Samsung TV?” And some people will say, “yeah, whatever,” right? They say yes today. Did you know that you can write a .NET app today that runs on your TV? And people look at me like, “why would I do that?” The first thing they say is, “why would you do that?” And I respond, “because you can.” Isn’t that cool? You might not see the value in bringing it, but just imagine all the companies that could bring value. For instance, what if your favourite streaming platform decided, “oh, let’s build a net client, instead of it being in, I don’t know, React,” or whatever most TV clients run on, the fact that they can run on net run net is great. Again, back to our previous conversation. Options bring innovation. And that’s awesome. Absolutely awesome.

Jamie

Yeah, imagine you’re sitting watching whatever you’re watching on your TV, and your .NET app fires up in the corner and says, “hey, it’s about to rain and you’re due to leave the house in ten minutes, why don’t you grab an umbrella?”

Issac

Yes.

Jamie

You could totally do that.

Isaac

You very much could. And I think that there’s so many interesting things that you can do with net that the more we think about net is kind of limitless to do things right.

It only allows us to bring more business value. And this is to go back to what I said about our real responsibility to bring business value, right? There’s this whole thing too about .NET and AWS. And I talk to people that are .NET on AWS customers, and I asked them why they decided to build .NET apps on AWS, and they say, “because AWS all up pricing, functionality, availability in regions that made sense to us, and we were a.NET shop.” And I think that’s really, really important too. There’s all these facets of the business and where you run your cloud a lot of times doesn’t get, you don’t get to make that decision in a lot of cases as a developer where your apps run right, usually someone with a C in their title or a VP in their title will make that decision for you. And it would be very challenging if you are a.NET shop and there wasn’t .NET on AWS and your company decided to use AWS as a cloud platform, right? Because then your option is you run your .NET apps either on premise or you rewrite those apps and some other technology which would not bring business value at all.

Jamie

Absolutely.

I suppose it’s difficult for those developers - and this is a totally legitimate choice, nobody should ever feel like they need to work on code outside of work. Only do it if you want to, only do it if you like it. But for those developers who like to sort of clock in, work, work, work, work, clock off, “I’m done with computers for the day.” For those folks, I suppose it’s going to be a little bit more difficult to find that information to be fed, that information to be told, “hey, did you know you can do this?”

I remember talking with Jim Bennett way back at the episode 20 or something like that of the show, and he said, “I would love to be able to get the funding to drag a refrigerator on stage and deploy my .NET app to it live,” because you can do that too. And I feel like perhaps for him, that’s his way of sort of educating the people in the room, “hey, this is something we can do.”

But I guess the difficulty then is I suppose maybe every company needs someone internal who’s I guess “advocate” might be the right word or whatever that just says, “hey, I’ve heard about this awesome thing. I was on the train, I was on the shuttle or I was in a taxi or I was driving listening to a podcast, and they said this amazing thing, why don’t we spend five minutes a day just everybody just Google it for a second? Or I’ll google it and give you the Cliff Notes.” Right. Maybe every company needs that or maybe not, I don’t know.

Isaac

Well, I mean, I think that’s kind of one of the main, at least pre the times that the last few years, if you’d like four or five years ago, that was the main reason why people got sent to conferences, right? Like, you’d send some of your folks to conferences, “hey, we’re going to pay for your flight, pay for your hotel, pay for your conference ticket, and then your responsibility is to report back to us what you learned, right?” And I don’t know if that’s still the mantra, but I mean, when I went to Microsoft Build, for instance, the whole thing was, “you come back and tell us what you learned because it’s a lot of money to send you to Seattle for whatever,” right?

So I hope that’s still a thing. When an event I was at last year, I was talking to an individual who owns a consulting business, and his whole thing is, “I send ten people in my company to an event and we all learn together and we come back and we try to innovate for our clients.” And I’m like that’s brilliant. There’s no reason to go to conferences if you’re not going to go there to learn or network, right? Otherwise you’re just eating somewhat adequate food and you’re sleeping in a hotel bed, which isn’t super exciting, right?

Yeah, I think it is very interesting. There should be a designated person on every team at every developer shop whose job it is to keep up to date, but we both know that’s not possible. It would be an amazing thing if that could happen, but I think there’s a lot of other things, we’ve talked about them on the podcast even, that need to kind of get resolved before we can even do something like that.


A Request To You All

If you’re enjoying this show, would you mind sharing it with a colleague? Check your podcatcher for a link to show notes, which has an embedded player within it and a transcription and all that stuff, and share that link with them. I’d really appreciate it if you could indeed share the show.

But if you’d like other ways to support it, you could:

I would love it if you would share the show with a friend or colleague or leave a rating or review. The other options are completely up to you, and are not required at all to continue enjoying the show.

Anyway, let’s get back to it.


Jamie

Sure, I absolutely agree. I tend to think that perhaps that would be the job of the CTO. The person is making maybe the technology decisions within a company.

I am talking from my limited experience of only having worked as when I was a permanent employee. I run a consultancy business myself now, when I was a permanent employee, I was in a team of maximum 20 people across the entire business. So it made sense to have one CTO who would sort of drive the decisions for the technologies that would be adopted for each of the projects.

So a new project comes up. CTO would sit and do some cogitation. Just sit in a room for 20 minutes, half an hour, a couple of hours, figure out which technologies might fit this problem the best, and then go to the development team and say, “right, you need to use .NET, you need to use Xamarin, you need to use React, whatever. Go do the thing.” Right? But I suppose with big enterprises that falls to the wayside a bit, right? Because you can’t really have one person who drives all of the projects.

Isaac

Yeah. Now I was going to mention this. As companies scale, it becomes extremely challenging to make technology decisions. You’ll go and talk to large companies and you’ll have situations where you have two developer teams that basically do the same thing, but might have a different customer and they’re using completely different technology stacks. They’re making completely different decisions in a vacuum. And you talk to them, it’s like, “oh, did you know about this team?” [and they’re like,] “why would I know about that team? They’re in a different on the other side of the business?” “Because they’re literally writing the same code you are, more or less. They’re in the same databases.” Maybe the customer is different, like I said, but they’re doing very similar things. And again, if the goal is to bring business value, then I think two teams doing the exact same thing is not bringing business value, right?

Not to say that that team should be gotten rid of, but those teams can collaborate together to innovate or to cut costs or to do all sorts of things, right? I think that’s one thing that gets really lost with big companies is the decision making is so abstracted because you also have to remember, I’m a vendor for a lot of these companies, right? My company is a vendor. And you have all of these different vendors saying, “hey, use our stuff because our stuff is the best thing.” And I can imagine it being extremely challenging for a decision maker, technical decision maker, business decision maker, whoever, when there’s 70 people telling you that their thing is the best and you don’t have any real tribal knowledge or tactical knowledge of the thing, you’re just being told stuff, right?

That’s why I think it’s really important to there’s this phrase in the industry called Center of Excellence, right, where you spin up a little organization inside of your company and their whole responsibility is to make sure you’re doing the best things possible in this space. So like the decision making, the advisory, the conversating with vendors, that’s important at large companies. But again, large companies, as you get smaller and smaller, some companies don’t even have CTOs, right? Some companies don’t even have COOs. Like maybe you have a very small company and it’s like there’s a president and then there’s an HR chief HR person and there’s somebody whose job it is. They’re like a tech manager, right?

At some point in time, that tech manager is going to have to make decisions. And if they’re not well versed, they’re going to make decisions that - this is not going to sound great, but - they’re not progressive, they’re not innovative because that’s what they know. And then you get situations where you have, you know, applications that are written in .NET 3.2 that are out of support and there’s literally no way to get them updated because teams don’t have time. Teams don’t have resources and that’s a challenge, right.

And nobody wants to be in a position where they feel like they, they have there’s they have no support and they can’t be helped if something goes wrong.

Jamie

Totally. 100%. I love this idea of a Center of Excellence. I’ve actually written that down. So that’s the thing I’m going to go and look up later on.

And one of the things that I noticed, I did some consultancy work for, I can’t say which company, but for a large enterprisey e-commerce company, if you do some digging enough into my background, you’ll find out who it is. But I’m not allowed to say who it is. But anyway, they had lots of different teams doing lots of different development in lots of different ways. And one of the things that we came up with as I sort of started this little group of people just to sit around and think, “spend an hour every week just thinking of ways we can improve the company.”

And we came up with this idea of a community of practice where we just get to get we send one person from every team, regardless of what they did. You know, there were, there were like photographers in house, there were copy writers in house, there were videographers in house, developers in house, lots of different technologists, all that kind of stuff; one person from every team would meet where possible, every two, three weeks. And they’d just to get to know each other because unless you have that bridge, or rather you can’t walk across the bridge until you built it, right?

Isaac

Yes.

Jamie

So let’s bridge those gaps between those different groups. And what I found, and rightly or wrongly, was a lot of the devs would sort of sit together even if they’re from different teams. And I didn’t stop that because I thought, well, they’re forming little bridges between their own teams, so they’re figuring out what they’re doing and stuff and how they can help each other.

And what I found was two, three weeks in, or rather two, three sessions in. So about a month, a month and a half in, the devs were asking to go, “can I go visit this other team? Because they’re working on this thing that we solved six weeks ago. And although they’re doing it with say, JavaScript, and I did it with .NET, I can talk them through how I did it. We could solve the problem together. Boom. The problem solved in an afternoon rather than it taking weeks and weeks.” And so that started that little journey. So I wonder if that’s kind of related to a center of Excellence.

Isaac

Yeah, and that’s brilliant, right? I think that more than likely. It’s a similar at least the goal is the same, right, is to make sure that your teams are doing the right stuff again, using technology to ensure you’re bringing business value. Right? And now we were talking a little bit about this earlier, all the tools and choices developers have, right? Like, if I’m a shop and somebody hears it, like, maybe a CTO or my CIO is like, “oh, we need to be using containers, right? I saw it on the news that containers are a big deal. Everybody needs to be on containers. So all the development teams make your apps in containers.” And I could imagine if you don’t know anything about containers, that’s like, “okay, cool, I don’t know what that is, but whatever.” So you’re researching containers and you’re figuring out what’s up about containers. And then you get to a point where like, “okay, we’re already in AWS shop. We’re going to host our containers in AWS.”

And then you look at all the options, right? So, like, you know, I’ll just run through them. So you have Elastic Container Service, you have Elastic Kubernetes service, you have Fargate, you have App Runner, you have other things as well. If your apps are actually serverless, they can run in Lambda. Right? At that point, making that decision is like, “okay, containers on AWS, .NET containers on AWS. Cool.” Now you have all these options. So then you have to go to a vendor and say, “hey, vendor, this is the business problem we’re trying to solve. What is the best solution for us?” And then hopefully the vendor will then give you their opinion based on experience and all sorts of other things. What’s the right solution? Right? And at that point in time, things might go up. But I think the biggest thing to consider is that you’re not locked into any particular technology or any particular platform. Right.

You can hop between different things. And I think the goal of a team that we’re kind of talking about is to at some point in time, you might have to make a difficult decision. It’s like, “okay, we’re using this technology. We need to move to this technology. And then we kind of have to incur the costs to innovate because we can’t innovate any further with this existing solution.”

Jamie

Totally, yeah. I feel like it’s so easy to fall into that. You mentioned at the start of that about how a CTO, a CIO, someone influential in the business, hears about the technology. Right. I remember, I want to say around 2012 to 2014, when the CEO of the company I worked for at the time heard about the blockchain. So that was it. Every single meeting was like, “and can we do this on the blockchain? Can we do it with the blockchain? Is there any way we can do it with the blockchain? Can we put the blockchain on the blockchain? If we can figure that out, we’ll get all the money.” And I was like, “Boss, okay, just take a moment and let me explain what the blockchain is and how it’s just distributed ledger. And then you’ll realize that it isn’t some brand new it is an innovation, but it’s not going to fit with every problem that we have. Right. You can’t easily do a brochure website for someone on the blockchain.”

Isaac

Yeah.

Jamie

It’s not something that really fits.

Isaac

Yeah. I think even with your explanation, it’s like the ledger thing. You have to unpack so many terms that are just at least in my opinion, they’re very foreign to a lot of people. Right. So whenever anybody says blockchain, I say, “oh, so you want microtransactions?” And if somebody says, “no, we don’t need them,” I’m like, “oh, you don’t need blockchain then,” because that’s like, in my opinion, again, there might be some of your listening to like, Isaac, you’re dead wrong. There are only a few problems that blockchain effectively solves and like, microtransactions is one of them. Right.

Everything else, I think, is a lot of what’s the best way to phrase it? A lot of hype. And I don’t want to go down like the Web three sort of thing, but the goal should be to bring business value. And if you have to retrain all of your developers on how to use some technology that’s not bringing in business value. It’s not.

Jamie

What is it? I’m going to misquote someone just to sort of try and shoehorn in it. There’s this quote in a book, Adam Grant: Think Again. And he says, when something goes wrong and in this instance, imagine that something goes wrong means we need to pivot to this new technology. “When something goes wrong, it doesn’t matter who did it, just that you get it working again.” Right? And so when someone says to you, “you need to pivot and use this brand new technology and just stop what you’re doing, stop the presses and rewrite the entire application using containers on whatever technology with all these different things,” if you have to stop and start again, you’re actually producing negative value. Right, because the code already works and the code is already producing value.

New code has working code is infinitely more valuable than non working code because non working code has an infinite cost because nobody knows when it will be ready, nobody knows when it will be finished, nobody knows if there’ll be any bugs, nobody knows if it’ll even do what it says it does. And so if you have to stop and rewrite, that’s a huge problem.

Isaac

Yeah, but I mean, sometimes it is for the best, right? Like, I remember working at a job where we were looking to implement like a new CRM system. And I’ll just say it, after spending about six months and millions of dollars with a consulting company and internal people, the project got scrapped. And I can only imagine how difficult that decision was to scrap that project. But it was for the best because we figured out at some point in time that it just was not going to work. Right. And I imagine that it’s a huge ego blow, but I think that. There is some skill in being able to completely separate yourself from a decision. And are we going to go down this path of pain and suffering and money spend and all these sort of things, or are we going to reset and just take it as a sum cost and move forward? There’s a ton of skill in that as well, right. And that’s a business skill. That’s not a technical skill at all.

Jamie

Oh, absolutely. I suppose we as technologists can be involved in the providing the data to the person who makes that decision, but I feel like maybe we as technologists shouldn’t be making that decision. Right. If somebody says to me, “here’s a credit card with a million dollars on it, go spend it on wherever you want.” Well, guess what? Jamie is going to go get a PlayStation Five and Xbox 360 or whatever it is. Xbox One or whatever, right? Or whatever it is. I don’t know. Right? I’m going to go get an Xbox as a blu-ray player and a TV bigger than my house and things like that, right. I’m not going to do what’s the most interesting, most efficient thing to do with that credit card. I’m just going to go, “I’m going to buy all the things,” right?

Isaac

For sure. And this is not to disparage technologists or developers, but a lot of us have a hard time thinking big picture, right, because we’re so usually in the work like the cliche “forrest for the trees,” right. If you want us to make big top level decisions, we might struggle with that because we don’t have the skills in a lot of cases to do said thing, and that’s fine. But like you said, you definitely don’t want a developer with a million dollar checkbook and say, “hey, go figure out what technology to use.” They should be consulted, for sure. But to make the decision, it definitely should be in the hands of somebody else.

And that’s why you have architects. An architect is like a developer that graduated to business work. Right? Again, that’s a joke. That’s not trying to make fun of architects, but at some point in time, they figured out that, “oh, I have skills in helping, advising, making these decisions,” right. And that’s a really important skill to have, a skill that I lack a lot, right. I get analysis paralysis, and I spend hours and hours and hours dunking around, trying to get things to work, and then I find out, “oh, if I probably just could have asked for help or if I could have done a little bit more research on trying to find if there’s a third party package that did this. What I’m trying to do.” How many times have you done that, right? Just like, spend days trying to get something to work to find out that it already exists, and you could have been done in 15 minutes.

Jamie

An example of that for me, just to make it a real example is because I’m totally interested in podcasting. I tried to build a little app in Go because I was like, “I want to learn Go. I’m interested in podcasts. Let’s put those two things together and hey, I can learn Go whilst I learn about podcasting.” So I decided I wanted to build a podcast aggregator that could just sit on my desktop and just ping me when a new episode of something comes out. And I spent four days writing an XML parser to then write an Atom parser because RSS feeds are Atom compatible to then parse all of these things. And then somebody pointed out to me, “hey Jamie, there’s this package here called Podcast parser. Fall in to Go, give it a URL and it will do everything for you.”

Isaac

You literally just talked about like iTunes or any other podcast client, right? And it is funny that and again, there’s nothing wrong with, “hey, I want to learn something.” So I’m going to take a real world example and try to build it. That’s totally cool, but at some point in time it’s no longer fun, right?

I have an open source project that I built a few years ago called Presence Light. It still is widely used, widely being in quotes, but basically what it does, it takes your Microsoft Team’s presence. So like, if you’re available or away or you’re busy or whatever, and it changes the color of smart lights. And I built that app solely because I had a problem. And I’m like, oh, this is kind of a cool little idea. I’m at home every day. I want my family to know if they can come into my office or not, even though they’re not going to pay attention to the color of the light. And then I found out like, oh, other people might like this too. So I made it available through the Windows Store and a bunch of different things.

And over time, it started to become a bit of a job because people would reach out to me like, oh, can you add this functionality? Oh, can you add this light? Can you do I’m having a bug and I’m like, I still maintain it, right? But I tell people now, I very much welcome pull requests. If you have an idea, pull requests don’t just blindly ask for me to do something. And there is that level of that tipping point in open source and this is kind of to deviate where it’s like it’s no longer a hobby and it becomes a job. So I have so much empathy for open source developers that run huge projects like the millions of downloads a month on NuGet or NPM, right? And their hobby is like literally like a 30 hours a week job just moving around in noise, right?

And I think that’s one of the things at least we’re trying to do at AWS as well as I think a lot of other companies are doing, is figuring out ways to support them. One of the things that AWS is doing is we’re sponsoring .NET open source projects. So we sponsored ten last year. We’re going to sponsor twelve this year with a monetary amount through GitHub sponsors. And I think that’s really important is that these folks usually are doing these things in their spare time or even if they’re doing it as a job, it’s a small fraction of their job usually. We should support them in any way we can. And I know other companies. Microsoft does this, Sentry does this. Most of the big companies do it.

And I think it’s really, really important that we continue to remind ourselves that we’re all dependent on the work of people that are doing something as a hobby. Right. Like you look at a nugget package or an NPM package, you look at the dependencies and then the dependencies upon the dependencies and so forth, and you have stuff that you don’t even know exists that you’re completely completely dependent on. So if that person decides to take their package off of a registry, it’s going to break your builds and break your apps and you’ll have no idea why or how to fix it.

Jamie

Absolutely. Without even mentioning left-pad. We’ve talked about it.

Isaac

Are we allowed to talk about left-pad? I think we are technically. But left-pad is the great I love telling people the left pad story because it’s the greatest example of taking technology for granted. Right. I’m not going to go into the story in great detail. If anybody is interested, they can just use their favourite search engine to search for left-pad NPM and you’ll see a great story about a developer making a choice that literally caused a lot of problems for a lot of people and completely justified in my opinion.

So I don’t ever want to be in a position where I am taking like because I was like this for a long time and this is a little rant. Like I was at one of those developers that just used tech open source packages. I would download stuff from nuget and I wouldn’t ever give back. And at some point I decided to give back because I realized that it’s far more enjoyable for me to help be a part of the process than just be a consumer of the process. And that’s just me. Other people might have other thoughts or whatever, maybe they don’t like technology as a hobby, but I just really enjoy having conversations with folks about technology. And to be a part of the community, you need to just be aware of some of these things.

Jamie

Absolutely. There’s that wonderful XKCD - I can’t remember which number it is off the top of my head, but there’s this wonderful graph like building blocks, of building blocks and building blocks. All this closed source technology they run at the bottom there’s this little coloured in bit there with a little arrow that says, “this is supported by someone who lives in a bunker in Sweden,” or something along those lines, right? And it’s all built on top of that one block. And I think you’re right, we need to remember that, right? I’m sitting here talking to you using Discord on macOS. macOS is based on Unix, which is technically a free operating system. I have a desktop that runs Linux. I’ve got a Nintendo Switch that by definition runs BSD. It’s a Unix-e, Linux-e operating system. All this stuff is free to use, but it’s free as in free beer. But obviously we need to take that responsibility to say, “hey, this stuff is free for us to use, but maybe we should give back in some way.” And it doesn’t always have to be monetarily, it can be in support, right?

We can just say maybe we can just jump into the GitHub discussion and say, “hey, this is a fantastic library, thank you very much, you’ve saved me loads of time, I love it.” Or maybe we can jump in and, like you say, report a bog or write some documentation. And I feel my personal opinion, I feel that the big companies, the FAANGs, the MANGAs, whatever acronym we’re using these days, I feel like they at the very least, they need to be responsible and sort of feedback into the open source system, either by donating developer time or like you’re saying with AWS are doing, by donating a little bit of money. I say a little bit, right. It’s a huge amount, but donating some dollars through GitHub sponsorships or something and I think that maybe we should all, as developers, try to do something that helps with that. I’m not smart enough to figure out “how do we all support open source software,” but it’s for smarter people than me to figure out. But I feel like the things that the manga companies are doing for those who don’t know it’s like the Microsoft, Amazon, Netflix, Google.

Isaac

The acronym changes all the time for a lot of reasons.

Jamie

Absolutely. But I feel like the things that they are doing to try and support these big open source projects, they’re a step in the right direction. Right. I don’t think, like you and me, the individual developer will ever be able to support these open source projects monetarily in as big of a way at scale. I don’t have a million dollars. No, but like somehow figuring out how to be thankful and appreciative of the people who are like you said, they’ve given 30 hours of their free time as a hobby for the thing you’ve just built your app with.

Isaac

You mentioned a couple of things, right, that I think are really interesting. Like Linux or there are large organizations whose whole responsibility is to ensure the life of some of these open source technologies like the Linux Foundation, Apache Foundation, .NET Foundation, OpenJS Foundation list goes on and on and on, right? And that’s one thing. So contributing to those foundations is really important. Contributing to being a large entity and contributing to those organizations is really important. Like, for instance AWS. I’m pretty sure we sponsor in some capacity like every large foundation. I’m probably going to get corrected. I know for a fact we sponsor the .NET Foundation, which is important for us then the project thing.

But I think one thing is really, really important is that the larger the presence of an open source technology I see, the less I don’t know the best word to fill up, but the least opportunity for something to go terribly wrong, right? Like Linux isn’t all of a sudden going to go wrong, right? Like there’s enough funding put into Linux that it’s going to be around forever. But my area of interest is the projects that there’s one maintainer, there’s two maintainers, they have a real job and they decided to build this little thing that took off way more than they expected and now they kind of are forced with the debt of maintaining it, right? And those are the people that I think can get the most value out of said sponsorship, right?

I talk to open source people all the time on my podcast, I talk to them on Twitter, whatever, right? And they all say the same thing, “if you can contribute in any way, money or no money, it’s going to make my life better.” If you walk up to any open source maintainer and ask, “hey, do you want somebody to write docs for you?” Every single one of them will probably say yes because docs is like the last thing that us as developers want to usually do. And I think that it’s also a great way to just go into the conversation.

My first foray into Open Source was I wrote docs for Microsoft as an outsider, like ASP .NET docs. At one point in time I wrote the first .NET Framework to .NET Core 2.0 Migration guide, which I can only imagine. It was probably a very, very heavily trafficked site or traffic traffic page. And I just did that with the help of a friend of mine who worked on Microsoft and it brought me immediate satisfaction because I felt like I was contributing in a positive way without writing a line of code, line of real code, like I had sample code like in the doc. But I think in general, and this goes back to the thing that we talked about earlier, you can contribute in any way that you feel comfortable contributing. If you want to write code against the C# compiler, cool. I don’t know how you can do that, but good for you. If you want to write docs, you can do that as well, which is really, really important. And if you don’t feel like you can contribute in that way. Like you said, beer money. Like, a lot of these open source maintainers, they have like a, “hey, throw me a dollar, throw me $5, throw me $50, or whatever.”

And I know not everybody in tech has the ability to donate money, but let’s be real. A lot of us do. A lot of us can spare $50. A lot of us can not. Maybe $50 a month, forever in perpetuity. But a one time $50 goes a long way.

Jamie

Absolutely. And especially for these developers who are, like you said earlier on, they’re doing 30 hours of their own time, right? That’s 30 hours of their own time. They should be doing something else. Or maybe they could be doing something else. Like you could be spending time with family or with friends or whatever. It’s kind of related to the story about Duende and identity server.

Isaac

Sure.

Jamie

I remember at NDC, this was NDC 2020. So right at the beginning of the Wobbliness, right, I was talking to someone from Duende. They were saying, “yeah, we’re setting up this new technology, this new company,” because this was just before they went public with Identity Server being a Duende product. And they said, “yeah, for the next version, we’re going to be a private company, and you’re going to pay for a license for it.” And I said, “no, that’s cool. That makes total sense because you are putting in all of your time in the background to build this piece of software that a lot of us devs are using, but also multimillion dollar enterprises are using.” Right. And you’ll need to be paid. And the person I spoke to said, “yeah, in the last ten years, we’ve received $2,000 of actual sponsored pay for this thing that we are building in our own time that technically the whole of the .NET world runs on.”

Isaac

Yeah, no, it’s challenging. And you’ve seen it a lot over the last few years. There’s been a couple of other notable projects that have done it. Like, IamgeSharp just recently did something similar. Right. And I can’t fault any of these maintainers for wanting to cash in a little bit on their work. Right. There’s a slippery slope, right, because the alternatives are like a big company acquires them as individuals, and then that project gets rolled in. That’s a thing. It just becomes really challenging to navigate this. “I’m doing all this work for basically free because nobody is contributing to it financially. And I want to be able to put a good amount of my time and effort into it to make sure that it brings value to my customers or to my users. But I need some revenue stream.” There’s a lot of, like, we’ll talk about in our space .NET, there’s a lot of commercialized open source projects or I don’t know what the technical phrase is, it but you have MVVM or you have ImageSharp, or Duende identity server, there’s a lot of them.

And it’s only because the open source model in a lot of cases isn’t sustainable model, right? Because it’s dependent on third parties, external people to contribute financially to the life of the project which we talked about this already. Big companies can do it but I can’t go and give $10,000 to every net open source project because I don’t have that money. Even as AWS, I can’t get that sort of money. But we can identify projects that we see that are vital to the .NET ecosystem and contribute in that way. And that’s what we’re trying to do. And that’s just a small piece and honestly, the goal is, and I’ll be honest the goal is to make the conversation more visible because, “hey, AWS is sponsoring .NET open source projects. Why isn’t company A doing that? Or company B or whatever,” right?

And not I’m even just talking about other tech companies I’m talking about like financial institutions that take advantage of open source banking, insurance, capital markets, right? I’m talking about the airline industry, I’m talking about any industry because every business uses open source now, I don’t care what they say they do and this is going to be another spicy take: it can’t always be tech’s responsibility to ensure that open source is vital and strong, right? Because if you use open source, you should contribute. If you’re a company that makes billions of dollars a year, you should contribute to open source in some way financially or not financially. That’s my opinion.

I don’t know there’s other ways for me to say it other than me sounding like a ranty old person.

Jamie

No, I agree on her 100% and if you look at discarding, maybe the last ten years, if you look at everything that was massive and open source before, ten years ago it was because there was a foundation behind it. Linux has survived this long not just because the enthusiasts use it for everything, but because as a big business, if I want to use Linux in my product, a distribution of Linux or just a Linux kernel, I can buy support to actually, when things go wrong, there’s someone I can go and yell at even though it’s free, open source. There is a named person, like listeners won’t be able to see it.

But I’ve got a little just here on my screen, I’ve got the Ubuntu logo that my brother cross stitched for me. With Canonical, if you are a business or with Red Hat Enterprise Linux if you are a business, you have a named person that you can pay for. You can pay to get them as a support person for when things go wrong. Just like us as developers, if I’m building something and putting it on AWS, I could probably get a support from a person at AWS when things go wrong. The same with Azure, the same with Google Compute, the same with Linode and so that’s how if you dial back 10-15 years, that’s how the open source community has survived for that long. Because there’s been, like, AT&T, at AT&T Labs when they built and sold Unix, there’s a lot of crazy politics behind why it was initially free, but that was because it was backed by research. There was money behind it. If it was Kerrigan and Ritchie sitting in their bedrooms doing it, they wouldn’t have been able to do it because they needed the PDP machine to work on and the expensive machines to write the software with. So there’s always been money behind open source. But I suppose we need more, right? Because there’s more open source now.

React, I’m picking on the big ones, right? React and angular backed by Facebook and Google. But imagine that they want right? Exactly.

Isaac

Imagine if Microsoft all of a sudden said, like, “okay, we don’t own .NET any more. Like the community owns .NET.”

I imagine a lot of people would go, what is going on here? This is the worst thing ever. Right? And this isn’t to talk negatively about .NET developers or anything, but .NET developers are very spoiled. The fact that a very large company owns the tech stack. Right. They’re very lucky, because in a lot of cases, if you take some open source technology, finding somebody to help you is challenging. I’m not in the python space at all. So if this is an incorrect statement, somebody can say so. If I have an issue with Python, what do I do if I’m having an issue? Like, I got to go to a stack overflow, or I got to go… There’s probably some python communities out there that you can find, but I can’t. And not to call out our friends, but I can’t tweet at David Fowler and say,“hey, why doesn’t this thing work for me in .NET?” Right?

And I think that is a luxury that a lot of technologists that use other technology other than Net don’t have. So we should take advantage of that as much as we can. But on the flip side, it doesn’t mean that we are as dominant developers, we are wholly dependent on Microsoft to do what we need to do. This goes back to the conversation about choices, right. It doesn’t mean that I have to put my Net up on Azure, I can put my .NET up on AWS, or Tencent or wherever else. Right. And it’s just important to realize that we have this luxury that there’s always going to be somebody to support us, but that doesn’t have to be the person or that company doesn’t have to be the company, that we make all of our choices aligned to.

Jamie

100%. And you’re absolutely right, we are lucky. JavaScript has the JavaScript Foundation, and there was a huge amount of JavaScript developers. But like you said, imagine if Facebook decided tomorrow to abandon React. “We’re done with react now. It’s gone that’s it. We’re done. We’re no longer doing it,” what then? Right? If Microsoft did the same thing with .ENT, what then? If Google did the same thing with Angular, what then, right? There’s all of these hundreds of thousands, millions of projects that no longer receiving any kind of support at all from the people who made it.

Isaac

Yeah. Very scary. And not only that, but, like and this is just to go back about complexity, right? Like, let’s say you have an app hosted in AWS, and maybe you have an AWS lambda. That’s some .NET application, right? And you have some issue, the level of triage that you need to do to figure out, who do I go to? Is this an AWS issue? Is this a lambda issue? Is this a .NET issue? Is this an open source package that I’m taking advantage of in my app, right?

Like, it turtles all the way down until you find a person that you can bother, hopefully. And I think one of the things that we have to do better in tech is put faces to these individuals. I mean, I’m very guilty of it. Sometimes I get so mad at random tech company when stuff doesn’t work, and the first person that I talk to in customer service, I’m just like, “I just want this to work,” right? Like, if I’m using a SAS solution or whatever. And the problem is, I think, is that we’re just so accustomed to having to work really hard to get to our answer, because to our point earlier, a lot of these big companies, it’s hard to figure out what to do. Like, we were talking about Center of Excellence and stuff earlier just to get to the person that can help your problem. It can take days to get to the right person, especially if the company is huge, right?

Jamie

So, yeah, imagine that there’s this person who’s maybe widely known in the community for doing really well and putting all this information out there. Well, if I can turn to them and say, hey, “look, I’m having a bit of a problem. Can I have a chat with you about it? Can we figure this out? Well, actually, you don’t want to talk to me, Isaac. You want to talk to Jamie, or you want to go talk to to Sarah, or you want to go talk to this person because they know what you I totally appreciate the problem you’re solving. I totally appreciate the problem you’re having, and it sucks that you’re having this problem. I want to help you out. I’ll go get my friend Sarah, my colleague Sarah, she can help you out. Or I’ll go get my colleague Jeff or whomever, and they will be the person to figure it out. Let’s figure it out together,” right?

Isaac

Oh, I mean, you’re totally spot on, and I think that’s probably the most valuable thing that a developer advocate can do, right, is be that conduit between the user, the customer and the business, the product group, the service team, whatever, right? My job is to be able to more effectively filter the noise. I’ll tell you right now, sometimes even from my perspective, it’s hard to get to somebody. And I have access to our internal slack. I have people’s email addresses, I have all these things. Right.

But I think the problem then becomes, though, is, okay, Isaac has been working not just even Isaac. Jeff has been a developer advocate for five years at Company A. People have always been asking the questions. And then Jeff leaves Company A. Right. Like, that be like, okay, I can no longer go to the one person that I knew for help. Right? And I think that is where developer advocacy really becomes challenging because part of our job is to be that interface. Right.

But I think also, and this is just a comment across tech, we need to figure out more effective ways for people to get answers, right? Like, and this is like when technology brings innovation like we talked about, but it also brings a ton of challenges as it pertains to like, just getting something solved, right? And I’m not going to say the name of the company, but I have a loyalty program for a very well known hotel chain and I am expecting something in my account and I haven’t gotten it in like five days. And now I have to make a phone call and talk to somebody and that person isn’t going to help me with my question, most likely. And I’m fearing this conversation because I know I’m going to have to go down this rabbit hole of like, “okay, you’re going to transfer me here and then here and then here, and then maybe somebody in customer service can help me,” when I think that it’s probably just a technical thing, like, oh, some feed got disconnected or something. And that’s hard. Right. We need to figure out more effective ways. And I don’t know if technology can help with that by more chatbot sort of experiences or more forms or whatever it is, but I think technology needs to be, I guess, more navigatable. That’s not a word. But people need to be able to navigate technology a bit better. And that’s a bit of a rant too. So I apologize, but I think if developer advocacy can be in some cases that routing mechanism, then I think that then developer advocacy is successful.

And that’s just one small part, but that’s the part that brings the most tactical value to the end user, right? “Hey, Jamie, you reach out to me with an issue about .NET on AWS and then I go and go into the ether and figure out who to talk to and come back with a result. Or I connect two people together.” Like, Jamie’s got a great experience. Like, Woh man, like Isaac helped me out. This was. Awesome. I definitely want to use their product because Isaac helped me.W That’s good and bad, right? Because you shouldn’t be making decisions because of one interaction with Isaac, even though like, that’s cool, I’ll take that every time. But I think that it shows you that if you can continue this history of success over and over and over again with customers, then you’re going to build this mind share of, hey, this company is really, really powerful to work with and this company helps out a lot.

Jamie

Yeah, 100%. And I think you’re right. I think there’s hopefully some technology thing out there, some very smart person out there can figure out a way to make this easier because that’s what technology is, right? It’s about making things easier for people. And we provide business value by making it easy for people to do stuff. Or easier for people to do stuff.

Isaac

Yeah, I totally agree. And I know that one of the things that I’ve enjoyed in my current role is whenever I talk to people, whether they are .NET developers already, they’re not .NET developers. They are .NET developers that didn’t even know you can run .NET AWS. Maybe they’re running other clouds already or they’re just AWS customers in general. It’s like I want to make sure that you have the whole story. According to Isaac, again, we talked about this earlier, Isaac is opinionated, so Isaac has opinions that might or may not be accurate in some cases.

But I can tell you this. If I’m going to host a .NET app on some service on AWS, it’s not going to be a terrible experience. Right. And I think a lot of people just make the assumption that it is a terrible experience because of reasons, right? It’s not. There are services that solve every problem. There are services that solve problems you didn’t even know you had. Right? Like we were talking about one of the things that just was announced at Reinvent, which was in November of 2022, is Code Catalyst, which is like an all encompassing DevOps platform, like a developer platform that’s AWS tuned in.

So like the idea of like, “hey, you can add Jira boards to it or GitHub boards or GitHub actions or whatever, and it all consolidates and interfaces really, really well with AWS.” Right. Things like that are very interesting. And if I’m a .NET developer and I’m using some other tool that does these sort of things already because other tools like this exist, but I’m hosting my app in AWS, I’ve had a bit of a kerfuffle as it pertains to making sure that works effectively now that problem is solved. So it’s about bringing value to customers in ways you didn’t even think that they were aware of. Right? And I think that’s the big thing. And that’s what I’m trying to do as a developer advocate. And hopefully some people think that I am doing it.

Jamie

I think you are for sure.

Isaac

Thank you.

Jamie

You’re very welcome.

What I’ll say, isaac Right. I’m looking at the time, I realize I’ve used a whole bunch of your morning this morning, and I feel like because of again, peeking behind the curtains, a little bit of inside the baseball. I feel like you’ve missed a meeting.

Isaac

No, it’s in eight minutes.

Jamie

Oh, okay.

Isaac

Yeah.

Jamie

Oh, fantastic. So that’s good. So we’ll be able to wrap up in time for you to attend that meeting. That’s good. What was it? Meeting-driven Podcasting? That’s it.

Isaac

Yeah. The meeting that I have is specifically for the .NET Foundation, which is, if folks don’t know, I’m the chairperson of the marketing committee and we recently just launched a new website for the .NET Foundation. So that meeting is specifically on the website, so it’ll be exciting.

Jamie

Cool. So everybody go check out the .NET Foundation’s new website, or rather old website by the time they hear this. But you know what I mean.

Isaac

Yeah, I know, exactly.

Jamie

Excellent. I’ve already collected some resources from you earlier on about where folks can learn about hosting their apps with AWS if they’re .NET. So they will be in the show notes. So please, folks, click through, press through whatever it is you do to go through into the show notes and check those out because those will be listed. And those were sort of hand picked by Isaac, so we know they’re going to be good. But what I’d like to say, Isaac, is thank you ever so much for spending the time with me today. I feel like we’ve covered a whole bunch of topics right again, inside of baseball. Once this is edited, I do a round of QA. Right. I’m going to be listening to this going, “wow, but I missed that bit when we were talking because we were always too busy figuring out what I was going to say next.” I know that there’s going to be a ton of value there, but so much about Isaac.

Isaac

Yeah, no, I’m very guilty of talking about way too many things. Like, I don’t know if you listen to the Unhandled Exception podcast. So Unhandled Exception is a podcast by I believe he’s from the UK too, Dan Clark, and I believe that he and I did the longest ever episode of his podcast. And you and I have been talking for a bit, so I’m guessing that this might be maybe top ten longest podcast. And I’ve made this assumption that I just talk too much, probably is what the real problem is.

Jamie

It’s the perfect problem for a podcast to have because then you never run out of content. Right? Right.

Isaac

Yeah. But no, this was great. I really enjoyed chatting with you about all sorts of things. And again, I don’t know if you caught this at the beginning, I’ve listened to every episode. So this has actually been a thrill for me to chat with you because now thank you so much yeah, because I feel like your podcast, it hits like a lot of different notes for me. Like some of them are super technical, some of them aren’t very technical, some of them go on tirads. I think this one kind of will probably be one that just kind of jons all over the place and it just hits the right note for me. So kudos to you and I really enjoy the conversation.

Jamie

Thank you very much. Thank you ever so much for spending some time with me. Your morning, my evening time zones are fun, right?

Isaac

Yeah. I don’t think you live very close, but I’m actually going to be in London next week. Coincidentally not next week, the week after. So the week of the 23rd or the 22nd, I’m going to be in NDC London, and I’m going to be speaking at Net Oxford in person, which should be fun.

Jamie

Oh cool. I’ve done that last year, did a talk at .NET Oxford. My goal is to do a talk at NDC, but I don’t think it will happen anytime soon. But that’s for another day. I think that’s a conversation for another day.

Isaac

Sounds good.

Jamie

Excellent. Well, like I said, Isaac, thank you for spending some time with us. I’ve got some links and stuff for the .NET stuff on AWS. Would you mind just quickly shouting out where folks can find you online if they want to have a chat? I know that we connected over Twitter. Is that the best place?

Isaac

Yeah, that’s probably the best place to get a hold of me. My handle. There is @isaacrlevin. And if you’re interested in learning more about Net AWS, specifically we have our own Twitter handle, it’s net .NET on AWS, and that’s the first place to look. You’ll see all sorts of fun stuff that’s going on there and I believe in the Show Notes you’ll have some links to some of those things that we’re doing over there. So that’s kind of the easiest way to reach out to me. I haven’t figured out going over to Mastodon yet, so I’m still on Twitter, at least for the foreseeable future.

Jamie

Awesome. Well, like I said, thank you ever so much Isaac. It’s been a real pleasure talking to you today.

Isaac

Thank you, Jamie. Take care.

Wrapping Up

That was my interview with Issac Levin. Be sure to check out the show notes for a bunch of links to some of the stuff that we covered, and full transcription of the interview. The show notes, as always, can be found at dotnetcore.show, and there will be a link directly to them in your podcatcher.

And don’t forget to spread the word, leave a rating or review on your podcatcher of choice - head over to dotnetcore.show/review for ways to do that - reach out via out contact page, and to come back next time for more .NET goodness.

I will see you again real soon. See you later folks.

Follow the show

You can find the show on any of these places