A New Role with Microsoft Graph Team

For the past ~9 years I have had the personal and professional pleasure to be a Premier Field Engineer (PFE) with Microsoft. I love the passion and knowledge that my peers and I share on a daily basis with our customers and each other. Recently though an opportunity opened up that I couldn’t say no to.

Starting May 26th I am joining the Microsoft Graph team as a Sr. Customer & Partner Experience (CPX) PM. This is an entirely new role for the team and I will be the first member. I’m looking forward to the new opportunities and working with amazing teammates, many of whom I’ve worked with on side projects for the past 1-2 years.

I plan to continue writing content for my personal blog at least every other month, but you may see more Microsoft Graph related content or cross postings on the Microsoft Graph Blog. Considering that my highest viewed posts in the past few years have been Microsoft Graph related that may not be much of a change though 😉. I’ll also be more active on the newly released Microsoft Q&A site as well as Stack Overflow under the “microsoft-graph” tag.

Thanks to everyone who has helped and encouraged me in my growth with Microsoft Graph. Special thanks to Jeremy Thake, Yina Arenas, Jason Johnston, Darrel Miller, Vincent Biret, Gavin Barron, Srinivas Varukala, and many more.

-Frog Out

How I Develop Locally With GitHub and Azure DevOps Repos

A peer of mine recently asked about how I manage local code (projects, solutions, Git repos, etc.) that may or may not be synced to a cloud repository (GitHub, Azure DevOps, etc.)  Since I previously blogged about How I Blog – Updated 2018 and I’m a fan of re-using how many keys I have left I thought I would share my personal local development process.

 

Disclaimer

I like to to tell people that “I play a developer on TV”, meaning it has been at least 10 years since I’ve written code as a consultant that was actually deployed to a production system.  Sure I’ve written (or collaborated on) many samples (ex. .Net Core console sample for Microsoft Graph) and proof of concepts for customers these past 10 years, but it wasn’t the primary focus of my job.  So balance everything that I share with what others such as my friend Steve Smith (@Ardalis) share on his Weekly Dev Tips blog and podcast.

 

Local Folder Structure

Currently I develop on Windows so folders and paths will reflect that.  I don’t use the default folder that any of the IDEs or tools below use (generally under my user profile folder such as “c:\Users\[username]\…”).  Instead I create a new folder called Projects at the root of my primary drive (i.e. “c:\Projects”).  Below that folder I then have the following:

  • c:\Projects\_DevOps
  • c:\Projects\_GitHub
  • (All other local-only projects, ex. c:\Projects\localProject1)

Using the underscore for _DevOps and _GitHub means that those folders should be easy to find at the top of this folder structure even if I happen to inadvertently sort the folder.

As for project folders, I’ve thought about subdividing based on topic (ex. SharePoint Online, Azure, Microsoft Graph, etc.) or technology (ex. ASP.NET Core, Blazor, Console, etc.) but since I rarely have a large number of folders I haven’t done anything yet.  I do name my folders and projects based on topic though (ex. BTJ.SPO.ProjectName, BTJ.AZ.ProjectName, BTJ.MG.ProjectName, etc.)  This helps at least group together similar projects.

 

Git / GitHub / Azure DevOps Tools

I use a mix of the following tools to sync my repos and monitor issues or pull requests.

  • Visual Studio Code (VS Code) – VS Code has integrated supported in-box for Git.  I use this for committing and pushing code to my GitHub repositories.
  • Azure Repos Extension for Visual Studio Code – There is an extension for VS Code that adds additional functionality (ex. monitor builds, pull requests, and more) directly into VS Code.

  • GitHub Desktop client – GitHub offers a desktop client that allows you to sync code, create branches, review commit history, and more.  When I’m not directly in VS Code working on a repo I generally use GitHub Desktop.
  • Visual Studio Team Explorer – In general I start most projects in VS Code these days.  For the projects I do work in Visual Studio 2019 (ex. Blazor and some ASP.NET Core) I use the Team Explorer functionality (now available out of the box) to sync repos.  The integration with Azure DevOps and GitHub is good as well.
  • GitHub mobile app – I do submit and review a GitHub issues or pull requests on an infrequent basis.  When I am not at my desk I tend to use the newly released mobile app for GitHub.
  • Browser based pull requests – Some repositories that I collaborate on are very large and not well suited to sync locally (ex. Azure docs, Microsoft Graph docs, etc.)  For these I prefer submitting a pull request directly in the browser.  I previously blogged about this at How to Edit Microsoft Documentation on GitHub.

 

