After working for 5 years in startups and small companies, this is my first time in BigTech. I constantly feel that while I am able to get tasks done, I still lack in fundamentals. This sometimes leads to embarrassing situations where I am not able to answer basic questions during normal conversations.
I would really like to not only brush up but master my fundamentals of being a software engineer.
If we were to make a list of fundamentals that strong software engineers have mastered, what would that list look like?
Thanks for sharing your situation - I felt a lot of this after switching into Meta back in 2017 (it was my first Big Tech company).
The thread Gideon linked is great for the list of fundamental skills, but something I want to mention is that you should be extremely comfortable not knowing what's going on and failing. Only after you adapt this mentality will you be able to learn extremely quickly and build skills properly. Cat Chen expands on this incredibly well in this thread: "What’s the most effective way to switch domains in tech?"
This sometimes leads to embarrassing situations where I am not able to answer basic questions during normal conversations.
It's only embarrassing if you make it so! There's nothing wrong with not knowing something basic - This can even happen when you've been a high performer on a team for a long time. What I recommend in these situations is poking fun at yourself and laughing it off. When this happens to me, I'll say something like, "I reaaaally feel like I should know this... but I don't 😂. I'll figure this out ASAP!" This shows your self-awareness alongside the drive to improve.
Body language is really powerful in tricky situations like the one you outlined. I talk about it in my depth in my Effective Communication Series, which I highly recommend: Alex's Guide To Effective Communication