Screaming in the Cloud - Inspiring the Next Generation of Devs on TikTok with Scott Hanselman
Episode Date: June 24, 2021About ScottScott is a web developer who has been blogging at https://hanselman.com for over a decade. He works in Open Source on ASP.NET and the Azure Cloud for Microsoft out of his home offi...ce in Portland, Oregon. Scott has three podcasts, http://hanselminutes.com for tech talk, http://thisdeveloperslife.com on developers' lives and loves, and http://ratchetandthegeek.com for pop culture and tech media. He's written a number of books and spoken in person to almost a half million developers worldwide.Links:Hanselminutes Podcast: https://www.hanselminutes.com/Personal website: https://hanselman.com
Transcript
Discussion (0)
Hello, and welcome to Screaming in the Cloud, with your host, Chief Cloud Economist at the
Duckbill Group, Corey Quinn.
This weekly show features conversations with people doing interesting work in the world
of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles
for which Corey refuses to apologize.
This is Screaming in the Cloud.
This episode is sponsored in part by Thinkst.
This is going to take a minute to explain, so bear with me.
I linked against an early version of their tool, canarytokens.org, in the very early days of my newsletter.
And what it does is relatively simple and straightforward. It winds up embedding credentials, files, that sort of thing in various parts of your
environment, wherever you want to. It gives you fake AWS API credentials, for example. And the
only thing that these things do is alert you whenever someone attempts to use those things.
It's an awesome approach. I've used something similar for years. Check them out. But
wait, there's more. They also have an enterprise option that you should be very much aware of.
Canary.tools. You can take a look at this, but what it does is it provides an enterprise approach
to drive these things throughout your entire environment. You can get a physical device that
hangs out on your network and impersonates whatever you want to. When it gets NMAP scanned or someone attempts to log into it or access files on it, you get instant alerts.
It's awesome. If you don't do something like this, you're likely to find out that you've
gotten breached the hard way. Take a look at this. It's one of those few things that I look at and
say, wow, that is an amazing idea. I love it. That's canarytokens.org and canary.tools. The first one
is free. The second one is enterprising. Take a look. I'm a big fan of this. More from them
in the coming weeks. This episode is sponsored in part by our friends at Lumigo. If you've built
anything from serverless, you know that if there's one thing that can be said universally about these applications,
it's that it turns every outage into a murder mystery. Lumigo helps make sense of all of the
various functions that wind up tying together to build applications. It offers one-click
distributed tracing so you can effortlessly find and fix issues in your serverless and
microservices environment. You've created more problems for
yourself? Make one of them go away. To learn more, visit Lumigo.io. Welcome to Screaming in the Cloud.
I'm Corey Quinn. I'm joined this week by Scott Hanselman of Microsoft. He calls himself a partner
program manager, or is called a partner program manager, but that feels like it's barely
scraping the surface of who and what he is. Scott, thank you for joining me.
Thank you for the introduction. I think my boss calls me that. It's just one of those HR titles.
It doesn't really mean, you know, program manager. What does it even mean?
I figure it means you do an awful lot of programming. One of the hardest questions
is you start doing different things, and Lord knows you do a lot of them is that awful question that you wind up
getting at cocktail parties of, so what is it you do exactly? How do you answer that?
Yeah. It's almost like that when you, if you spend any time on Clubhouse recently,
there was a wonderful comedian named Spunky Brewster on Instagram who had a whole thing
where she talked about the introductions at the beginning of a clubhouse thing where it's like you're a multi-hyphenate sandwich artist slash skydiver slash programmer
slash whatever. One doesn't want to get too full of oneself. I would say that I have for the last
30 years been a teacher and a professional enthusiast around computing and getting people
excited about computing. And everything that I do, whether it be writing software, shipping software, or building community, hangs off of the fact that I'm an enthusiastic
teacher. You really are. And you're also very hard to pin down. I mean, it's pretty clear to
basically the worst half of the internet that you're clearly a shill. The problem is defining
exactly what you're a shill for. You're obviously paid by Microsoft, so clearly you push them well beyond the point when it would make sense to.
You have a podcast that has been on for over 800 episodes, which puts this one to shame, called Hansel Minutes.
And that is, of course, something where you're shilling for your own podcast.
You recently started on TikTok, which I can only assume is what the kids are into these days.
You're involved in so many different things and taking so many different positions that it's very hard to pin down what is the stuff you're passionate about.
I'm going to gently push back and say that one word of care to look at it holistically.
I am selling enthusiasm around free and open source software on primarily the Windows platform that I'm excited about. And I am selling you heard the news message to anyone who would listen?
And I taught at both Portland Community College and at Oregon Institute of Technology, teaching web services and history of the web and C-sharp and all that kind of stuff.
So, like, I'm one of those people where if you touch on a topic that I'm interested in, I'll be like, oh, oh my goodness, let's, and I'll just like, you know, knock everything off the desk.
And I'm like, okay, let's build a model, a working model of the solar system here.
Now the orange is the sun.
And then suddenly now we're talking about science like Hank Green or whatever.
My family will ask me, why isn't the remote control working?
And then I've taken it apart and I'm explaining to them how the infrared LED inside works.
And how can you not be excited about all these things? And that's my whole thing about computing and the power that being able to program computers represents to me. I would agree with that. I'd say that one thing that is universal about everything
you're involved in is the expression I heard that I love and going to recapture has been
sending the elevator back down. Oh Oh yeah. Throwing ladders,
ropes,
elevators.
I am very blessed to have made it out of my neighborhood and I am very
hopeful that anyone who is in a situation that they do not want to be in
could potentially use coding,
programming,
it computing as the great equalizer and that they,
and I could somehow lend my privilege to them to get the things done and
solve the problems that they want to solve with computers. I'm sure that you've been asked ad
nauseum about you working free and open source software. You've been an advocate for this
effectively for your entire career. Did no one tell you you work at Microsoft? But that's old
Microsoft in many respects. That's something that we've covered with a bunch of different guests previously from Microsoft. And it's honestly a little,
it's becoming a bit of a tired trope. It was a really interesting conversation a few years back.
Oh, it's clearly all just for show. Well, that is less and less obvious and more and more tired
and frankly, bad take as time progresses. So I want to go back a bit further into my own
personal journey, because it turns out that the number one reason to reach out to you for anything
is tech support on various things. I don't talk about this often, but I started my career
moonlighting as a Windows admin back in the Windows 2003 server days. And it was an experience,
and licensing was a colossal pain, and I finally had enough of it one day in 2006, switched over to Unix administration, BSD, and got a Mac laptop,
and that was really the last time that I used Windows in anger. Now, it's been 15 years since
that happened, and I haven't really been tracking the Windows ecosystem. What have I missed? There's a lot there that you just said. So
first, different people have their religions, and they're excited about them. And I encourage
everyone to be excited about the religion that they're excited about. It's great to be excited
about your thing, but it's also really not cool to be a zealot about your thing. So hey, be excited
about Windows, be excited about Linux, be excited about Mac. Just don't tell me that I'm going to heck because I didn't share your enthusiasm. Let's
just be excited together and we can be friends together. I've worked on Linux at Nike. I've
worked on Mac. I've worked on Windows. I've been there before these things existed and I'll be
there afterwards. Exactly. At some point, being a zealot for a technology just sort of means you haven't been
around the block enough to understand how it's going to break, how it's going to fail,
how it's going to evolve, and it doesn't lead to a positive outcome for anyone.
It fundamentally becomes a form of gatekeeping more than anything else,
and I just don't have the stomach for it.
Yeah, and then ultimately we're just looking for, you know, we've got these smart rocks
that we taught how to think with Lightning
and they're running for loops for them for us.
And maybe they're running them in the cloud,
maybe they're running locally.
So I'm not really too worried about it.
Windows is my thing of choice,
but just like, you know, one person's Honda
is another person's Toyota.
You get excited about the brand that you start out with.
So that's that.
Currently though, Windows has gone, at least in the last maybe 20 years, from one of those things where there's like generational pain and like, Microsoft killed my pappy, and I'll never forgive you.
And it's like, yeah, there was some closed doors and anyone thought anything nefarious.
There's only a true, what's the right thing for the customer?
What is the right thing for the people?
My whole thing is to make it so developers can develop more easily on Windows. So I'm very fortunate to be helping some folks
in a partnership between the Windows division
and the developer division that I work in
to make Windows kick butt when it comes to dev.
Historically, the Windows terminal, or what's called cmd.exe,
which is run by a thing called the console host, has sucked.
It has lagged behind.
So if you drop out to the command line,
you've got the old kind of quote-unquote DOS shell, the CMD processor, it's not really DOS,
running in an old console host, and it's been there for, gosh, probably early 90s. That sucks.
But then you've got PowerShell. And again, I want to juxtapose the difference between a console
or a terminal and a shell. They're different things. There's lots of great third-party terminals in the ecosystem. There's lots of shells to choose
from, whether it be PowerShell, PowerShell Core, now PowerShell 7, or the CMD, as well as Bash and
SigWin and ZSH and Phish. But the actual thing that paints the text on Windows has historically
not been awesome. So the new open source Windows terminal
has been the big thing. If you're a Mac head and you use like iTerm2 or Hyper or things like that,
you'll find it very comfortable. It's a tabbed terminal, split screen, rip and fast, written in
DirectX, C++, et cetera, et cetera., all open source, and then it lets you do transparency
and background colors and ligature fonts and all the things that a great modern terminal would want
to do. That is kind of the linchpin of making Windows awesome for developers, then gets even
awesomer when you add in the ability that we're now shipping an actual Linux kernel, and I can run n number of Linuxes
side by side in multiple panes all within the terminal, this getting to the point about
juxtaposing the difference between a terminal and a console and a shell. So I've got, like,
on the machine that I'm talking to you on right now, on my third monitor, I've got Windows Terminal
open with PowerShell on Windows on the left, Ubuntu 1804 LTS on the right with the
Phish shell. And then I've got another Ubuntu 2004 with Bash, standard Bash shell. And I'm going
testing stuff in Docker and running.NET and Docker and getting ready to deploy my own podcast
website up into Azure. And I'm doing it in a totally organic way. It's not like, oh, I'm just
running a virtual machine.
No, it's integrated.
That's what I think you'd be impressed with.
That right there is the reason that I generally tended to shy away
from getting back into the Windows ecosystem for the longest time.
This is not a slam on Windows by any stretch of the imagination.
My belief has always been that you operate within the environment
as it's intended to be operated within.
And it felt at a time like, oh, install SigWin and get all this other stuff going and run a VM to do it.
It felt like I was fighting upstream in some respects.
Oh, yeah.
That's a great point.
Let's talk about that for a second.
Let's do it.
So SigWin is the GNU utilities that are written in a very nice portable C, but they are written
against the Windows kernel.
So the example I like to use is LS.
You type LS, you list out your directory, right?
So LS and DIR are the same thing for this conversation, which means that someone has
to then call a system call, syscall in Linux, Windows kernel call in Windows, and say, hey,
would you please
enumerate these files and then give me information about them and check the metadata? And that has
to call the file system, and then it turtles all the way down. Cygwin isn't Linux. It's the Bash
and GNU utilities recompiled and compiled against the Windows stuff. So it's basically putting a Bash skin on Windows, but it's not Linux, it's Bash.
Okay. But WSL is actually Linux. And rather than firing up a big 30 gig Hyper-V or virtual box or
Parallels virtual machine, which is like a moment, I'm firing up the VM, call me in an hour when it comes back up, right?
And when the VM comes up, it's like a square on your screen, and now you're dealing with
another thing to manage. The WSL stuff is actually a utility virtual machine built on a lower
subsystem, the virtualization platform, and it starts in less than a second. Like you can start
it faster than you can say one 1,000.
And it goes instantly up.
It automatically allocates and deallocates memory
so that it's smart about memory.
And it's running the actual Linux kernel.
So it's not pretending to be Linux.
So if your goal is a Linux environment
and you're a Linux developer,
the time of Linux on the desktop is happening,
in this case on the Windows desktop.
Where you get interesting stuff and where I think your brain might explode,
is imagine you're in the terminal, you're at the Linux file system at the bash prompt,
and you type notepad.exe.
What would you expect to happen?
You'd expect it to try to find it in the Linux path and fail.
Right, and then you're trying to figure out, am I in this environment?
You're generally tending to run these things in the same looking terminal,
but then all the syntax changes as soon as you go back into the Windows native environment.
You're having to deal with line-ending issues on a constant basis.
Oh, yeah, all that stuff.
Okay.
And as soon as you ask for help, because back in those days,
I was looking primarily into using Freenode as my primary source of support,
because I was network staff on the network for the better part of a decade.
And the answer is I'm having some trouble with Linux.
And the response is, oh, you're doing this within a Windows environment.
Get a real computer, kid, because it's still IRC.
And being condescending and rude to anyone who makes different choices than you do is apparently the way that that was done back then.
Well, today in 2020, because we don't want to just have
light integration with Windows,
and by light integration,
like I don't know if you remember
firing up a virtual machine on Windows
and then like copy pasting a file.
And we were all like, oh my God, that's amazing.
Like I drug the file in
and then it did a little bit of magic
and then moved the file from Windows into Linux.
What we want is to blur the lines between the two so you can move comfortably. When you type explorer.exe or notepad.exe in Linux
on Windows, Linux says no. And then Windows gets the chance, fires it up, and can access the Linux
file system. And since Notepad now understands line endings just happily, you can open up your.profile, your bash profile,
your zsh file in notepad, or here's where it gets interesting, visual studio code,
and comfortably run your windows apps, talking to your linux file system, or in the coming soon,
we've blogged about this and announced it at build last year, run Linux GUI apps seamlessly so that I
could have two browsers up, two Chromes, one Windows and one Linux side by side, which is
going to make web testing even that much easier. And I'm moving seamlessly between the two.
Even cooler, I can type explorer.exe and then pass in dot, which represents the current folder.
And if the current folder is the Linux file system, we seamlessly
have a plan nine server, basically a file server that lets you access your Linux file system from...
Is it actually running plan nine?
It is. It is a plan nine server.
That is amazing. I'm sorry. That is a blast from the past.
I'm glad. And we can run n number of Linuxes. This isn't just one Linux. I've got Kali Linux, two different Ubuntu's,
and I could tar up the user mode files on mine,
zip them up, give them to you,
and you could go and type WSL import
and then have my Linux file system,
which means that we could make a custom
Screaming in the Cloud distro,
put it in the Windows Store,
put it up on GitHub,
build our own, and then the company could standardize on our Linux distro and run it on
Windows. That is almost as terrible idea as using a DNS service as a database. I love it. I'm totally
there for it. It's really nice because it's extremely, the point is it has to have no
friction, right? So if you think about it this way, I just moved, I blogged about this
if people want to go and learn about it.
I just moved my blog of 20 years
off of a Windows Server 2008 server
running under someone's desk at a host into Azure.
This was a multi-month long migration.
My blog, my main site,
kind of the whole Hanselman ecosystem moved up
into Azure. So I had a couple of things to deal with. Am I going to go from Windows to Linux? Am
I going to go from a physical machine to a virtual machine? Am I going to go from a physical machine
to a virtual machine to a platform as a service? And when I do that, how is that going to change
the way that I write software? I was opening it in Visual Studio, pressing F5, and running it in IIS, the Internet Information Server for Windows, for the last 15, 20 years.
How do I change that experience?
Well, I like Visual Studio.
I like pressing F5.
I like interactive debugging sessions.
But I also like saving money running Linux in the cloud.
So how can I have the best of all of those worlds?
Because I wrote the thing in.NET,
I moved it to.NET 5, which runs everywhere, put together a Docker file, got full support for that
in Visual Studio, moved it over into WSL so I can test it on both Windows and Linux. I can go into
my folder on my WSL, my Windows subsystem for Linux, type code, dot, open up Visual Studio Code. Visual Studio
Code splits in half. The Windows client of Visual Studio Code runs on Windows. The server, the
Visual Studio Code server, runs in WSL, providing the bridge between the two worlds. And I can press
F5 and have interactive debugging, and now I'm a Linux developer, even though I've never left
Windows. Then I can right-click publishlish in Visual Studio to GitHub Actions,
which will then throw it into the cloud.
And I moved everything over into Azure, saved 30%, and everything's awesome.
I'm still a Windows developer using Visual Studio.
So it's pretty much, I don't know, non-denominational.
We're kind of mixing the streams here.
It is, and let me take it a step further. When I'm on the road, the only computer I bring with
me these days, well, in the before times, let's be very realistic. Now when I'm on the road,
that means going to the kitchen for a snack. The only computer I bring with me is my iPad Pro,
which means that everything I do has a distinct application. For when I want to get into my
development environment, Historically,
it was use some terminal app. I'm a fan of Blink, but everyone has their own. Don't email me.
And everything else I tended to use looked an awful lot like a web app. If there wasn't a
dedicated iOS app, it was certainly available via a web browser, which leads me to the suspicion that
we're almost approaching a post-operating system world where the future development operating system
begins to look an awful lot,
and people are going to yell at me for this,
Visual Studio Code.
It supports a bunch of remote activities.
Now that GitHub Codespaces is available,
at least to my account,
I don't know if it's generally available yet,
but I've been using it.
I love it.
Everything it winds up doing is hosted remotely in Azure.
I don't have to think about managing the infrastructure. It's just another tab within
GitHub, and it works. My big problem is that I'm trying to shake effectively 20 years of muscle
memory of wrestling with Vim, and it takes a little bit of a leap in order to become comfortable with
something that's a more visually oriented IDE.
Why don't you use the VS Vim, Jared Parsons' Vim plugin for Visual Studio?
I've never yet found a plugin that I like for something else to make it behave like Vim.
Vim Parader is a browser extension.
All of it just tends to be unfortunate and annoying in different ways.
For whatever reason, the way that I'm configured or built,
it doesn't work for me in the same way.
And it gets back to our previous conversation
about using the native offering as it comes
rather than trying to make it look like something else.
Okay. I would just offer to you and for other Vim people
who might be listening that VS Code Vim
does have 2.5 million installs,
over 2 million people happily using that.
Come to find it only has 200,000 actual users.
There was an installation bug, and one person just kept trying over and over and over.
I kid, I kid.
No, seriously, though, these are actual Vim heads,
and Jared Parsons is a developer at Microsoft who is like,
out of his cold, dead hands, you'll pull his Vim.
So there's solutions.
Whether you're Vim or Emacs, you know, we welcome all comers. But to your point, the Visual Studio, once it got split in half, where the language
services, those services that provide context to Python, Ruby, C Sharp, C++, etc. Once those
extensions can be remoted, they can run on Windows, they can run on Linux, they can run on the cloud. So VS Code being split in half as a client-server application has really made it shine. And for me,
that means that I don't notice a difference whether I'm running VS Code on Windows or
running VS Code to a remote Linux install, or even using SSH and coding on Windows remotely
to a Raspberry Pi. I love the idea.
I've seen people do this in some respects
back in the days of CodeServer being a project on GitHub.
It took a fair bit of wrangling to get that to work
in a way that wasn't scarily insecure and reliable.
But once it was up and running,
you could effectively plug a Raspberry Pi in
underneath your iPad and effectively have
a portable computer on the go that did local development.
I'm looking at this and realizing the future doesn't look at all like what I thought it was going to.
And it's really still kind of neat.
There's a lot of value in being able to make things like this more accessible.
And the reason I'm excited about a lot of this, too, is that aligned with a generous free tier opportunity,
which I don't know final pricing for things like GitHub Codespaces,
suddenly the only real requirement is something that can render a browser and connect to the internet for an awful lot of folks to get started. It doesn't require a fancy local overpowered
development machine the way a lot of things used to. And yes, I know there are certain kinds of
development that are changing in that respect, but it still feels to me like it has never been easier
to get started with all of this technology than ever before,
with the counterargument that there's so many different directions to go in.
Oh, I want to get started using Visual Studio Code
or learning to write JavaScript.
Great. How do I do this?
Let me find a tutorial.
And you find 20 million tutorials, and then you're frozen within decision. How do I do this? Let me find a tutorial. And you find 20 million tutorials,
and then you're frozen within decision. How do you get past that?
Yeah, there is and always will be, unfortunately, a certain amount of analysis paralysis that
occurs. I started a TikTok recently to try to help people get involved in coding,
and the number one question I get, and I mean thousands and thousands of them, are like,
where do I start? Because everyone seems to think that if they pick the wrong language, that will be a huge mistake. And I can't think of a wrong language,
you know, like what human language I learned, you know, English, Chinese, Arabic, Japanese,
pick one and then learn another one if you can, right? Learn a couple. But I don't think there's
a wrong language to learn because the basics of computer science are the basics of computer
science. I think what we need to do is remind people that computers are computers, no matter
whether they're an Android phone or a Windows laptop. And that any forward motion at all is a
good thing. I think a lot of people have analysis paralysis and they're just afraid to pick stuff.
I agree with what you're saying, but I'm also going to push back gently on what you're saying
as well. If someone who is new to the field was asking me what language to learn, I would be hard-pressed
to recommend a language that was not JavaScript. I want to be clear, I do not understand or know
JavaScript at all. But it's clear from what I'm seeing that that is in many ways the language of
the future. It is how front-end is being interacted with.
There are projects from every cloud provider
that wind up managing infrastructure
via JavaScript primitives.
There are so many on-ramps for this.
And the user experience for new folks is phenomenal
compared to any language that I've worked with in my career.
Would you agree with that
or disagree with that assessment?
So I've written
blog posts on this topic, and my answer is a little more, it depends. I say that people should
always learn JavaScript and one other language, preferably a systems language, which also may be
JavaScript. But rather than thinking about things language first, we think about things solutions
first. If someone says, I want to do a lot of data science, you don't learn JavaScript.
If someone says, I want to go and write an Android app, yeah, you could do that in JavaScript,
but JavaScript is not the answer to all questions.
Just as the English language, while it may be the lingua franca, no pun intended,
it is not the only language one should pick.
I usually say, well, what do you want to do?
Well, I want to write a video game for the Xbox. Okay, well, you're probably not going to do that
in JavaScript. Oh, I want to do data science, right? I want to write an iPhone app. JavaScript
is the language you should learn if you're going to be doing things on the web, yes. But if you're
going to be writing the backend for WhatsApp, then you're not going to do that in JavaScript.
This episode is sponsored by ExtraHop.
ExtraHop provides threat detection and response for the enterprise, not the starship.
On-prem security doesn't translate well to cloud or multi-cloud environments,
and that's not even counting IoT.
ExtraHop automatically discovers everything inside the perimeter,
including your cloud workloads and IoT devices, detects these threats up to 35% faster, and helps you act immediately.
Ask for a free trial of detection and response for AWS today at extrahop.com slash trial.
I think you're right. It comes down to what is the problem you're trying to solve for?
Taking the analogy back to human languages, what is your goal?
Is it just to say that you've learned a language and to understand, get a glimpse of another culture through its language?
Yeah, there is no wrong answer.
If it's that you want to go live in France one day and participate in French business discussions, I have a recommendation for you, and it's probably not Sanskrit.
At some point, you have to align with what people want to do
and the direction they're going in with the language
selection. What I like about JavaScript
is, frankly, its incredible versatility
as far as problems to which
it can be applied. And without it,
I think you're going to struggle as you
enter the space. My first language was
crappy Perl slash Bash, because
everyone does Bash when you're a systems administrator.
And then it has later evolved now to crappy Python as my language of choice. But I'm not
going to be able to effectively do any front-end work in Python, nor would I attempt to do so.
My way of handling front-end work now is to have the good sense to pay a professional.
But if you're getting started today and not sure what you want to do in your career,
and my opinion has always been that if you think you know what you want to do in your career. And my opinion has always been that if you think you know what you want to do in your career, there's a great chance you're going to be wrong. But pursuing the thing
that you think you want to do will open other opportunities and doors and present things to
you that will catch your interest in a way you might not be able to anticipate. So especially
early on in careers, I like biasing for things that give increased options, that boost my optionality as far as
what I'm going to be able to do. Okay, I think that's fair. I think that no one ever got fired
for picking IBM. No one ever jeopardized their career by choosing JavaScript. I do think it's
a little more nuanced, as I mentioned. It absolutely is. I am absolutely willing to
have a disagreement with you on that front. I think the thing that we're aligned on is that whatever you pick, make sure it's something you're
interested in. Don't do it just for, like, well, I'm told I can make a lot of money doing X.
That feels like it's the worst reason to do things in isolation.
That's a tough one. I used to think that too, but I am thinking that it's important to note and recognize
that it is a valid reason to get into tech, not for the passion, because for no other reason than
I want to make a lot of money. Absolutely. I could not agree with you more. And that is
something I've gotten wrong in the past. Yeah. And I have been a fan of saying, you know,
be passionate and work on these things on the side and all that kind of stuff.
But all of those things involve a lot of assumptions and a lot of privileges that,
you know, people have that you have spare time and then you have a place to work on these things.
You know, I work on stuff on the side because it feeds my spirit. If you work on woodworking or
drones or gardening on the side, you know, not everything you work on the side has to be steeped
in hustle culture and having a startup or something that you're doing on the side.
Absolutely. If you're looking at a position of wanting to get into technology because it leads to a better financial outcome for you, and that is what motivates you,
you're not wrong. Exactly. The idea that, oh, you have to love it or you'll never succeed.
I think that some of the worst advice we ever wind up giving folks early in their career,
particularly young people, is follow your passion. That can be incredibly destructive advice in some context,
depending upon what it is you want to do and what you want your life to look like.
Yeah, exactly.
One of the things that I've always been appreciative of from afar with Microsoft has been
there's an entire developer ecosystem.
And historically, it's focused on languages I can barely understand. ASP.NET, the C sharp is
deep in that space. F sharp, I think is now a thing as well. There was an entire there's an
entire ecosystem around this with Visual Studio, the original not Visual Studio code turns out
naming is one of those things that no tech company seems to get right.
But it feels almost like there's an entire ecosystem there that for those of us who spent significant time,
and I'm speaking for myself here, not you,
in the open source community,
talking about things like Perl and whatnot,
I never got much exposure to stuff like that.
I would also classify enterprise Java
as being in that direction as well.
Is there a bifurcation there that I'm not seeing? Or was I just never talking to the right people? All of the above?
Maybe I was just had maybe I had blinders on, didn't realize it.
There was a time when the Microsoft developer ecosystem meant write things for Windows,
do things on Windows, use languages that Microsoft made and created. And now with the rise of the cloud and with the
rise of software as a service, Microsoft is a much simpler company, which is a funny thing to say for
such a complicated company. Microsoft would love to run your for loop in the cloud for money.
We don't care what language you use. We want you to use the language that makes you happy.
Somewhere around five to seven years ago in the developer division, we started optimizing for developer happiness.
And that's why you can write Ruby and Perl and Python and C and C++ and C Sharp and all those
different things. Even C Sharp now and.NET is owned by the.NET Foundation and not by Microsoft.
Microsoft, of course, is one of the primary users, but we've got a lot of...
Samsung is a huge contributor.
Google is a huge contributor.
Amazon Web Services is a big contributor to.NET.
So Microsoft's own zealotry towards
and bias towards our own languages
has kind of gone away
because Office is on an iPhone, right?
Like, anywhere that you are will go there. So we're really going
where the customer is rather than trying to funnel the customer into where we want them to be,
which is really an inverted way of doing things over the way it was done 20, 30 years ago,
in my opinion. This gets back to the idea of the Microsoft cultural transformation.
It hasn't just been an internal transform. It's been something that is
involved with how it's engaging with its customers, how it's engaging with the community,
how it's becoming available in different ways to different folks. It's hard to tell where a lot of
these things start and where a lot of these things stop. I don't pretend to be a Microsoft fanboy,
quote unquote, but I believe it is impossible to look at what has happened,
especially in the world of cloud,
and not at the very least respect what Microsoft has been able to achieve.
Well, I came here to open source stuff.
I'm certainly not responsible for the transformation.
I'm just a cog in the machine.
But I can speak for the things that I own,
like.NET and Visual Studio Community.
And I think one of the things that we have gotten right is we are trying to create zero-distance products.
You could be using Visual Studio Code, find a bug, suggest a feature,
have a conversation in public with the PMs and devs that own the thing, get an insider's build a few days later,
and see that promoted to production within a week or two. There is zero distance between you,
the consumer, and the creator of the thing. And if you wanted to even fix the bug yourself,
submit a pull request and see that go into production, you could do that as well.
You know, some of our best
C-sharp compiler folks are not working for Microsoft and they are giving improvements.
They are making the product better. So zero distance in many ways. If you look at like
the other products at Microsoft, like PowerToys is a great thing, which is going to get an incubator
for Windows features. We're adding stuff to the PowerToys open source project,
like launchers and a thing called Fancy Zones that's a window tiling manager. You know,
features that prosumers and enthusiasts always wished Windows could have, they can now participate
in, thereby creating a zero-distance product in Windows itself. And I want to point out as well that you
are still Microsoft, you, the collective you. I suppose you personally, that is where your email
address ends, but you're still Microsoft. This is still languages and tools and SDKs and frameworks
used by the largest companies in the world. This zero-distance approach is being done on things that serve as
banks, who are famously not the earliest adopters of some code that I wrote last night. It's probably
fine. Do you know what my job was before I came here? Tell me. I was the chief architect at a
finance company that created software for banks. I was responsible for a quarter of the retail
online banking systems in North America built on.NET and open source software.
So you've lived that world. You've been that customer.
Trying to convince a bank that open source was a good idea in the early 2000s was non-trivial.
You know, sitting around in 2003, 2004, talking about agile and continuous integration and build servers,
and then going and saying, hey, you should use this software, trying to deal with lawyers and
explain to them the difference between the MIT, Apache, and GPL licenses and what it means to
their bank was definitely a challenge. And working through those issues, it has been challenging.
But open source software now pervades. Just go and look at the license.txt in the Visual Studio program files folder to see all of the open source software that is consumed by Visual Studio.
One last topic that I want to get to before we call it a show is that you've spent a significant portion of your career, at least recently, focusing on more or less where the next generation of engineers, developers, et cetera, come from.
And to that end, you've also started recently with TikTok, the social media platform. Are those two
things related first off, or am I making a giant pile of unwarranted assumption?
I think that is a fair assumption. So what's going on is I want to make sure that as I
fade away and I leave the software industry in the next, you know, end number of years, that I'm setting up as many people as possible for success.
That's where my career started when I was a professor.
And that's hopefully where my career will end when I am a professor again.
Hopefully my retirement gig will have me teaching at some university somewhere.
And in doing that, I want to find the next million developers, right?
Where are they?
The next 10 million developers.
They're probably not on Twitter.
They might be a lot of different places.
They might be on Discord.
They might be on Reddit.
They might be on forums that I haven't found yet.
But I have found on TikTok a very creative
and for the most part, kind and inclusive community.
And both myself and also recently the Visual Studio Code team
have been hanging out there and sharing our creativity
and having really interesting conversations about how you, the listener,
can, if not be a programmer, be a person that knows better
the tools that are available to you to solve problems.
So I absolutely appreciate and enjoy the direction that you're
going in. But again, people invite you to things and then spring technical support questions on you.
Can you explain what TikTok is? I'm still trying to wrap my head around it because I turned around
and discovered I was middle-aged one day. Sure. Well, I mean, I am an old man on TikTok, to be clear. TikTok, like Twitter, revels in its constraints.
If you recall, there was a big controversy when Twitter went from 140 characters to 280 because people thought it was just letting the, you know, the constraint that we were so excited about, which was artificial because it was the length of a standard message service text.
I was one of those people who bitterly protested it.
I was completely wrong.
Right.
But the idea that something is constrained,
TikTok is either 15 seconds or less than 60.
It's similar to Vine in that it is a tiny video.
What can I do in one minute?
Additionally, before they allowed uploading of videos,
everything was constrained within the TikTok editor. So people would do amazing and intricate 30 and 40 shot transitions within a 60 second
period of time.
But one of the things I find most unique about TikTok is you can reply to a text comment
with a video.
So I make a video.
Maybe I do 60 seconds on how to be a software engineer.
Somebody replies in text. I can then reply to that text with a video, maybe I do 60 seconds on how to be a software engineer. Somebody replies in text.
I can then reply to that text with a video.
And then a TikTok creator can do what's called a stitch and reply to my video with a video.
So I could take 15 seconds of yours, a comment that you made and say, oh, this is a great
comment.
Here's my thoughts on that comment.
Or we could even do a duet where you record a video and then I record one side by side. And we either simulate that we're actually having a conversation or I react
to your video as well. Once you start teaching TikTok about yourself by liking things, you curate
a very positive place for yourself. You might get on TikTok not logged in and it's dancing and you
might find some inappropriate things that you don't necessarily want to see or you're not interested in.
But one of the things that I've noticed as I talk about my home network and coding is
people will say, oh, I finally found adjective TikTok.
I finally found coding TikTok.
I finally found IT TikTok.
Oh, I'm going to comment on your post because I want to stay on networking TikTok.
And then your feed isn't just a feed of the people that you follow,
but it's a feed of all the things that TikTok things you're excited about.
So I am on this wonderful TikTok of linguistics and languages,
and I'm learning about cultures, and I'm on indigenous TikTok,
and I'm on networking TikTok.
And the mix of creativity and the constraint of just 60 seconds has been really a joy.
And I've only been there for about a month,
and I'm blessed to have 80,000 people hanging out with me there.
It sounds like you're quite the fan of the platform,
which alone in isolation is enough to get me to look at it in more depth.
I am a fan of creativity.
I would also say,
though, it's very addictive. Once you find your people, I've had to put screen time limits on my own phone to keep me from burning time there. That is all of tempting, provocative, and disturbing.
You should hang out with me on YouTube then. I just got my 100,000 YouTube silver play button
in the mail. That's where I spend my time doing my long form. I just did actually 17 minutes on
WSL and how to use Linux. That might be a good starter time doing my long form. I just did actually 17 minutes on WSL and
how to use Linux. That might be a good starter for you. It very well might. So if people want
to learn more about what you're up to and how you think about the wide variety of things you're
interested in, where can they find you? They should start at mylastname.com, Hanselman.com.
They used to be able to Google for Scott, and I was in an
epic battle with Scott brand toilet paper
tissue, and then they
trademarked the name Scott.
And now I'm somewhere in the distant second or third
page. It was a tragedy.
But as an early comer to the internet,
it was me and Scott Flyrods
on the first page for many, many years.
And then...
If it helps, you and Scott Flyrods are both on page two.
Oh, well, the tyranny of the Scott Toilet Paper conspiracy against me has been problematic.
Exactly.
Thank you so much for taking the time to speak with me today.
I really do appreciate it.
It's my pleasure.
Scott Hanselman, Partner Program Manager at Microsoft, and so much more.
I'm cloud economist Corey Quinn.
This is Screaming in the Cloud.
If you've enjoyed this podcast, please leave a five-star review on your podcast platform of choice. Whereas if you've hated this podcast, please leave a five-star review on your podcast platform of choice,
along with a crappy comment that starts with a comment that gatekeeps a programming language so we know to ignore it.
If your AWS bill keeps rising and your blood pressure is doing the same,
then you need the Duck Bill Group.
We help companies fix their AWS bill by making it smaller and less horrifying.
The Duck Bill Group works for you, not AWS.
We tailor recommendations to your business, and we get to the point. Visit duckbillgroup.com to get started.
This has been a humble pod production stay humble