I'm Scott Hanselman, ask me anything!

shanselman profile image Scott Hanselman Dec 05, 2017

My name is Scott Hanselman. I'm a programmer, teacher, and speaker. I work in Open Source on ASP.NET and the Azure Cloud for Microsoft out of my home office in Portland, Oregon.

I'm excited about community, social equity, media, entrepreneurship and above all, the open web.

Ask me anything!

Scott! First time caller, long time listener. But seriously, you're a great voice for social justice and I appreciate the way you use your platform to highlight issues in communities that you might not necessarily belong to. What inspired you to become this person?

Not sure, I've always been this guy. I think that people in the majority can easily forget what it's like to be in the minority. I think it's also easy to for some to forget that YOUR success isn't to my detriment. Your rise isn't my fall. I do my best to "lend my privilege" (age, experience, gender, ability, race, etc) whenever I can do lift up the voices of folks who may be missing one or more of those privileges.

Ad: Subscribe to and listen to my podcast! ;) hanselminutes.com/archives

Great question. Scott, your platform is huge and I, as a black woman in this industry, am grateful to have your voice in my corner.

My pleasure, and I'm happy that we're in this industry together!

How do you prepare for a brand new talk? Any specific routines you run through leading up to/day of?

I did a video on preparing for a new talk from scratch here if you have a PluralSight sub or want a trial: pluralsight.com/courses/hanselman-....

I start with the number of minutes I'm trying to fill. So if it's a 30 min talk, I figure I need 6 five minute points. Then I think "what can I show that's interesting for five minutes?" Then I get my half dozen demos/points/concepts, and I move them around/reorder them into a story arc. I try to put myself in the head of the watcher/listener/attendee...figure after each demo they will say "So what?" so your next point or demo should answer that question.

How do you mentally prepare (ie. any speaking anxiety)?

I know some people practice the talk in front of anyone who will listen, while other people feel way more comfortable not practicing because the first time feels more 'authentic'.

And some people need specific things to help ground them -- like...being really careful about what they eat beforehand, etc.

I'm a Type 1 Diabetic so I only eat what I KNOW and what I'm comfortable with, for sure. I always sleep well and avoid going to the speaker parties and stuff the day before. Always I focus on the talk, not the stuff around it.

how often do you recycle talks? do you have 3 talks you can give at the drop of a hat and another...5 always brewing? how do you choose which conferences to speak at?

This is a great course, it helped me figure out my speaking style. Thanks!

Hello Scott, it's my pleasure! I hope you're doing well.

My question to you: What do you think of soft skills and personal development as must-haves for software developers these days? In my career so far (I'm in my thirties) I experience that the stereotyped code monkey seems to disappear and it's more important than ever that you overcome your shyness and learn to communicate (face-to-face) with your team, become self-aware and just try to be a person you'd like to hang out with.

Thank you very much,
Patrick

I think you're right on. While there will always be shy folks and shy folks in software, the fact is that most of us are not writing code in a vacuum. We make this software FOR PEOPLE so getting outside our comfort zones and looking people in the eye and understanding/empathizing their situation is absolutely essential for good software.

Hi Scott! I'm sorry to say I'm not familiar with you or your work, but I'm going to remedy that quickly. I see you do work with ASP.NET, which is highly relevant to my current work. I work in an organization that has been using ASP.NET since 1.1 - mostly for small one-page web forms, but occasionally for larger database apps. We're up to using .NET 4.5 now, but I'm struggling to figure out where we go next. MVC and .NET Core seem like WAY too much overhead for the small projects we do here. I took a brief look at Razor Pages, but even that looks like more overhead/bloat than we currently have. What would you recommend for someone writing very small .NET apps and where do you see the future of .NET headed?

With respect, not sure where you got "overhead and bloat" but I'm happy to chat about it.

.NET and MVC are VERY lightweight. Like 5-10x less going on than with previous versions of .NET. HttpRequests went from 30k overhead to like 7k. Razor Pages has many fewer moving parts and concepts.

I'd start with Razor pages or MVC (which Razor is built directly on) for basic apps. You can scaffold out most CRUD (Create, Read, Update, Delete) apps in 30 min. Maria and I just did a course on this: mva.microsoft.com/en-US/training-c...

Appreciate the guidance, Scott. Trying to make sense of .NET vs. Core vs. MVC vs. Razor has been a bit daunting. Perhaps overhead and bloat weren't the right words to use. I didn't mean it in terms of server load so much as the amount of code I'd have to write as a developer. The couple of examples I've seen for MVC and Razor involved a lot more code than I'd write to do something similar in .NET 4. But like I said, I only took a brief look recently so I'm still gathering information and learning. I'm glad to hear MVC/Razor is very lightweight and I will definitely check out your course.

Cool. Do reach out if I can help explain and support.

Hi Scott. Thanks for doing the AMA.

You came to Abstractions Con in Pittsburgh back in 2015. I went to the conference but missed your talk.

I've followed you about on Twitter and I remember, I am hoping correctly, that you mentioned taking a vacation and trying to reconcile the feeling that you may lose your house when you did with the fact that you now have that option without losing everything.

Have you been able to reconcile this? What would your advice be for people who have come from meager means to getting a developer or other tech job that affords you the luxury and privilege to do things like take a vacation?

It's hard and it never really goes away. I have some money but I also have issues with concerns around food security. So I save. A LOT. I spend very little and I shop at Goodwill/Thrift shops. I repair old computers and pay it forward and give them away.

And when I DO take a vacation (I am doing this soon) I remind myself every morning how AMAZING it is that I get to take a vacation and I EARNED IT. You did too!

I repair old computers and pay it forward and give them away.

That is awesome, and definitely something I want to do in the future. Would love to read more about that if you're willing to share.

  1. What's a book, any book, you'd recommend to a soon-to-be-college CS grad?
  2. What is one time you failed, and what did you learn from it?
  1. I really like "Code by Petzold" amazon.com/Code-Language-Computer-...

  2. Today, this week, or this year? ;) I fail all the time. The trick is to fail fast, fail often. You can't make changes if you don't have a failure case to compare to.