Conclusion

I hope you have found something useful in this post.  Please share your own suggestions or recommended tools / processes in the comments below.  Happy coding!

-Frog Out

Newsletter #6 – Positivity through uncertainty

Note: today’s topic touches on the current COVID-19 pandemic.  While this has not directly impacted my own family’s life I know it has impacted many other families and individuals.  I write this post as the spouse of a medical professional and father of a family of 3 young children.  I do not trivialize what others are going through.  My hope is to share a light to others who are in darkness / uncertainty to find their way through this time.

TinyLetter-6-1

 

 

Positivity through uncertainty

During times of crisis like this COVID-19 (Coronavirus) pandemic there are many ways to react to our current situation.  Some people fall into despair while others step up to become leaders and survivors.  While it may feel like we have no control over how we react we can actually influence ourselves in certain ways.

Awhile back on Twitter a friend shared  found an interesting article about Science Proves That Gratitude Is Key to Well-Being.  The article describes how gratitude is linked to happiness and well-being.

“A 2003 study compared the well-being of participants who kept a weekly list of things they were grateful for to participants who kept a list of things that irritated them or neutral things. The researchers showed that the gratitude-focused participants exhibited increased well-being and they concluded that “a conscious focus on blessings may have emotional and interpersonal benefits.”

I’ve written about How I Do A Personal Monthly Retrospective.  No matter how good or bad my week or month has been, I find that I am in a much better state of mind after I do my retrospectives.  Much of that has to do with the fact that every single time (and I’ve gone back to verify) I write down more positives than negatives.  Over time this focus on the positives will lead you be more positive in general and others will also start to notice.

While this current time of COVID-19 pandemic, social distancing, and uncertainty in our daily lives can be difficult, try to focus on the positives in your life.  Daily or weekly write down at least 1-2 things that are going well in your life or the lives of others around you.  We will get through this and being in a positive state of mind will help.

What things are you thankful for?  I honestly would like to hear back from you in reply or comments.

P.S. I’m thankful I celebrated my birthday this morning with my wife and kids at home and virtually with my family through video chat later tonight.

-Frog Out

Looking Ahead To 2020

For many of the past years I’ve written a retrospective (2016, 2015, 2013, 2012, 2011, 2010) or look ahead (2019, 2014, 2013, 2012, 2011, 2010) post to walk through my goals.  This year I am a little behind but with some encouragement from my mentor Sean McDonough I will look ahead at what I have planned for 2020.

board-1647323_1280

Ahead in 2020

Live life for others

A clip of Keanu Reeves on a late night show answering the question “What happens when we die?” has been popular on social media lately.  If you haven’t gotten to watch this short clip take a minute to do so now:

In the clip Keanu doesn’t focus on himself (or his future self.)  Instead he talks about those who love us and how their lives will be impacted by our passing.

This has been something that I’ve thought about more in the past years as my children have been born.  I enjoy taking an hour or two once a week to do something with one of my kids such as going for a swim at the local gym, a library visit, grocery store run, or similar activity.  I could / should do this more often, especially activities with my wife like our monthly date nights.

Hobbies (and music)

Speaking of my wife, we recent went to a marriage ministry event at a local church.  In one of the videos for the night the couple presenting discussed keeping a dreams journal together.  This dreams journal would contain things that you would like to do in the near term as well as the long term.  My wife and I discussed each of our personal and collective dreams which opened some interesting insights.

For me personally I would like to get back into playing a musical instrument.  In my younger years I played piano for 8 years and guitar for a few.  I won’t claim to be good at either today, but I’ve always been drawn to music as a means to relax or inspire creativity.  I’ve tossed around ideas of starting up drumming but that may wait until my kids are older and we have space to put equipment like that.  For now though I’m looking into creating chiptune or MIDI music on my laptop.

Chiptune music creators for Windows 10

https://www.ilovefreesoftware.com/19/windows-10/chiptune-music-creator-windows-10.html

MidiPiano

http://www.midipiano.net/

STEAM education for girls

Now that I’m the father of 2 girls (in addition to my son) I’m interested in ways to encourage both of my daughters in science, technology, engineering, arts, and mathematics (STEAM) education.  My oldest daughter is already very interested (and good at) art and math.  As for the other areas we’ve bought a few Elenco Snap Circuits kits and I’m looking at a few coding applications that she can use in a year or two.

At a broader level, the Stir Trek Conference that I help organize has a related Stir Scholarship that is awarding young women with scholarships to enter into a degree in software.  If you feel inclined, please donate and spread the word about this scholarship.  I look forward to helping this program grow and continuing to encourage all young women to explore a STEAM education.

