Tech Tips for Junior Devs

Just a few things I’ve observed from a number of recent interviews

Tech Tips for Junior Devs

I’ve been doing a lot of interviewing over the last few weeks. I thought I’d share some tech guidance based on common issues I’ve seen.

The TLDR to this whole post is just read Effective C++ from cover to cover. In fact, just go do that. Then subscribe to Modern Software Engineering on YouTube.

Still here? If you’re writing code in C++, I’m assuming you’re doing so for performance reasons and if that’s the case you’re throwing out any performance advantage you may have had if you don’t understand a few basics. Writing code in C++ isn’t just learning the syntax for a new language, especially if your only exposure to code has been managed memory languages. 

Any Big Bang Theory Fans? You know the episode where Leonard has to wear that really itchy jumper? Every time you write the words new or malloc in your code that’s how you should be feeling. Right till the time that you write the word delete or free. If you allocate memory on the heap, it is your job to free it later. Make sure you do and all the while it’s not done should have you in an uncomfortable itchy state of anxiety.

Writing C++ code places a higher cognitive load on your brain compared to writing, say Python or Java. Accept this. Embrace it. Make sure you do it. Pretending otherwise will end up with you writing code that would probably have been faster in Javascript. 

Let me give you an example. Let’s take a simple function declaration that in C# looks like this:

MyObj1 DoSomething(MyObj2 o)

In C++ there are (I think) 40 possible options you have for that same function signature depending on how you’re handing memory, errors, const correctness and to some extent just style. If you don’t understand the differences between them and aren’t actively making those choices every time you write (or review!) a function, then why are you even writing C++ code in 2026?

In order to do that, you really do have to understand the difference between the heap and the stack (and scoping of variables on the stack).

Almost universally, every AI assisted solution to our tech test had obvious memory leaks. You should be using AI, but you need to understand the basics first. Almost every AI assisted solution also wrote code that perfectly multithreaded, right till it all became synchronized on a misplaced lock making the code perform even worse.

Using AI is a massive accelerator, but (for now at least) you can’t skip mastering the fundamentals yourself first.

Oh, and having not really written much C++ lately, wow do I miss const correctness. Why did other, newer, languages drop this?