Introduction

Hello Readers, welcome to the first post of a new series “PowerShell Influencer of the Week“, where I’ll Interview one PowerShell Influencer, Microsoft Awarded MVP or a PowerShell Community Contributor and publish it every week! The format goes something like this… I’d be asking 10 questions total, wherein 7 Questions would be specific to PowerShell and related technologies, the next 3  questions would reflect individualism and personality of the influencer, something which we don’t usually see. I think it would be amazing to see the thought patterns and personalities of these wonderful set of people.

As we move on to publishing these interviews every week, I’m also very open to any suggestions or feedback, like if you can think of some better questions that you want me to ask to, feel free to tweet me @SinghPrateik . I’d love to hear them 🙂 and adapt the format accordingly.


This week I’m so excited to welcome my friend and Microsoft MVP ‘Stéphane van Gulick’ as our ‘PowerShell Influencer of the Week’.

Biography

Stéphane Van Gulick is a 4 times Microsoft awarded MVP in ‘Cloud and Datacenter Management’ for Windows PowerShell, and founder of Basel and co-founder of the French PowerShell User Group where you can find Stephane organizing and sharing his knowledge through hands-on demos and presentations. His blog  has been recognized as one of the top PowerShell blogs of the world. and he was awarded PowerShell Community Hero in the year 2015.


Website:
 http://powershelldistrict.com/
Twitter profile: @Stephanevg
Github profile: https://github.com/Stephanevg
LinkedIn profile: https://www.linkedin.com/in/stephane-van-gullick
Facebook Page: https://www.facebook.com/PowerShellDistrict/


The Interview

