
Shell scripting, with Steve Lee (Microsoft) - S04E04
05/18/23 • 32 min
In this episode, we speak with Steve Lee, principal software engineer manager on the PowerShell team at Microsoft. We start with what PowerShell is and why its object-based approach is interesting, then get into what it was like open sourcing a project at Microsoft back in 2016. We discuss the transition to using GitHub and what it's like managing an open source project at scale, bouncing community with features, bugs, and requests from users, alongside Microsoft’s goals. We also talk about PowerShell and its relation to AI, before we get some insight into what we can expect from it in the near future.
Things mentioned:
- Microsoft
- PowerShell
- OpenSSH
- Unix
- Linux
- WMI
- WinRM
- DMTF
- Physical Computer System View
- WS-Man
- Azure
- .Net
- PowerShell Gallery
- Visual Studio
- Python
- GitHub
- Pester
- ChatGPT
- Doug Finke
- Visual Studio Code
- PowerShell Team blog
ABOUT STEVE LEE.
Steve Lee is the principal software engineer manager on the PowerShell team at Microsoft. He’s been with the company since 2000 when he started out working on Internet Explorer for Unix. More recently, his team was responsible for PowerShell Core 6, the open-source cross-platform (Windows, Linux, macOS) version of the object-oriented scripting and interactive shell, developed on GitHub.
Highlights:
Steve Lee: I think the way we position PowerShell, it’s really a ‘glue language’, and not intended for developing full applications. Now, I do know that there are folks in the community who built very complex systems on PowerShell script and we’ll support them by all means, but it's not intended for that purpose. It’s really for— What we use within our team is really like, you're trying to test out some new .Net API. It's actually much faster to write it in PowerShell script with a few lines of code than running C# that you would have to compile and do that work. So it makes it very easy to test out new things, prototyping before you commit to writing critical proper development code.
— [0:08:46 - 0:09:22]
Steve Lee: Everyone probably saw how Bing and ChatGPT has integration. So that’s something— AI is on top of everyone's mind. And that is something that we've actually been looking at for a while. So I'm not sure if anyone is aware but, we had — even before ChatGPT, even before some other popup ones that came out, like Stable Diffusion and stuff like that — we were looking at AI several years ago before things were ready. And we actually have a plug-in model. So PSReadLine is a model that we use as the way to present the interactive experience for PowerShell users. And so one thing that we did back in, I think 7.1 — which should have been probably, what, two, three years ago — is we added a predictor plugin, so someone could actually build a predictor in C# and be able to present that through PSReadLine to the user.
— [0:27:27 - 0:28:13]
Let us know what you think on Twitter:
https://twitter.com/consoledotdev
https://twitter.com/davidmytton
https://twitter.com/jeanqasaur
Or by email: [email protected]
About Console
Console is the place developers go to find the best tools. Our weekly newsletter picks out the most interesting tools and new releases. We keep track of everything - dev tools, devops, cloud, and APIs - so you don’t have to.
Sign up for free at:
In this episode, we speak with Steve Lee, principal software engineer manager on the PowerShell team at Microsoft. We start with what PowerShell is and why its object-based approach is interesting, then get into what it was like open sourcing a project at Microsoft back in 2016. We discuss the transition to using GitHub and what it's like managing an open source project at scale, bouncing community with features, bugs, and requests from users, alongside Microsoft’s goals. We also talk about PowerShell and its relation to AI, before we get some insight into what we can expect from it in the near future.
Things mentioned:
- Microsoft
- PowerShell
- OpenSSH
- Unix
- Linux
- WMI
- WinRM
- DMTF
- Physical Computer System View
- WS-Man
- Azure
- .Net
- PowerShell Gallery
- Visual Studio
- Python
- GitHub
- Pester
- ChatGPT
- Doug Finke
- Visual Studio Code
- PowerShell Team blog
ABOUT STEVE LEE.
Steve Lee is the principal software engineer manager on the PowerShell team at Microsoft. He’s been with the company since 2000 when he started out working on Internet Explorer for Unix. More recently, his team was responsible for PowerShell Core 6, the open-source cross-platform (Windows, Linux, macOS) version of the object-oriented scripting and interactive shell, developed on GitHub.
Highlights:
Steve Lee: I think the way we position PowerShell, it’s really a ‘glue language’, and not intended for developing full applications. Now, I do know that there are folks in the community who built very complex systems on PowerShell script and we’ll support them by all means, but it's not intended for that purpose. It’s really for— What we use within our team is really like, you're trying to test out some new .Net API. It's actually much faster to write it in PowerShell script with a few lines of code than running C# that you would have to compile and do that work. So it makes it very easy to test out new things, prototyping before you commit to writing critical proper development code.
— [0:08:46 - 0:09:22]
Steve Lee: Everyone probably saw how Bing and ChatGPT has integration. So that’s something— AI is on top of everyone's mind. And that is something that we've actually been looking at for a while. So I'm not sure if anyone is aware but, we had — even before ChatGPT, even before some other popup ones that came out, like Stable Diffusion and stuff like that — we were looking at AI several years ago before things were ready. And we actually have a plug-in model. So PSReadLine is a model that we use as the way to present the interactive experience for PowerShell users. And so one thing that we did back in, I think 7.1 — which should have been probably, what, two, three years ago — is we added a predictor plugin, so someone could actually build a predictor in C# and be able to present that through PSReadLine to the user.
— [0:27:27 - 0:28:13]
Let us know what you think on Twitter:
https://twitter.com/consoledotdev
https://twitter.com/davidmytton
https://twitter.com/jeanqasaur
Or by email: [email protected]
About Console
Console is the place developers go to find the best tools. Our weekly newsletter picks out the most interesting tools and new releases. We keep track of everything - dev tools, devops, cloud, and APIs - so you don’t have to.
Sign up for free at:
Previous Episode