Stir Scholarship

https://stirscholarship.org/

Building community at work

In addition to my normal customer work I have also been involved in building an internal community of sorts around Microsoft Graph.  This community is focused on answering questions from my peers in the field as well as connecting people with product group members.  Aside from the technical aspects of this community I’ve also been interested in helping others contribute to documentation (primarily Microsoft’s).  In 2018 I wrote a blog post on the topic but I’m also looking at doing a workshop or recorded video to help others see the process.

How To Edit Microsoft Documentation on GitHub

http://aka.ms/HowToUpdateMsftDocs

Conclusion

While this list is not complete nor are they all measurable goals, this is a starting point for the direction I’ve pointed myself in for the 2020 year.  If you have set your own goals or personal directions I’d love to hear what they are.  Feel free to leave a comment and share.  Thanks and have a great start to 2020.

-Frog Out

Looking Ahead To 2019

In this post I’ll look ahead at what I have coming up in 2019 and what I look to accomplish.

Background

In previous years I have typically blogged at the start and end of the year about my goals and retrospective.  In mid-2018 I started capturing a monthly retrospective (see How I Do A Personal Monthly Retrospective).  While I’m doing these personal retrospectives more frequently (monthly vs. yearly) they usually contain more personal things than I would feel comfortable sharing publicly.

Ahead in 2019

Baby number 3

The biggest thing I’m looking forward to in 2019 is that my wife Sarah and I are expecting our third child later this year.  We’re finally starting to share the news outside of our immediate family.  I’m very excited and happy that our family is growing and I look forward to sharing our love with our new baby.

Exercise

For the past several years I’ve been running a few 5k races, quarter marathon races, and obstacle course / mud runs.  This has been a good way to push myself to stay active and healthy.  This year I’ve already signed up for a 5k and an obstacle course race in the first half of the year.  I’ve already started training for both and it’s amazing how much better I feel physically and mentally after getting into a good workout routine.  I find that I have more energy and motivation to accomplish things and hope that I can keep this up in the coming months.

Faith life

My Catholic faith has always been a big part of my life, but this year especially is an important year as my wife is preparing to enter fully into the Catholic Church.  I’m proud to support her on her faith journey as well as continuing to raise our children in our shared faith.

Technical leadership

In 2018 I went through a program at Microsoft called Technical Leadership Development Program (TLDP).  The purpose of this program is to identify individual contributors (ICs, not a manager of people) and grow their technical leadership skills to make a bigger impact inside and outside the company.  While there were many takeaways from this program one of the big ones for me was the following progression of stages (starting at bottom and going up) for a technical leader:

Technical Leaders…

    • Stage 4 – Drive Impact Through Strategy
    • Stage 3 – Drive Impact Through Others
    • Stage 2 – Master Individual Impact
    • Stage 1 – Grow Individual Impact

 image

At the start of 2018 I would estimate that I was in the 2nd stage of mastering individual impact and not realizing (at the time) that the next stage was to move onto driving impact through others.  Note that this progression to stage 3 doesn’t require moving into people management.  Instead you can remain an individual contributor while still increasing impact through other people.  I tested the waters with this process through the 30 Days of Microsoft Graph blog series and a few other side projects.  I’m looking forward to continue this progression in 2019.

Reading books

Each year on average I read 2-4 books, usually during slow weeks around holidays when I can devote more attention.  In the past year I’ve found a number of great books in a number of topics including science fiction, religion, and technical leadership.  I should probably join a Good Reads program but have not done so yet.  Instead I usually end up hearing about a good book recommendation from a friend or coworker and then picking it up from the local library, borrowing from a friend, or similar.  I’m not always able to reserve time each day / week, but I do find that I sleep better when I read for at least 10+ minutes before going to bed.

Conclusion

These are the things I’m currently looking forward to in 2019.  Thanks to my mentor Sean McDonough for urging me to get this written.  I know much will change throughout this year, especially once baby #3 arrives.  Here’s to a successful start to the year and continued growth.  If you have your own goals or plans for the year please share in the comments.

-Frog Out

How I Blog – Updated 2018

Over 8 years ago (wow that feels like a long time writing that) I was fairly new to blogging and wrote a post about “How I Blog”.  A coworker recently asked me about how I blogged so I quickly read through the old article and realized that much of the technology that I leverage has changed, but the process is fairly similar.  In light of that I’m writing an updated blog post to reflect the current technology and other changes since 8 years ago.

 