How do you continue to keep engaged with the various issues impacting tech today?
Have you burned out and if so, how did you overcome it?

I burn out a little bit, but I try to avoid Major Burn Out. I just turn off. I didn't email or code for a week last month. Just tuned out. This December I'll take at least two weeks off and work on ME. Self-care matters. If you can (given economic factors, etc) you gotta just UNPLUG. Gotta unplug before you plug back in and keep engaged.

What's your go-to unplugging activity?

Competitive Sleeping! I can sleep at the Olympic level. ;)

I play with my kids, my Nintendo Switch and Xbox, walk, Marvel movies, Netflix, work out, books, 3D printing.

Hey Scott,
Thank you for participating in this AMA.

I'd like to ask you about speaking.
How do you find and secure speaking engagements?
What are your recommendations to find the right opportunities?

I fill out "CFPs" (calls for papers). It's like a job application for a talk you want to give. Figure 10 to 1 return. Start with a brownbag at your job, then local meetups, then local or regional code camps, then larger conferences. Also consider ComedySportz (really) and Toastmasters.

How do you like remote work? Is it ever lonely?

It's definitely lonely. I try to get to get out of the house in someway every day. Even just sitting at a cafe is enough to feel more connected. I also do Skype Pair Programming and Google Hangouts. Sometimes I'll just Skype a co-worker and put them on another monitor and we'll work together quietly, like cube-mates.

This is a really great idea. I think I will do this eventually with the team.

Getting to a cafe is something I am looking at doing as well, perhaps a library too.

Even the Mall. Just to feel the electricity and be reminded that there are other humans.

Do you feel that the benefits of remote work outweighs the loneliness, given that you can beat the loneliness?

Yes, if only in the flexibility of hours. You can work whenever (although studies show that Remote Workers tend to work more hours than non-Remote) and sometimes take Friday afternoon off.

Can you pitch me on Skype and/or VS Live Share? I've not yet used the latest and greatest, but would love to hear from someone in the know. What's on the horizon that I should get excited about?

Totally forgot about VS Code live share.

VS Code Live Share (when broadly available) is gonna be amazing. I have a podcast on it in a few weeks. It's so much more than "google docs for code" that some other editors have. You can do simultaneous collaborative debugging...but without installing any of the dependencies. Think of it as "can you look over my shoulder at this code" but without screensharing. You can explore the code, goto definition, refactor, debug and more.

Thanks so much for doing this, Scott.

When I met you, you recommended to me the great talk by @anjuan Lending Privilege and I wrote about it here.

What's the next talk you'd recommend?

P.S. if you have a YouTube link for the talk, you can drop it in dev.to via this syntax: {% youtube 9z-Pdfxxdyo %} 😁

