Over on /r/PowerShell, we share with each other everything that we have done with PowerShell every month and reflect on that at the end of the year. This has been a big year for me. Not only have I been able to work on some great projects professionally, I also received a lot of recognition this year for my community efforts. As I reflect back on this year, I accomplished way more than I expected.

Index

Community efforts

I really love the PowerShell community and I have done a lot of work to contribute to it. Here is a look at what I did for the community (and what the community did for me) this year.

PowerShell News Podcast

I was a guest speaker on The PowerShell News Podcast early in the year. I had a great conversation with Mick Pletcher and Harjit Dhaliwal about some of the projects that I was working on at the time.

PowerShell + DevOps Global Summit

This was my first year attending the PowerShell Summit. Getting to this conference has been on my list for a long time. My employer sent two people the previous year, but I was new to the team and did not get one of those spots. This time I submitted a talk that was selected to help ensure my spot.

Meeting my readers

It was such an honor to meet so many people that were helped by my blog and other content. People started coming up to me during the social event the night before the PSSummit to say thank you. I was surprised and was very happy to talk with them. My coworkers that were traveling with me decided to keep track of how many people spotted me. Apparently, I look just like my avatar because we were already starting to lose count on the first day. Then something truly amazing happened.

I was given the honor of being designated a 2018 PowerShell Community Hero for my contributions to the community. I realized that I was not some unknown person writing posts that nobody ever saw. My willingness to help others has made a real difference to many people. Attendees were connecting with me the entire conference to either thank me for my posts or to congratulate me on my award.

I truly appreciate every one of those encounters. It means so much to me when someone is willing to step out and say thank you to someone they have never met before. I love to hear it when my work has helped someone discover something new or help them past a roadblock. If you see me at the next summit, I am always open to meeting new people.

2018 PowerShell Community Hero

On the first day of the conference, all of us were in one large room for the keynote sessions. There was a lot of great content the first day from the PowerShell team and other people that are important to PowerShell (and the community). One of the special awards that they gave out was the 2018 PowerShell Community Hero award.

2018 PowerShell Community Hero award was based off of nominations from the community. The PowerShell team was looking for people that went above and beyond or was a special help to the community. The PowerShell team used those nominations to select 7 individual to receive this award. The Heroes were named one at a time. When they got to number 6, it was my avatar picture up on that slide.

I am very honored to have received the 2018 PowerShell Community Hero award. I only had time to read a few of the nominations displayed as I went up to receive the award. They were all very kind and touching words that showed true appreciation for how I helped those individuals. I am very proud of this award.

Presenting at the PowerShell Summit

Getting selected to present at the summit was a big deal for me. Just as I was about to start my session, Jeffrey Snover walked in and sat in the front row. I was very pleased at how well the demos came together and how the session turned out.

The session recording can be found on the PowerShell.org YouTube channel: Writing a DSL (Domain Specific Language) for PowerShell by Kevin Marquette

This was my first time presenting at a major conference and it was a very positive experience for me. I am now on the schedule to present two sessions at the next PowerShell + Devops Global Summit.

Microsoft MVP, Cloud and Datacenter Management

I thought that the PowerShell Hero award was going to be the highlight of my year. Then I received the Microsoft MVP at the beginning of August in the category of Cloud and Datacenter Management. While the MVP category is Cloud and Datacenter Management, almost all my contributions have been in the PowerShell subcategory.

This is the recognition that I am most proud to have received this year. I am so very honored to be a Microsoft MVP and I am not sure what more I can say to reflect that.

Blog/Website

The reach of my writing on this site has really grown this year. This is reflected in the lists of top PowerShell blogs and in the analytics that I am tracking.

Feedspot Top 50 PowerShell Blogs

I started the year by making it on the Feedspot top 50 PowerShell Blogs list. When my blog was added to that list, it was ranked about 13th. I was excited to see my blog listed among all the great community blogs and other Microsoft Resources. It was the perfect way to start the year.

I am sitting 10th on the FeedSpot Top PowerShell RSS Feeds and 11th on the Feedspot Top 50 PowerShell Blogs And Websites For Developers To Follow in 2019 at the time of this writing.

SQLShack Top 5 PowerShell bloggers of 2018

SQLShack posted their Top 50 PowerShell Bloggers at the end of August. I was shocked to see my name sitting 2nd place on that list. After my experience at the PowerShell Summit and receiving my Microsoft MVP, maybe I should not have been so surprised, but I see a lot of great names on that list that have been creating good content for a long time now. It could be that 2018 was just my year or maybe it’s a classic case of Impostor Syndrome.

Blogging by the numbers