Tools

  • Open Live Writer – Windows Live Writer is no longer supported so I’ve switched over to the open source version which was released a few years ago.  Not everything is 100% the same but the UI and general authoring experience has remained.  I typically draft up posts in Open Live Writer, push the draft to WordPress, and then finalize on WordPress due to minor issues with formatting code and such.
  • Twitter – Live Writer had a nice plug-in called Twitter Notify that allowed you to link your Twitter account to Live Writer.  These days I have WordPress automatically tweet out new blog posts.  I use this (and RSS feed) as my primary method to notify others when I have new content posted.
  • OneDrive – OneDrive allows you to sync content across multiple computers and offers a couple GBs of free storage (specific number has gone up and down over the years).  I pay for an Office 365 Home subscription which includes 1TB of OneDrive storage so I shouldn’t run out of space anytime soon.  I really can’t say enough about how much time OneDrive saves me when it comes to blogging.  I use this to sync screenshots, Open Live Writer files (drafts and posts), and code snippets between my multiple devices.  As an added bonus I also get all these files backed up into the glorious “interwebs cloud” should I ever have an issue with my personal backups.
  • Paint.Net – Paint.Net is a free tool that gives you basic PhotoShop-like image editing.  I use this for cropping screenshots, pixelating images with sensitive information, and many other minor tasks.  I find the software very easy to use and it’s hard to beat free.  Please support the tool providers with a donation if you end up using and liking it.

Hosting/Online Services

  • WordPress – Originally I hosted with GeeksWithBlogs.net but after issues with the RSS feed I looked at a number of options including Orchard and WordPress.  Eventually I landed on hosted WordPress (self-hosting had its own issues).  You can read more about the transition process on this My Blog Has Moved post.  Overall I am much happier paying a small fee for WordPress to host my content, integrate my custom domain, and offer a number of native integrations.
  • WordPress Statistics – What good is blogging if you can’t track statistics like number of visitors or which of your posts are the most popular?  The “Personal” WordPress plan includes the pertinent statistics that I’m interested in and plenty of charts or filters to find the data.
  • RSS Feed – WordPress has native functionality to publish an RSS feed of posts.  This has removed the need to use FeedBurner or other 3rd party tools.  RSS feeds may not hold the same weight that they did years ago but personally that is how I consume a number of blogs and other services.  I welcome any input on alternatives for notifying “subscribers” that a new post is available or similar functionality.
  • GoDaddy – Since the beginning of my blog I have registered my briantjackett.com domain with GoDaddy.  There are numerous other options out there but I see no need to switch as things “just work.”

Tips for Starting Out

So, if you’ve read this far and you yourself don’t have a blog but are interested in starting one here are a few tips.

  • Know your content – What is it that you want to blog about?  Will your blog contains posts about cool robotics work that you are doing, video game reviews, or perhaps your super cute cat Mr. Mittens?  Decide on an area or related group of topics and focus on those.
  • Know your audience – Relating to the above, who are you writing your content for?  Are you writing posts for personal reference in the future (this is part of why I write), for internal company coworkers, or for the community at large.  This will shape what, how, and why you write.
  • Set goals – Define some goals for yourself about how often you plan to publish content, how many visitors/subscribers you are aiming for, or some other means of measuring how you are doing with your blogging.  As stated in my previous post I’ve set some blogging goals for myself and have done fairly well sticking to them. This not only helps motivate you to keep writing but also offers some level of consistency for your audience.  Nothing is worse than starting out great publishing 10 posts in one month and then going silent for a year, don’t be that person.
  • Write when it’s right – You like that play on words?  I bet you chuckled for brief second before shaking your head.  I have never been great at writing, literature, and all those book type things.  For me it’s very rare that I can sit down and just let my thoughts flow onto paper (or monitor/screen as it were.)  When I do get those moments of clarity I shut out distractions, turn on some music, and capitalize on the moment.  Don’t force your writing, but when a good idea comes to mind start to write it out or at least jot it down for future use.
  • Read other blogs – Seems obvious, but really go out there and start reading some blogs that interest you.  Perhaps they are written by coworkers, people you’ve met at user groups, or some super awesome person in your field of work that everyone talks about.  This can help you find your footing for style, content, and many other things.
  • Get feedback – This one is huge.  Find some trusted friends, coworkers, or even your family to read over your posts and give you feedback on what they like/dislike about your posts.  Just like giving a presentation to a practice audience, having others review and comment on your writing can be very helpful to making you a stronger writer.
  • Conclusion

    So there you have it, my current blogging tools, a little about my process, and some tips for starting out.  If you’d like to share anything about your own blogging experience or have some feedback of your own feel free to comment below.  Thanks to everyone who has been reading my blog over the past 8+ years now and giving me encouragement to keep writing.  I find it very fulfilling and hopefully you do as well.

     

    -Frog Out

