Take Control of Career Progression – Dev Leader Weekly 25

Happy 2024, friends!

I hope this is filled with many amazing opportunities for you and your loved ones. I started off this year by setting some goals, and after one week, I figured I’d share a brief update on them:

Otherwise, a lot of my goals are aiming for growth across different platforms. If I have any revenue, I’ll be looking for ways to reinvest all of it to get more time back and/or create higher quality content. Content creation takes time, and I’d like to be more efficient at it to offer you more free content! You can help me make my content better by filling out this quick survey:

I hope you enjoy this issue!

A quick reminder that you can refer your friends to sign up for my newsletter! You can get free membership access for a few months to my site to access the newsletter archive and my Behind The Screen weekly vlogs that I do.

What’s In This Issue

Exclusive Article: Brag Documents

As software engineers, many of us are very motivated to keep growing in our careers — and you should be motivated! Career progression is for you to own!

But sometimes it feels like we’re just waiting to be told about the promotion. We’re not sure if we’re on track or if our managers are aware of what we’re doing.

I get it — I’m an engineering manager and I bust my @$$ to try and make sure I am super-connected with my team… but it’s impossible to know everything. This week’s exclusive article focuses on “Brag Documents” and comes with a free resource! The video isn’t ready but it will be released Monday on my channel if you want perspective additional to the article.

Quote of the Week

Design Patterns - Dev Leader Quote

Design patterns are guidelines or templates for solving common design problems in software development. They are proven solutions to recurring design issues and challenges software developers face while developing applications or creating systems.

TL; DR: They’re patterns you can apply so you don’t need to reinvent the wheel.

But the great thing about design patterns is that they’re more like a recipe for a chili than they are like a cookie cutter. The recipe gives you some pretty good guidance but you can add your twist to it — whereas with a cookie cutter, you get the exact shape for your cookie.

Now I’m hungry, but let’s not get distracted from the point here: Design patterns in software engineering can save you a lot of headaches.

There’s a list of 23 software design patterns that come from the Gang of Four that form a solid foundation for object-oriented programming. Among these, we have things like the factory pattern and the singleton — two design patterns that are used very regularly.

But the point here is that spending some time to learn and understand them is valuable. Not just because you have a pattern to copy, but because it might get you thinking about solving problems in other ways. If you understand what they set out to solve with the pattern, you can learn where it’s applicable (and where it’s not). You may even identify your own patterns that you regularly repeat in different projects or different areas of your codebase.

I highly recommend you spend some time learning design patterns — not necessarily to memorize them, but to get exposure to them. The worst thing that happens is you learn something cool and have another tool in your programming toolbox to leverage.

Why not?! If you picked one design pattern every two weeks you could still get through the Gang of Four’s 23 design patterns in a year without feeling overwhelmed. No New Year’s resolution? Now you’re set!

A pretty good week for creating content! I’m happy with the progress for week 1 of the new year! Looks like I overused purple this week… Whoops!

You HATE This Design Pattern But It Enables Refactoring!

YouTube player

This article focuses on refactoring global static variable usage using a familiar design pattern. The design pattern isn’t *required*, but if your code base is very large and you want to do this in stages, it certainly helps!

SURPRISE Benchmarks – IEnumerable vs Paging (SQL & Entity Framework)

YouTube player

THIS here is the video I wanted to get together for last week’s issue! Unfortunately, I was getting erroneous data in the output — and I don’t just mean it wasn’t what I expected… it was wrong. THIS data is not exactly what I expected, but at least it’s valid!

NOBODY Can Agree On Primary Constructors in C# 12!

YouTube player

Have you started using primary constructors on classes? Or did you read about them and hate them? Join the debate! Leave a comment on the video — I’d love to hear which team you’re on and why!

The Big List of Design Patterns – Everything You Need to Know

The Big List of Design Patterns - Everything You Need to Know

This was my mega-article that I launched this week alongside the e-book. I highly recommend you bookmark this mega-article because I’ll continue to add relevant design pattern articles linked from it.

How to Compare Strings in CSharp: Tips and Tricks You Need to Know

How to Compare Strings in CSharp: Tips and Tricks You Need to Know

This one is primarily for the beginners in C#! We have multiple different ways to compare strings, so let’s see which ones make the most sense… and why!

How to Format a String as Base64 in CSharp – Beginner’s Guide

How to Format a String as Base64 in CSharp - Beginner's Guide

Another beginner-focused article looking at Base64 and how we can format binary data as strings.

Understanding foreach Loops in C# – What You Need To Know

Understanding foreach Loops in C# - What You Need To Know

Annnnd the last beginner article for this week looking at one of our most foundational constructs in C#… the foreach loop! Learn how you can use these to go through collections of data!

Chain of Responsibility Pattern in C# – Simplified How-To Guide

Chain of Responsibility Pattern in C# - Simplified How-To Guide

The chain of responsibility design pattern was the latest addition to the design pattern mega-article. This one is interesting for sequencing handlers — but I think I prefer a loop-based approach instead!

Learning Resources – What Happened to the PACKT Winners?!

Turns out neither of the two people I draw last week responded, which is pretty disappointing. I will pick another two for the C# 12 book from PACKT today (the day this newsletter launches) and reach out. I’ll be reducing the window of time to reply from 7 days down to 48 hours because I feel like it’s unfair that many people signed up being eager to have a shot at free resources.

I’ll also ask the new winners (if they respond this time!) if they’re comfortable if I share something brief about them so that you can have evidence there was truly a giveaway!

PACKT has agreed to another Mark J Price book to giveaway now that we’re in the new year, so follow along on LinkedIn or Twitter if you want a shot at winning!

Community Spotlight

My good friend Muhammad Waseem is getting his YouTube channel up and running this year! Muhammad is extremely active on LinkedIn and creates content on various platforms for C# and dotnet — odds are you already follow him or read his content!

Muhammad always has useful information to share, and he takes his content creation very seriously. He’s personally been a great help in my own content journey, and now that he’s launching on YouTube I’m happy to support him there as well. Especially with the following he has on other platforms, I’m sure his YouTube channel will overtake mine in numbers in no time at all!

Please give him some support there if you enjoy C# and dotnet content!

Last Week’s Coding Challenge

Did you try out last week’s coding challenge? This was a console-based code editor! Certainly not an easy one, even though it’s all in a console! We get to remove many of the complexities of dealing with different technologies but it’s still not

This Week’s Coding Challenge

We’re doing something different this week… No challenge from me. Instead, I want you to head over to John Crickett’s Substack and pick a coding challenge! John puts out awesome coding challenges that you can try out and they’re language agnostic too! Try one out and give him a follow!

As always, thanks so much for your support! I hope you enjoyed this issue, and I’ll see you next week.

​Nick “Dev Leader” Cosentino
[email protected]

Dev Leader YouTube
Follow on LinkedIn
Dev Leader Instagram

P.S. If you enjoyed this newsletter, consider sharing it with your fellow developers. Let’s grow our community together!

author avatar
Nick Cosentino Principal Software Engineering Manager
Principal Software Engineering Manager at Microsoft. Views are my own.