My website is one of my most visible contributions to the community. While it is awesome to see my site listed high in those top 50 lists, its the numbers that really tell the story. Here is a quick peek at the last 12 months of activity from Google Analytics.

2018 blog stats

Thats 482,000 users and 964,00 page views in the last 12 months. I had no idea those numbers were climbing so high. This is a 250% increase over the year before.

User groups

A big part of giving back to the community is interacting with the PowerShell user groups. I started the SoCal PowerShell User Group in 2017 and we had a lot of good sessions this year. I teamed up with David Christian and did several sessions covering all aspects of DSC. My favorite aspect of the group this year is that we are seeing more and more regular attendees.

User group presentations

I presented 8 sessions this year between my group and others in the community. Most of these presentations were created new this year for these user groups. Here is the full list of session topics that I presented:

  • Custom DSC Resources
  • DSC Configuration Data
  • Enterprise scale DSC, DevOps at loanDepot
  • Advanced Functions
  • Pester in Action
  • PSGraph in action
  • Everything you wanted to know about hashtables (Twice)

YouTube

I posted about 30 videos on YouTube this year. A few of them are actual presentations that I did this year. Most of the others are coding live streams or other video experiments.

Other social media stats

While my other social media stats are not that big of a deal, I’m making note of them here so I can compare the numbers next year.

I picked up 883 new Twitter followers this year to hit a total of 1544. I have no idea where my linkedIn connections started, but I am sitting at 662 right now. I have the same story for YouTube with 181 subscribers. I just got twitch setup this month so I am going into the new year with 27 followers.

Open source Contributions

I participated in Hacktoberfest this year and got my needed pull requests out to other projects. I did get around 10 pull requests last year to the PowerShell repositories but most of my changes there were adding or cleaning up tests.

Personal projects

I created these utility functions this year.

They were small projects but both of them helped me with minor annoyances. My larger projects are posted on the loanDepot GitHub site.

loanDepot on GitHub

This year was also the start of the loanDepot DevOps team sharing our Modules on GitHub. This is a low priority effort for the team but I have gotten these projects of mine posted.

I’ll do a more formal post announcing each one in the future.

Professional projects and efforts

My community efforts listed above are more than enough to keep me busy, but I am also a DevOps Engineer with lots of other cool projects going on.

The LDX Project

This was a major team wide retooling effort that I started the year before and delivered on in Q1. We have this metadata database that sits above all our automation as the source of truth for everything our team does. I lead the design and implementation of a revised metadata database and engine to support our growing demands on the system. The end result was drastically different under the hood than what we were using at the time.

The cut-over to this project was an accomplishment all on it’s own. The team really stepped up for this one and we made the change happen without most of the organization realizing anything changed.

Component onboarding

I created and reworked a lot of our component onboarding tooling. The LDX Project enabled much better templating scenarios for us to take advantage of.

SSDT, SSIS, NPM tooling

I built out the initial tooling, metadata, CI/CD pipelines, and documentation for our SSDT, SSIS, and NPM projects.

Better modules

I overhauled the way we built and deployed PowerShell modules this year. Everything got its own CI/CD pipeline and published to an internal PSRepository (and directly to some key servers). I added PSScriptAnalyzer validation, comment based help checks, test coverage requirements, and automatic semantic versioning. I also refactored and cleaned up many of those existing modules along the way.

F5 tooling rework and new features

The work I did on the F5 module and related tooling this year was significant.

  • LDX refactor
  • added LTM/GTM state management (nodes, pools, pool members, VIPs, WideIPs, WideIPPools)
  • added maintenance page support

This enabled zero downtime and rolling release scenarios that we were not leveraging before.

TfsTestRunner

I created a module and tooling for running various integration tests at deploy time for every release into every environment. This was paired with my zero downtime release scenarios to allow failed tests to halt the deployment before it would impact production.

Request master merge

There is a point in our SDLC where we merge from one branch to another. I added an option in the CI/CD pipeline to perform some validation and create that merge as a shelveset for the dev team to review.

The TFVC and VsoLoggingCommands modules were created as part of that effort. They handle actions for us that are not exposed as part of the TFS RestAPI.

AppSettings

I finished out the year rewriting the way we were updating configuration files. After years of different authors and growing code paths, I re-architected the whole thing so I could add some new features and offer full support for DotNet Core configuration files.

Reflections

My first post last year was a review of everything that I had accomplished in 2017. At the end of that post, I commented that I did a lot more that year than expected and I hoped that I would be as productive this year. That statement continues to hold true for this year. I’ll keep doing what I am doing because I must be doing something right. 2018 was a year to be proud of.