Creating Go with Russ Cox (Google) - S04E03
In this episode, we speak with Russ Cox, distinguished engineer and Go programming language tech lead at Google. We discuss the original motivations for Go, the principles behind the language design, what other projects can learn from how Go manages its open-source community, and what Russ would change about Go if he started again. Russ also talks about the telemetry proposal, the involvement of Google in this, and what the Go team learned from a previous alias proposal.
Hosted by David Mytton (Console) and Jean Yang (Akita Software).
Things mentioned:
- PlanetScale
- "Rust vs. Go: Why They’re Better Together"
- Proposing Changes to Go
- GopherCon
- "The Go Programming Language and Environment"
- "Surviving Software Dependencies"
- Dick Sites
- Understanding Software Dynamics
- “Stanford Seminar - Making the Invisible Visible: Observing Complex Software Dynamics”
- MacBook Pro
- Mac mini
- ThinkPad X1 with Linux
- “A Tour of the Acme Editor”
- The Web is a Customer Service Medium
ABOUT RUSS COX.
Russ Cox has been working on the programming language Go at Google since 2008 and is currently the Go project lead. He joined Google directly after completing his Ph.D. in Electrical Engineering and Computer Science at MIT. From the early days of Go when he was part of a small team, he has played a significant role in the development and success of the programming language.
Highlights:
[Russ Cox]: All the Go code in the world was in one source repository, which meant that if we did want to make some sort of major change to the way things looked or even sometimes the way things worked, we knew where all the code was that had to be updated. There were a couple of times when we were going to change something syntactically, and we thought we knew what it was going to be and how to implement it, and we said, “Well, let's go see what it looks like.” We’d get everyone to just sort of crowd around one computer, usually mine. I'd open up an editor and open up literally every single file, Go source file, in the world, then just do some global search and replace kind of things in the editor. They'd watch the files changing on the screen, and everyone would be like, “Oh, yes. That looks good.” We read it all out and [would] go back to our desks.
— [0:06:49 - 0:07:28]
[Russ Cox]: We just discovered that for the last six releases, we had this kind of bug where you couldn't actually build a Go program without an Xcode installed, totally unintended, and no one noticed. If we had any sort of telemetry or tracking of what is the build cache hit rate on things like the standard library? — Which is a continual thing that we actually do run into problems with. — What’s the hit rate on the build cache? If we knew that when we looked at how it was going and then after a new release came out, and all of a sudden, it was much closer to 0 than 100, all of a sudden, you would say, “Oh, I wonder why,” and you would look into that. But without that kind of visibility, we just can't. So telemetry really is about how do we get the information that makes us better as software developers.
— [0:28:43 - 0:29:25]
Let us know what you think on Twitter:
https://twitter.com/consoledotdev
https://twitter.com/davidmytton
https://twitter.com/jeanqasaur
Or by email: [email protected]
About Console
Next Episode

