My Biggest Fear In My Software Engineering Career – Dev Leader Weekly 59
TL; DR:
Course Announcement: Reflection in .NET
I am very happy to announce my latest Dometrain course: From Zero to Hero – Reflection in .NET! This is one of the language features I use heavily in C#, especially when building plugin-based applications. I’ve spent many years using reflection — and yes, I’ve even had situations in REAL professional code where I’ve had to do some scary reflection stuff.
Reflection is incredibly powerful — but we all know that with great power comes great responsibility. My goal with this course is to help you navigate all of the awesome things reflection can do and provide an understanding of the drawbacks as well.
BUT IT DOESN’T STOP THERE!
Until the end of September, you can use code?BTS30?at checkout to get 30% off any?course, code?BTS20?to get 20% off annual?Dometrain Pro, and code?BTS15?to get 15% off any of the already discounted?bundles! If you wanted to dive into learning C#, this would be a great opportunity to pick up my course bundle at a discount! NOTE Double-check that the promo code is applied in your cart (manually add it otherwise).
Exclusive Article: My Biggest Fear In My Software Engineering Career
No, It’s Not Spiders
I’ll be honest: I absolutely hate spiders. I’m terrified of them. But fortunately for me, there aren’t many spiders that show up in software engineering.
No, my biggest fear is around complacency.
I don’t say this because I’m pretending to be some uber-over-achiever-elite-productivity person — It’s my biggest fear for two reasons:
I don’t like things sneaking up on me — remember? Spiders. No thanks.
In this article I’ll share how being forced out of my comfort zone has led to the most growth in my career. And yes, that meant losing the “expert” title and accepting that it’s time to be a newbie all over again.
Forced To Be A Newbie
In the vlog that I posted this morning, I discussed a very recent example of this OUTSIDE of software engineering. I’ve been going to the gym consistently working towards training for powerlifting and competitive bodybuilding for 21 years now — just as long as I’ve been writing code. But recently I forced myself back into complete newbie territory by joining my wife’s Crossfit gym:
The first workout was only 30 minutes long. I nearly blacked out after 3 minutes. THREE MINUTES.
But I’m not worried — I know I have some huge areas for improvement, but I’ve seen these all before in my lifting:
But this isn’t a CrossFit post, this is about software engineering and career growth — and the point that I want to make is that I have had TONS of experiences where I’ve found myself right back at square one as a newbie.
They’ve been some of the best growth opportunities that I’ve ever had:
There have been many other situations where this has happened, but every single time it turns into something incredible for me in my career.
Starting As A Beginner
With story time out of the way, I want to talk about what this all means more practically. We all know that as we’re trying to gain experience, work towards promotions, and become more successful in our careers that we’re expected to build expertise. This remains true with all of this “be a newbie” talk.
When you have one of these experiences where you’re positioned to be a novice all over again, you don’t lose any of your expertise. Your expertise and experiences are things that you can lean on to help accelerate some of your learning. If you tap into them, they should also help remind you that you HAVE been successful, because things like imposter syndrome will start to show their face again.
ACTION: Remind yourself that you don’t LOSE your experience and technical skills. You can leverage them in different ways.
It’s important that when we go through phases like this that we remain open to new ideas. So yes, it’s great that you can still lean on past experiences, but we want to take advantage of being a novice in a new space. This will help us with:
ACTION: Lean into the fact that you’re SUPPOSED to be a novice in this new domain. Be curious.
If this all sounds kind of scary still, there’s a paradigm that many people have taken on called Growth Mindset. Having a Growth Mindset is the belief that we can improve our abilities through learning, effort, and persisting. That lines up pretty well with what’s being discussed here, right? You’re tossed into something new and challenging that is outside of your comfort zone but if you:
… then you’ll come out on the other side of it feeling like you’re an expert eventually.
ACTION: Take on a Growth Mindset. Put the effort into learn and persist through the discomfort.
Take Action!
So this all sounds great — aside from the total discomfort — right?
I get it. To this day, I have a hard time convincing myself about this stuff. A lot of the opportunities I’ve had almost felt like a forcing function and I just stuck it out.
But we can be proactive here. We can try to seek out opportunities! This can start off as simple and as small as work within your team. For example, if your team builds fullstack but you keep finding that you gravitate towards the frontend, or maybe it’s the database because you love writing SQL queries (who doesn’t, amirite?!) — let’s switch it up.
Speak up to your manager, product owner, or whoever is helping prioritize work to see if you can try taking on some of the areas you’re NOT comfortable with. I can tell you confidently as an engineering manager that I am always trying to keep my eyes open for opportunities like this. I need to make sure people feel like they are learning and challenged — so it’s NOT always about just siloing people into the thing they’re 100% amazing at. It falls on me to balance these things properly with priorities and the criticality of deliverables.
ACTION: Start as small as taking on work items outside of your comfort zone
Now these things don’t have to be directly inside your team with work items. If you’re more comfortable, perhaps a more senior software engineer, you could start to look for opportunities like this outside of your immediate team. Maybe there’s an opportunity to improve systems or processes between your teams and some others — but that hasn’t been your job. You’re not the expert there but you know it could be better.
Maybe it’s time you make it your job. Come up with a proposal to your manager about why you think this is a valuable problem to solve — a worthwhile investment for your time. Let them know you’re going outside of your comfort zone to set the expectations and see if they have any additional support they can offer to you. They might not feel it’s a good time or a priority — which should be respected if there are other business priorities that deserve more attention — but this can be a great way to show initiative, be proactive, AND get uncomfortable.
领英推荐
ACTION: Take initiative to start a cross-team / functional-area proposal to drive improvements.
For those of you who feel like you’ve been stuck in one spot for a long time without growth — maybe it’s time to put the newbie hat on again. Maybe it’s time to explore a different project, product/service, or team altogether. It can be a scary thought, without a doubt, but I always try to remind myself:
What’s scarier? Taking the chance at something new and it’s challenging? Or staying put without growth for more years to come?
Weekly Recap
Core Values and Dealing With Clients – Interview With Emily Jowers
It’s all about delivering value to the customer. But do they even know what they want?!
I was fortunate to sit down and chat with Emily Jowers where we talked about her career journey up to staff software engineer.
We chatted through her core values that she aims to embody and promote in software engineering teams — and life in general. We also got a glimpse of how to navigate user requirements between groups of users that are hands-on and hands-off!
Thanks for the great discussion, Emily!
4 Years In Big Tech After Startups – Principal Software Engineering Manager AMA
I had 6 internships — nearly every single one of them at startups.
After that, I spent 8 years at a company as one of the first engineers.
I helped it:
Moving to work at Microsoft was one of the biggest shifts of my life.
It turns out, things are different in Big Tech — so let’s see how!
In this stream, I focused on:
Performance Battle – LINQ Chunk vs MoreLINQ Batch!
You asked for it — I delivered.
What’s the big difference between MoreLINQ’s Batch method and LINQ’s Chunk method?
On the surface: Absolutely nothing.
But can we go… deeper? What will we find when we compare benchmarks for both of these things?
You might be surprised! Now I am not suggesting you use one or the other necessarily, but I’d like to show you the tools for you to be able to decide for yourself.
AI Will Replace Developers… Or Will It? – Interview With Amichai Mantinband
You know it’s right when it fits like a glove.
At least that’s the case for Amichai Mantinband when he stumbled upon computer science! He knew right away that he had found the right career path.
I had a great discussion with Amichai, and we even went into the weeds on AI taking all of our software engineering jobs!
… Well, not quite.
But you’ll enjoy our discussion about the impact of AI on software engineering. That’s for sure!
Huge thanks to Amichai for the interview — Looking forward to further discussions in the future!
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
Socials:
– Blog
Principal Software Engineering Manager at Microsoft
3 周My new course has just launched! Huge discounts on this one and more inside today's issue ??