Thanks again.

I'd say Anjana Vakil's Learning Functional Programming with Javascript

Thanks a lot. This will be timely to share with the team too.

Thanks for recommending me to @ben , Scott! I don't think I can run out of great things to say about you. You're a great friend and a treasure to the tech community. Thanks for everything you do!

That's the great thing about Lending Privilege, my friend. It can be circular and self-sustaining!

Any tips for us at dev.to to keep pushing and improving on our mission to be an inclusive environment for all the devs of the world?

Competitive Programming Vs Open Source Contributions for undergrads to concentrate?
Competitive programming isn't my thing but most corportates have coding interviews to quality :/
What's your take?

I've never been into Competitive Programming. It's fine but it's like competitive Street Fighter 2. There's someone who is the best SFII player in the world, and then there's the rest of us. If it feeds your spirit and makes you happy, sure, go do competitive programming. But in 25 years of hiring it's only ever been a "oh, that's interesting" bullet on a resume, IMHO.

So much <3 for SFII reference. Puts quarter on arcade box. "I got next."

Scott! I want to say that you are one of the few early inspirations for me to become a developer. Two years ago when I began thinking about being a developer, I googled "What is a full stack developer". It led me to your video(below) in which you encourage folks to "stretch a little deeper than they are used to" but still accept that we can't know it all. I may not have understood everything you said then but it was enough to fuel my interest and push me through. So I'm wondering, do you also have a personal inspiration in the recent years?

I find folks like @anjuan and Saron Yitbarek from CodeNewbies to be inspirational.

How did you get started?

Thanks for doing this by the way.

When I was 11-12 I was getting into situations with folks I didn't need to be hanging out with. However, a teacher noticed I was always in the back of the room on the computer. We couldn't afford a computer so she worked a deal where I could borrow the Apple on the weekends as long as it was back by Sunday night. If that teacher hadn't lent that privilege to me, I am not sure where I'd be.

Nice!
I also wanted to know how you got started as a teacher, speaker and entrepreneur. Sorry for the vague question.

Well, I needed credits for my degree, so I started as an Adjunct Professor at a state school. I started speaking by going to local meetups and thinking "that's cool, maybe they'd like to hear about this thing I'm working on at my job."

That's cool. I want to start speaking one day and doing talks so I'm always interested in these things. Thanks for the response Scott!

Hey Scott. Glad to see you joining the dev.to community.

Here are my questions for you.

  1. What do you think that are the most basic concepts and knowledge that a new developer need to have.

  2. Do you have any book recommendations concerning ASP.NET Core, .NET Core and Design patterns?

  3. Do you know anything about the signalr on the .net core (Like when can we expect a production ready version to come out.

Thanks for being an inspiration.

  1. A general understanding of "The stack" from CPU up to the language you're using. Just know the call stack, and then decide where you want "magic" to happen. For some, Assembly Language is "the metal" and for some, JavaScript is "the metal." Both are fine, just be conscious and aware of the system.

  2. Not yet, it's going to fast. Start at dot.net/architecture

  3. I'm told Q1 next year. Work is happening now.

Hey Scott, thanks for the good work you've done!

What are some programming/tech fads that you were excited about, but never went too far?

Object Databases were a big thing in the late 90s, then that turned into Document Databases that made more sense.

Stateful systems were big in the 90s, with large OOP systems, but those went away as well.

There's always something exciting and it will all eventually go away. 3D movies? ;)

As a full time glasses wearer, I sure hope 3D movies do!

Interesting that stateful systems went away, since React seems to be getting bigger and more popular.

Sure, but Stateful systems on the client side where state can easily be held and can scale is different from writing, say, Amazon.com with a stateful design.

What has changed the most at Microsoft since you joined? It definitely seems like a new company these days.

It is but it didn't happen overnight. Lots happened and lots of internal pushing, but I'd say:

  • Software as a Service, Office 365, etc. Office isn't $499 any more, it's $5 a month.
  • Azure - Microsoft will run your for loop (whatever language you like!) in the cloud for pennies
  • Mobile - MSFT lost with Windows Mobile so they instead made THE BEST mobile apps. Office on iPad is AMAZING.

All this and more.

Hi Scott! As a fellow type 1 diabetic and tech enthusiast I've enjoyed following your posts on diabetes-related tech for some time now.

I'm curious about how you manage all of your data. I use Nightscout to store CGM data (which I think is fantastic), but on my Android phone I use a separate app to store the carb amounts for food that I eat, which doesn't talk to Nightscout. And, I have a tandem pump which doesn't talk to either of those apps, which I have to manually plug into my computer to upload into their isolated cloud solution. It irks me that I can't just have one datastore that saves all of this together! Are you in a similar boat as me, or have you found a good way to merge these different datastores together?

Just saying your profile picture totally fooled me. πŸ™ˆ

I use an iPhone which has Apple's Health solution. Their health system is integrated into the phone and every app writes to it. So any food database app writes to it and all can see it. I use LoopKit which sends the food details up to Nightscout as well. I realize you're team android, but... ;)

