The term “full stack engineer” has come up quite a bit lately on blogs and podcasts and the like and I figured I’d throw in my $0.02 on the matter. First though, I think it’s probably worth a super quick review of my “career path” (if you can call it that) since I think that probably has a lot to do with shaping my opinion on the term/idea (duh).
I started out in the Air Force and basically started doing network stuff right away. Strictly network stuff, there were server guys, and desktop guys, and long haul circuit guys, but I was just a network guy. My first real job after the Air Force I worked in healthcare for a large company that owns a whole slew of hospitals across the US. I was just a network guy again. I did like at least a million network refreshes on hospitals of 50 beds to 500 beds. Then I jumped over to a large VAR and for the most part was still just a network guy, but started to slowly touch more security (ASAs mostly) and wireless (5508s and the like).
So basically up till I jumped to the VAR I did nothing but route/switch network stuff. Like nothing at all, and I really liked that. I got to nerd out pretty hard and learn a whole bunch of crap that I don’t remember now about the OSPF database and spanning-tree and who the hell knows what else. That was a big point of pride of me being the “expert” (lol or whatever) on the network. Frankly at that time I scoffed at the idea of generalizing or getting wider w/out staying deep (beer was/is continuing to help me get wider regardless of my opinion on the matter). As I moved onto the VAR though and got into customer facing situations more so, or at least more often, than in the Air Force or at an Enterprise, and I got tasked with doing more things that were outside of my comfort zone I had to broaden out at least a little bit. That was good I think because I was still the “network guy,” but at least I could begin to have intelligent conversations about the firewall and how it should interact with the network.
As I moved into pre-sales and then into whatever the hell it is I am doing now I’ve gotten broader and broader, but have always been able to relate back to my core base in networking. I think my point I’m trying to get at is I don’t think its good advice (personal opinion here) to try to start wide and stay wide. I think you’ve got to be able to have an area of expertise that you can start from, and expand out from there — in my case nowadays that s learning more about virtualization, programming, and storage. These things touch all of the data center networking that I do most, and as I learn to converse about these other silos better I get better at my core strength because I’m able to bridge silos and help translate requirements and configurations between teams.
I have a love/hate with the idea of a “full stack engineer.” I think that you need to have a strong foundational knowledge in one or a few (but can’t get too wide IMO) areas, and then just start asking questions like crazy about the other things/silos that touch/interact with whatever your core area is. I think if you can do that and just never stop asking you will be setup for success in whatever you do.