|
|
|
|
|
by notacoward
4140 days ago
|
|
1. Start at the top of the stack (nearest to the user, furthest from the hardware). 2. Keep learning about lower layers until you get tired or things just don't make sense any more. 3. Define that as "full stack" and ignore anything still below. For most people the process seems to terminate somewhere around the kernel/user boundary, much like someone in a boat who's aware of the vast shapes moving below but never gets a clear sighting. IMX a typical "full stack" engineer can manage things like routing tables and logical volumes, understands that context switches and page faults matter, but becomes increasingly unable to explain what they really are to others. By the time you get e.g. to different kinds of cache misses or database/compiler internals (even those are still out in user space) forget it. TBH I think most "full stack" engineers are half-stack at best. So am I. Twenty years ago the upper parts of a modern stack didn't exist and I could explain pretty much everything in the lower parts from tty to network to disk plus VM/schedulers/etc. Maybe back then I could have called myself a full stack engineer. With today's deeper stack (and my own career progression) I'm down to about half, somewhere in the middle. I don't actually know anyone who's truly full stack any more. |
|