2020: The Year of Data
A new role with the same vision
I’ve always been happy to share that I embrace change and take on new challenges every year. I started the tradition of celebrating the year and looking back at highlights in a 2015 blog post. This year I will continue that tradition. Despite the challenges and struggles of 2020 I am hopeful for the future and optimistic about the changes to come. Last year also impacted me in personal ways that inspired me to launch a separate blog.
For my post summarizing 2019, I began by sharing statistics about the exotic locations I traveled to and reflecting on 25 years of professional development. This year, due to the pandemic, the theme was exploring the Pacific Northwest. I also made a major career move early in 2020 and wrote about my new role as Senior Program Manager for .NET Data. That checked one of my major goals for 2020. My mission for several years has been:
Empower developers to be their best.
As a program manager I continue that mission by helping steer the direction of products to address the greatest needs of the developer community.
My other goals were mostly personal, and I reflect on those and share my personal journey in a separate blog post: 2020 Couldn’t Shake Me.
My Goals for 2021
I have many goals for 2021 and shared my personal ones my other blog. These are my technology-related goals for 2021.
- Continue to advance my career at Microsoft. My goal is to become a principal program manager.
- Resume my news feed of daily relevant updates shared on social media.
- Help the EF Core team release EF Core 6.0.
- Raise awareness and increase adoption of .NET for Apache Spark.
- Understand and implement what’s needed to make a great GraphQL story for .NET developers.
- Support local user groups around the world through virtual presentations.
I had more open source contributions in 2020 than 2019, which was also more activity than 2018 and 2017.
GitHub contributions in 2020
The increase is due to my active involvement with the EF Core team and taking on a major side project with Expression Power Tools.
Twitter in Review
My followers grew from 13,102 in 2019 to 15,101 this year. That’s a 15% increase and slightly higher than my growth in 2019 (up from about 4 followers per day to 5). I assume that’s mostly due to my association with the EF Core and .NET for Apache Spark teams. The more important number, engagement, was way down. I attribute that mostly to consistency: I stopped regularly posting relevant news items and was more reactive with product-related tweets. It’s my goal to change that in 2021, so if you were following me to stay abreast of the latest in the .NET world, I’ll be back!
As always, the following stats are based on the last 90 days.
Twitter removed the dashboard for demographics information in early 2020 and I don’t use 3rd party tools to analyze these, so I have no updates here.
The most impressions for any tweet this year was a reference to a blog post I wrote about how to connect to Azure Cosmos DB directly from a Blazor WebAssembly client.
Mission: accomplished.#Blazor 🔥 #WebAssembly 🕸 talking directly to #CosmosDB 🌍 from the browser using the #EFCore provider (yes, that is #EntityFramework Core _in_ the browser).— Jeremy Likness ⚡️ (@jeremylikness) May 12, 2020
No credentials shipped in the client, authentication required.
Blog post will come, of course. pic.twitter.com/h7Y2aOYQ7c
My top mention was a tweet by the official .NET Twitter that featured a blog post of mine about how to inspect and mutate IQueryable expression trees.
How do products like EF Core let you to write whatever queries you like, then successfully intercept them to run SQL commands? The secret is in the provider.— .NET (@dotnet) August 20, 2020
To help explain these concepts, @JeremyLikness built an example project and discusses how here: https://t.co/xL7lRwL7QV pic.twitter.com/Bj4b5vunkJ
Finally, the top “media tweet” was a post announcing the open source Windows Package Manager,
`winget install terminal`— Jeremy Likness ⚡️ (@jeremylikness) May 19, 2020
`winget install powershell`
`winget install powertoys`
What am I doing? Setting up a new machine of course.
It's that simple. Introducing the Open Source #OSS native #WIndows Package Manager! #msbuildhttps://t.co/bSSudMlJ10 pic.twitter.com/iFqlkggYOm
That’s a wrap for social media. Let’s look at my blog.
Developer for Life in Review
Last year was the first year I did not move my blog to a new platform. I wrote about migrating from Medium to Hugo and have continued to update my Hugo version and use CI/CD o build and deploy it.
Last year I received 96,047 visitors over 123,961 sessions, about a 30% increase from the previous year.
This year dropped to 61,930 visitors over 84,376 sessions. In my new role and with my focus split between two blogs, I simply did not write enough fresh content to drive new traffic. I don’t have a goal for visitors or sessions, but I do have a mission to empower developers and blog posts are a big part of that. I will do more in 2021. Almost three-quarters of incoming traffic is from organic search.
Acquisition for Developer for Life in 2020
Most read articles on Developer for Life in 2020
Here are the top five (5) most read articles from 2020:
- Build a SPA site with Vanilla.js
- From Angular to Blazor: The Health App
- Blazor State Management
- MongoDB on Windows in Minutes with Docker
- Using LINQ to query dynamic schema-less Cosmos DB documents
Here are the top five (5) filtered to only those articles I wrote in 2020:
- Blazor State Management
- My New Role as Senior Program Manager for .NET Data
- Dynamically Build LINQ Expressions
- Build a Blazor WebAssembly Line of Business App Part 1: Intro and Data Access
- EF Core and Cosmos DB with Blazor WebAssembly
Because I did not post as much news, I did not use my link tracker as much so I’m skipping statistics for that. I will likely retire the link shortener in 2021 and just post direct links.
Looking back at previous years, technology trends I identified include:
- 2017 Docker and Serverless - package and scale your code
- 2018 .NET Core - build your code for any platform
- 2019 WebAssembly - target one platform that runs everywhere
See you in 2021.
- Hack Your Career (Part One of Two) (Technology)
- Inspect and Mutate IQueryable Expression Trees (.NET Core)
- Look Behind the IQueryable Curtain (.NET Core)
- Multi-tenancy with EF Core in Blazor Server Apps (Blazor)
- Run EF Core Queries on SQL Server From Blazor WebAssembly (EF Core)
- The Year of Angular on .NET Core, WebAssembly, and Blazor: 2019 in Review (Technology)