S05E18 1h 36mSeason 5

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
Isaac
Jamie
Isaac
Jamie
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
Jamie
Isaac
Jamie
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
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
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
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
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
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
Jamie
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
Jamie
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
Isaac
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
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
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
Isaac
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
Isaac
Jamie
Isaac
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
Isaac
Jamie
Isaac
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
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
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
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
Isaac
Jamie
Isaac
Jamie
Isaac
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
Isaac
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
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
Jamie
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
Jamie
Isaac
Jamie
Isaac
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
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
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:
- Leave a rating or review on your podcatcher of choice
- Head over to dotnetcore.show/review for ways to do that
- Consider buying the show a coffee
- The BuyMeACoffee link is available on each episode’s show notes page
- This is a one-off financial support option
- Become a patron
- This is a monthly subscription-based financial support option
- And a link to that is included on each episode’s show notes page as well
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
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
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
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
Jamie
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
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
Isaac
Jamie
Isaac
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
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
Jamie
Isaac
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
Isaac
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
Isaac
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
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
Jamie
Isaac
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
Isaac
Jamie
Isaac
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
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
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
Isaac
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
Isaac
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
Isaac
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
Isaac
Jamie
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
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Jamie
Isaac
Wrapping Up
That was my interview with Isaac 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 our contact page, and to come back next time for more .NET goodness.
I will see you again real soon. See you later folks.
Useful Links
- Isaac Levin’s social links
- Coffee & Open Source
- Unlock the power of the cloud with .NET on AWS
- .NET on AWS - GitHub repo
- Porting assistant for .NET
- AWS app2 container
- AWS Microservice extractor for .NET
- What they didn’t teach you at uni…
- Raw With Jay: Let’s Ditch the Gatekeepers
- Episode 20 - Xamarin with Jim Bennett0
- XKCD - Dependency