Ten Years of PowerShell
Page content
Ten years ago today, I filmed a Pluralsight Play by Play on open source PowerShell. I was standing between Jason Helmick and Jeffrey Snover, trying very hard not to look like the guy who had learned PowerShell six weeks earlier. I later wrote about that experience, but that day was the beginning of a much longer story.
That picture still makes me smile. It also reminds me how much can change in ten years. At the time, I was trying to get through one recording. I had no idea how much PowerShell would become part of my work.
To say PowerShell impacted my career is an understatement.
I didn’t start out as a PowerShell person
I came from Linux and UNIX. I knew pipelines, but I thought of them as byte streams moving between commands. PowerShell’s object pipeline took a little getting used to.
Then I started learning it for the Play by Play. I had a few weeks to get comfortable enough to sit at a table with the inventor of PowerShell and one of the best teachers in the community, then record a five-hour training session. No pressure. Let’s go.
I wrote about the turning point in Why PowerShell?. The command that changed my mind was simple:
Get-Process | Sort-Object -Descending CPU | Select-Object -First 10
I already knew how to find the same information with ps, sort, and head. I could type the UNIX version from muscle memory. But the PowerShell version read like a sentence. The commands did what they said, and the objects kept their structure as they moved through the pipeline.
That mattered to me. I could read the command. Someone else could read the command. We could put it in a script and keep moving.
The story I understand differently now
In the original post, I wrote that filming day was an incredible experience. I had to buckle down and learn PowerShell in about six weeks. I didn’t want to make a fool of myself in front of Jeffrey and Jason. The shoot lasted all day, from 9 a.m. to 6 p.m., and there was a lot of material to cover. I was so nervous that day.
That was the story then. Ten years later, I see a different part of it.
I thought the goal was to know enough PowerShell to survive the recording. The real goal was to become the kind of person who could keep learning in public. I didn’t need to arrive as a PowerShell expert. I needed to be willing to ask questions, build things, explain what I learned, and come back the next day ready to do it again.
That six-week scramble became conference sessions, workshops, blog posts, courses, and a much broader career. What felt like a deadline in 2016 became a habit. I still learn that way today. Find the problem. Build the smallest useful thing. Explain it to somebody else. Then make it better.
The people made the difference
Don Jones kicked it off with an email. We were both at Pluralsight, and he asked if I wanted to work on a project he couldn’t tell me about yet. He needed a Linux expert, and at the time I was writing all the LFCE courses for Pluralsight. That email led to the PowerShell Play by Play, and eventually to everything that came after it.
PowerShell was only half of the experience. I learned the syntax from Learn PowerShell in a Month of Lunches, originally written by Don Jones and Jeff Hicks and now updated by Travis Plunk, James Petty, and Tyler Leonhardt. The book gave me the foundation. While I was preparing for the video shoot, Jason was the person I kept bouncing questions off of. That’s where the language started to become useful to me, not just something I could repeat from a page.
Jason helped me learn how to think about PowerShell instead of just memorizing cmdlets. Jeffrey shared the history and the reasoning behind the language. Then the PowerShell team opened it up and brought it to Linux and macOS; for somebody coming from Linux and working across operating systems, that changed the conversation.
Jeff Hicks deserves a special thank you too. We spent many PowerShell Summits and other conferences together, sharing sessions, swapping stories, and figuring things out along the way. Jeff has been a mentor and a friend, and I’m grateful for both.
That kind of support is what kept me showing up: at PASS, TugaIT, PowerShell + DevOps Global Summit, PowerShell Summit, and PSConfEU. The topics changed as I did, moving from cross-platform PowerShell, OpenSSH, and remoting to containers, dbatools, observability, and local LLMs. The complete archive is in my Presentations repository.
So let me say this plainly: thank you to Don, Jeffrey, Jason, Jeff, and the entire PowerShell team. Thank you for building PowerShell, making it cross-platform, open-sourcing it, and supporting a community that’s always been willing to answer questions, review ideas, share code, and help the next person get unstuck.
PowerShell changed the shape of my career
PowerShell let me connect my Linux background with the Microsoft technologies I was increasingly working with. I used it for SQL Server administration, Linux management, OpenSSH remoting, containers, Kubernetes, and automation in consulting, training, conference sessions, and the systems I managed every day. I wrote about building open source PowerShell, PowerShell remoting across platforms, and running PowerShell in containers.
In 2021, I left Centino Systems after ten years and moved into a Principal Field Solution Architect role at Pure Storage. It meant trading the independence of consulting for a bigger stage: bigger storage systems, bigger customers, and a team instead of just me. But the job underneath it didn’t change. I was still turning complicated operations into something repeatable and understandable, just with different infrastructure under my hands.
When I started at Pure, PowerShell was my go-to tool. I wrote my demos and automations in it.
Today, I use PowerShell to work with storage fleets, SQL Server, APIs, containers, and the systems around them. The Pure Storage Fusion PowerShell work is a good example. I can define a workload once, apply it across a fleet, and inspect the result with the same language and object model I learned a decade ago.
Wrapping up
Ten years later, PowerShell is still one of the tools I reach for first. Not a day goes by without me interacting with PowerShell or a system managed by it. I thought I was learning a shell. I was also learning how to explain hard things, ask better questions, and keep going when I didn’t know the answer.
The language gave me a tool. The community gave me people to learn from.
Thanks for everything. Let’s go.