Devrel, with Christina Warren (GitHub) - S04E05
In this episode, we speak with Christina Warren, senior developer advocate at GitHub about all things Developer Relations (or “DevRel”). We talk about what constitutes a “typical day” in DevRel (if such a thing exists), how to get started in the field, and the types of skills needed. We also discuss how to measure success in DevRel, the importance of advocating for the user, and where exactly DevRel ends and product begins. You’ll hear about how Christina sees her role as a bridge between the community, product engineering, and the developers using the product, as well as where video fits into it all.
Hosted by David Mytton (Console) and Jean Yang (Akita Software).
Things mentioned:
- GitHub
- Microsoft
- The Download
- Southern California Linux Expo / SCALE
- Linux
- Azure
- ChatGPT
- ChatGPT and Whisper APIs
- Commit AI
- 2021 M1 MacBook Pro
- 2020 iMac
ABOUT CHRISTINA WARREN
Christina Warren is a senior developer advocate at GitHub who works in DevRel, helping to connect GitHub’s developer community with its engineers. Prior to working for GitHub, she was a senior cloud developer advocate for Microsoft. With a background in journalism, she creates a lot of video content and is responsible for GitHub’s weekly YouTube show The Download, where she presents the week’s most insightful news for developers. You can find her on Twitter at @film_girl and on GitHub at @filmgirl.
Highlights:
Christina Warren: I think that developer relations should be part of product and engineering because it is a really core part of that. That said, to be successful, DevRel needs to be cross-functional so some companies have it under marketing. For their purposes, that might make sense. I think that it makes sense for it to be part of product and engineering. But I think that it's cross-functional insofar as I work with people on basically every different team at GitHub. That's one of the things that's great about GitHub is that they have a really good understanding and appreciation of the value that we can bring because we can help the product teams and the engineering teams create assets for their blog posts. We can help them with their message. We can highlight things because we are on the ground all the time. We can go, “Hey, hey. This thing happened and this is causing problems. Do we want to get ahead of this? And how can we make something better?”
— [0:15:02 - 0:15:49]
Christina Warren: The way I see my job — and I can't say this for every person in DevRel — but the way I see my job is my title is “developer advocate”, but I'm not advocating for GitHub. I'm advocating for GitHub’s users. I'm advocating for our community. That's really what I'm trying to do. Because I think that by advocating for them, that's how GitHub can be most successful. But, of course, not everybody and not every company might see it that way. They might see it as, “Oh, your only job is just to praise and talk about how great we are.” I don't see it that way. I think that to be really successful, you need to be transparent, you need to be honest, you need to be authentic. That includes when there are situations where you might screw up or when things might not be right because I think that that's what builds trust.
— [0:16:24 - 0:17:07]
Let us know what you think on Twitter:
https://twitter.com/consoledotdev
https://twitter.com/davidmytton
https://twitter.com/jeanqasaur
Or by email: [email protected]
About Console
Console is the place developers go to find the best tools. Our weekly newsletter picks out the most interesting tools and new releases. We keep track of everything - dev too...
If you like this episode you’ll love
Episode Comments
Generate a badge
Get a badge for your website that links back to this episode
<a href="https://goodpods.com/podcasts/console-devtools-260920/shell-scripting-with-steve-lee-microsoft-s04e04-30833881"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to shell scripting, with steve lee (microsoft) - s04e04 on goodpods" style="width: 225px" /> </a>
Copy