Following are my questions along with Stéphane’s reply. You may see some inline comments from me in GREEN. Enjoy reading!


  • Why did you start learning PowerShell?

    It wasn’t a choice actually. I was still in my proof period working in Paris, and I got cornered by my boss from that time, and he asked me:

    – Do you know how to script? I saw on your resume that you had a line ‘scripting’
    – I said yes… (It is funny, because at that time, I really couldn’t script at all, and that ‘scripting’ line, was probably a copy/paste error).
    – He said, ok. We have a scripting project starting next week in the Netherlands; You will be our Automation specialist
    – Me: (“Glups”). Ok…

    I then went online and bought the first PowerShell book I found. It was written by Arnaud Petitjean (In French). and learned Powershell in a week. Today, I still have that book.

    Last year we organized a Powershell Saturday in Paris. Among all the people that attended the event, Arnaud was one of them. I got the chance to (finally) meet him, and he even dedicated my copy of his book.

    It was a very nice moment, as I finally met the guy who thought me PowerShell after all these years. As a matter of fact, he even signed my copy of his book.


  • Do you have any advice for people who don’t think they can speak at a conference?

    I just think you should just jump into the cold water. After a short while, you will feel comfortable in it 😉

    Other then that, perhaps these middle steps could be the best:
    1) Present it at work, with your closest colleagues. Ask for feedback.
    2) Present it at a local user group. Ask for feedback.
    3) Present it at a well-known conference. Ask for feedback.


  • Which is your favorite PowerShell Module and why you like it?

    Without a doubt: Pester!

    Since I use pester, the quality of my code has raised exponentially. Literally. I can trust that any of the new features I introduce in my modules don’t break anything already in production.
    Also, I have learned to trust scripts/modules written by other authors when I see they come with Pester tests, and that they pass.
    For me, it is a sign of quality, and it allows me to trust the script/module. And for that, I think Pester is my favorite module.


  • What PowerShell projects you are working on now?

    I do have several ones in the pipe, but the ones that are really starting to take off are:

    PSHTML – https://github.com/Stephanevg/PSHTML
    PSClassUtils – https://github.com/Stephanevg/PSClassUtils

    PSHTML:

    Is a web language rendering module I wrote which allows generating HTML markup language using PowerShell syntax. It is actually what we call a ‘DSL’ (Domain specific language).
    Here is an example:

    when using PSHTML as a front end rendering engine, and Polaris (for example) as the backend, it becomes possible to have a WebServer which is 100% PowerShell based. Which is simply awesome in my opinion.

    For a more practical example on what you can achieve combining PSHTML and Polaris, I’ll recommend you have look at this blog article from my buddy Chen – https://chen.about-powershell.com/2018/10/consuming-data-dynamically-in-pshtml-and-polaris/

    PSClassUtils:

    PsClassUtils is a module I started a while back when I was trying to understand a project I wrote using only classes. After 6 months of working on something completely different, I needed to get back to that module, and it took me some time to understand the logic behind the class structure. I actually needed to re-read my code to get the big picture of it. I knew that in other languages, they were using UML diagrams to communicate their class structure.

    I was really looking for a good opportunity to use Kevin Marquette’s PSGraph module. And I just got it. So I wrote a short script to generate a UML diagram of my class structure. That script quickly turned into a module. And I keep adding functionality to it.

    This is actually a real extract of the Configuration + Assets utilities of PSHTML.

    In the process of enhancing Write-CUClassdiagram I have quickly come to refactor the code, and went from a plain/simple AST filtering script to writing functions to get individual parts of the classes in a reusable manner E.G:
    Get-CUClass
    Get-CUClassConstructor
    Get-CUClassMethod
    Get-CUClassProperty

    etc..

    Because classes are so standardized, we can really write some cool automation around it, since we can trust everything of it. I have recently updated the module with a VERY cool new cmdlet: Write-CUPesterTests this allows one to automatically generate Pester tests for you. See the following video:

    I don’t know what you think about this, but I think this is awesome!

    [Prateek]: I think it is not just awesome, but very useful because anything that makes us write less code it life changing 🙂 It would be very helpful to auto generate my pester tests. Thanks for this Stephane!

     


  • What Programming languages do you know apart from PowerShell and why did you learn it?

    I write some HTML / CSS / Javascript at work.
    I read a lot of code examples in Java, without never writing a single line of code of it.
    I mostly try to do everything with PS. When PS is not the right candidate for it, I switch to C#.
    I also write some advance SQL queries from time to time.

    Since I work in infrastructure automation I have never really needed to use another language. I mean, everything I needed to do, I always found a way with Powershell.


  • If you are interviewing a candidate for a PowerShell specific profile what would be your top question if he/she is

    Regardless of the level, I want to see the passion in their eyes. I think it is important to see that people like to learn new things, and are not afraid of diving into subjects that they don’t know yet.
    For more advanced scripters, I think it is essential to have Object Oriented Programming knowledge (OOP). I have a politic where we write only classes. This makes things more ‘predictable’ and we can use cool tools like Write-CUClassDiagram, or Write-CUPesterTests from my PSClassUtils module. Using classes actually allows us to gain a lot of time since we can use that automation I integrated into PSClassUtils to simplify our lives.


  • How did you get into speaking at your first PowerShell conference?

    It simply felt like the next step to do actually. I do have pretty big modules (see above) which I would like to share with the world, and receive feedback on it. Talking at a conference seemed to be the best way to get that feedback.


  • What were you expecting when you wrote your first blog post?

    I imagined I was going to have 1 million views that same night. At that time, I didn’t know that you actually needed to add a script tag with some google javascript in it, so that Google becomes aware of it. Also at that time, I wasn’t really active on Twitter. So, it was a pretty big disappointment. lol 😉


  • What do you think is the right approach to learn PowerShell scripting?

    As I mentioned before: Just jump into the cold water. There is no better way, that learning by doing.
    What one could do, is take an existing documented procedure, and try to automate it. Having the documentation will help to get the steps right.
    Start small.
    If you start big, don’t forget that a big problem, is nothing else then a bunch of smaller ones.

    [Prateek]: I think the underlying meaning is to deconstruct your problems into smaller units that can be solved and understood easily. You can’t solve something until you break it down to interdependent working pieces.


  • Which are your favorite PowerShell blogs/websites?

    I really like the one from Chen. He has a lot of cool topics, especially on using PSHTML-http://chen.about-powershell.com/category/PSHTML/


  • If you get full of control PowerShell source code, what is that one thing you would change or improve?

    My VSCode experience is not quite as reliable as the one that we had in ISE. We have more features (which are REALLY awesome). But I find my self going back to ISE sometimes when I need more stability. That is the only thing I would like to change.

    [Prateek]: This is exactly what I hear from a lot of people, I love VSCode and won’t be switching to ISE ever but there is still a lot of scope of improvement in reliability and performance.


  • Mention a feature in PowerShell, that you don’t like.

    Workflows.


  • How do you keep yourself updated to the latest technology trends and updates?

    I just follow twitter actually.


  • Mention a PowerShell concept, trick or a tip that have you learned recently.

    I think people should look into Design patterns. It is gold.

    [Prateek]: I’m afraid to say that I have come across this topic quite a times over the years, but never found the time to deep dive into this myself. So considering this an opportunity to learn something new, following are some blog posts and articles to start with..
    – PowerShell and Design Patterns
    – Software Design Patterns in Powershell: Strategy Pattern


  • What would you be doing if you weren’t the person we know today? Maybe a different career path?

    I actually started my professional career as a chef, in a 1-star Michelin. So, I could have been writing recipes, instead of writing code ;)


  • What was the turning point in your career?

    That story I mentioned above: My old boss sending me on a Powershell automation project (It was actually a Dynamics AX migration project). I had no Idea of PowerShell nor Dynamics AX. I simply learned to use it. then, I learned to love it. Now, I cannot quit it.


  • When you feel overwhelmed or unfocused, or have lost your focus temporarily, what do you do?

    I like to listen to music. Either electro or classical music.

Thank you so much, Stéphane, for doing the interview and answering 17 questions! We as a community appreciate all the work you do.

 

Optical Character Recognition
~ Author of “PowerShell Guide to Python”

Subscribe to our mailing list

* indicates required