Alex and Rahul and the other senior people on Taro have consistently emphasized how important good software engineering fundamentals are to long-term career success as a software engineer. This is in contrast to learning the latest popular framework or area of development. Can people define what those fundamentals are and how one should go about acquiring/improving them?
The definition of a fundamental is a skill that will be useful anywhere you go. Fundamentals are really interesting as it's not binary either - Even among fundamentals, some are more broadly applicable than others (applying to your personal life as well!).
There's a lot of fundamentals that a software engineer can pick up, and I'll split the categories up into separate comments as there's simply so much to cover. Let's start with my favorite one:
This is by far the most important fundamental IMHO as it is literally useful in every single context, both inside and outside of work. Communication is a massive area that takes almost everyone a while to get good at, but to start, you should watch my entire series about Effective Communication. Communication is also connected to many other "sub-fundamentals":
Similar to communication, this can also be applied outside of work. The math is simple: If you are able to get more work done per unit of time than others, you are in a great position. To get better at this, I recommend our masterclass on effective time management in tech. Here are some "sub-fundamentals":
This one is more specific to software engineering, and I recommend this Q&A from a Meta engineer as a starter resource to learn more about it. Here's the "sub-fundamentals" for it:
I will add one more
The ability to Sympathize with others and understand where they are coming from becomes increasingly important as you progress in your career
Use compassion to understand the need of your teammates
Use compassion to understand the priorities of your managers/directors
Use compassion to understand the priorities of other teams