Hi Scott, there's a lot of criticism of Computer Science in general and university degrees in particular. I saw a tweet from Yehuda Katz just the other day where he essentially said you probably shouldn't get a degree it's most likely a waste time of time, just build things.

Do you feel like there's a place for Computer Science degrees in the future and why?

I think there IS value in degrees...if not Comp Sci, any degree in general. I have a Software Engineering Degree (not CompSci, which is more theoretical). A (good) degree teaches one to stick with something longer than a few months, how to think, how to study, how to stay on task, how to solve larger systems, and how things all fit together.

I think the issue may not be with Comp Sci degrees but rather with BAD Comp SCi departments and lousy teachers.

Hey Scott, Microsoft is about open source, but I'm not seeing this on the operating system itself, and further, the push to the cloud makes it virtually impossible to audit the systems I put my information in. What's the roadmap to truly be open?

I know I already got my question answered, but if you still have time for one more:
When is the release of your book "Relationship Hacks"? The table of contents just sounds so interesting to me. ;)

Thanks again,
Patrick

Any advice for junior developers about managing learning versus contributing at work?

Not sure I follow. You mean how to spend your spare time? Studying and learning vs doing your job?

Ah, I mean studying and learning vs doing your job while at work. As a junior dev I sometimes feel like I've spent too much time learning and not building/fixing bugs/contributing to the codebase, and perhaps you have some advice?

The learning never stops. For the first 3-5 years you'll be learning 40-60% of the time. Strive to find that balance. Get a mentor and ask them, honestly, if they think you're balancing work with learning.

Hi Scott,

Just a quick question from the Netherlands here. I enjoy hearing you speak and write but I often wonder, how do you decide when to blog and what to blog about? I have my own website and I regularly think about blogging, but don't know what about. Sometimes I have done something that I think about, hey maybe this is interesting for other people but I find it hard to speak/type english on a tech level. Other times I just think, meh would this actually interest people.

And where do you get your inspiration from building al the cool stuff with the raspberry pies and stuff!? :)

I would stop you with the "would this actually interest people" part. Does it interest YOU? Then blog about it!

I am not sure about inspiration...if I see it on twitter I think, maybe I can do that!

Thanks for the reply! Alright, as soon as I think of my next subject, I'll do it!

Hi Scott, I know you are a huge advocate for open source and also have been advocating from within Microsoft for years. Can you explain your role in Microsoft's organizational shift to become more open?

Thanks for all of your work, been following you for years!

I went to Microsoft 10 years ago from an open source focused job and world with the specific plan to open source as much as possible at Microsoft. However, there's dozens if not hundreds of others that were pushing internally at the same time, and many more that joined around the same time and pushed and pushed. Fortunately we've trained Microsoft Legal to let us be "open by default" vs "just say no" but it's been 10-15 years of pushing. As to my specific role, just consider me one of the many voices both inside and out that pushed. It's not fair for any one person to take credit.

Thanks for your reply and many props to you and those like you who have and continue to advocate for a more open world. It's definitely changed how I build software!

Now that you've reached an open source .NET world, does community criticism weigh on you and your team? The community standups seem mostly light-hearted, but does having a community to answer to weigh more heavily on you and the team at times?

Hi Scott!!!!!

Just recently asked you on Twitter, but would love your advice in what to use for ASP.NET Core development on a Mac.

Would you recommend Visual Studio for Mac or stick with Visual Studio Code?

Thanks in advance!!

Depends on if you are doing just a website or if you're doing a website/api with a mobile front end. VS for Mac will be great for mobile apps, and VS Code is a lightweight code editor. I'd say, use both!

Mmm... I mainly focus on website only. But I would try both!
Thanks!