Is the tech stack or programming language at any given FAANG important at all?

Is the tech stack at any given FAANG irrelevant to most people? I see so many great posts and TC advice here, as well as the importance of having a good manager and WLB, but noone ever mentions so much as a programming language. I used to adhere to the philosophy that PL is secondary to being a good engineer, but have since changed my mind completely, as I don't think it's actually possible to be a good engineer in any given language without spending some serious time learning the best practices of a given language, not just how to write a hello world through Stack Overflow and keep winging it. Am I being silly by limiting myself to opportunities in a select set of languages, like C, C++ and Go? Is all SWE just politics at the end of the day, and being proud of your work well done is pointless and not appreciated? #engineering #software #swe #programming #language TC: 250k@SDE-II, Third Coast / remote

Poll
75 Participants
Select only one answer
Amazon jassman Jun 16, 2021

Certain languages tend to fall into buckets, eg C/C++ for embedded, Java for enterprise backend, Go/Rust for modern systems programming, C# for Windows stuff, and so on. So it matters to that extent, although some places do break the stereotypes.

Salesforce SecretNerd Jun 16, 2021

Quality engineers can work in software using any language. You are not expected to know all the languages, but you are expected to understand programming and software concepts so that it’s easy to learn and use any language as the job requires it I started out of college knowing only Java and somewhat Python. Over the past 5 years I cut my teeth on and successfully worked using C++, C#, CMake, Gradle, Terraform, Groovy, JavaScript, Ruby, Windows MSI installer, bash scrips, command prompt scripts, and more. That list doesn’t include all the non-language technologies and concepts which have the same philosophy - you need to be able to learn them as you run into them

Amazon wawY45 OP Jun 16, 2021

I've been doing programming for over 10 years, and it was only recently that I've changed my mind on this PL issue. One interesting project I've had to deal with is professional Java developers doing a brand new project in Go. The whole thing "worked", but the code was total garbage, and wasn't accepted by the client, because it was essentially buggy Java code written in Go, with every single Go convention violated. (Meanwhile, I was assured that all of those Java developers were senior engineers.) I've also used Go myself in one project before actually learning it, and it was only after the project has ended, and I took the time to actually learn Go properly, that I realized how much stuff I was missing. As such, if a quality engineer never spends serious time learning a given language, they'll simply not be capable of using it effectively; possibly not even knowing their own shortcoming. Most enterprise code is of a very bad quality precisely for this reason, because people not familiar with the language are given a free rein at it; often without anyone on the team actually knowing the language.

Salesforce SecretNerd Jun 16, 2021

I agree there’s a place for deep expertise in a single language. There are times when serious optimization is needed and absolute best practices are a must. In these situations, understanding a language deeply is super important But I would argue that is the minority of developers. And even then, the languages vary. Sometimes that situation is a video game written in C++, or a highly important cloud service written in Go or JavaScript. But the fact that the language can vary even for the deep expertise situations brings us full circle to “the specific language doesn’t matter”, it’s more important that you can become an expert at the language being used