How I Do A Personal Monthly Retrospective

In this post I’ll walk through the process that I’m currently using (going on 5 months in a row now) to do a personal retrospective.  Each month this shouldn’t take more than 10-20 minutes but the benefits have been tangible for me thus far.  I’ll describe the process next but provide some  additional context in the conclusion.

Guidelines

A few guidelines first.

  • Consistent day – Pick a set day of each month to do your retrospective (ex. 1st day of the month, 1st Saturday, 3rd Wed, whatever works best.)  For me the last Friday of the month is my day.
  • Remind yourself – Schedule a reminder, a recurring meeting invite, or some other way to track the day for your retrospective.  I use a recurring meeting scheduled in my work calendar.
  • Timing – Spend no more than 20 minutes on the retrospective.  This keeps things succinct and easy to  complete each month.

Monthly Retrospective Process

  1. What to record
    • What is going well?
    • What are blockers / is not going well?
    • What would you like to accomplish going forward? (To-Do)
    • Why are you here? (see section below, we’ll come back to this)
  2. Write simple phrases or sentences for anything relating to personal life, work, career, family, etc.  Nothing is off limits.

 

At the next month use the following process to review the previous month and then write for the new month.

  • Review last month’s “To-Dos” and mark if completed
  • If an item is in “what are blockers / not going well” for 2 months in a row but no improvement or action taken then make a To-Do for it
  • If an item is in “To-Do” for 2 months in a row but not worked on then drop it off as it is not a high enough priority for you
  • Review last month “what is / is not going well” and see if anything points to future goals or direction (Why are you here)

 

Why are you here?

The “Why are you here?” question takes a little bit of a different approach.  The goal here is to find long term direction in your life.  This could take many forms including “what motivates you the most?”, “what do you see yourself doing when you retire?”, or “if time and money were of no concern, what would you be doing?”  The way to start with this question is to ask yourself the question 5 times in row until you get to the same answer multiple times in a row.  This may not happen in the first few months or even years, but over time you should be able to sharpen your answers until you get closer to your true answer.

Example

(Month 1) Why are you here?

  1. I want to have a good job… why?
  2. I want to make good money… why?
  3. I want to provide for my family… why?
  4. I want to spend more time with the people that I love… why?
  5. I want to bring joy to others because it makes me feel fulfilled…

[Now that you’ve arrived at wanting to bring joy to others, start at that point and continue forward the next month]

(Month 2) Why are you here?

  1. I want to bring joy to other people because it makes me feel fulfilled… why?
  2. I’m good at making other people feel included and that is the best way that I can make other people happy… why?
  3. Someone once helped me to feel included and I realized that I had a natural ability to make others feel included and I feel compelled to help other people and pass along that gift… why?
  4. Someone once helped me to feel included and I realized that I had a natural ability to make others feel included and I feel compelled to help other people and pass along that gift… why?

 

Notice 2 things here.  1st is that we’ve repeated ourselves so we’re getting closer to a true answer.  2nd is that as you continue answering usually you start to add more details and clarity to your responses.  In this example we went from 7 words up to 34 words with much greater detail and intentionality.  These answers aren’t set in stone and you may find that things change over the months / years.  What once was important may be replaced by something else that takes on greater priority.  The important part is that you ask the question and be honest with your answers.

Conclusion

Earlier this year I was speaking with my mentor (if you don’t have at least 1 mentor I highly encourage you to find one as soon as possible, they don’t even have to work at the same company as you) trying to answer the question “Why am I here?”  The question was posed to me at a technical leadership training event that I had attended.  I didn’t have a very good answer for the near or long term in my life.  In order to find some direction I used the simple questions in the retrospective above (you may recognize some of these from an agile retrospective meeting).  The benefits from this process have been very real for me.  I’ve found things that I’ve not enjoyed doing in my life and stopped doing them or found ways to transition that work to others who do enjoy it.  Conversely I’ve also found things that I do enjoy in my life and worked to position myself to have more opportunities in those spaces.

If you try out this process I’d love to hear how it works for you, even a follow up after you’ve been through it a few months.  Good luck and keep searching until you find your Why.

 

-Frog Out