Every engineer I know has asked this at some point: “How deep should I actually go?” According to me, the decision to go deep down the rabbit hole comes down to two things:
- curiosity - what genuinely pulls you in
- career direction - where you want to be in the next 2/3 years, not where the internet says you should be
My honest take: depth works best when it serves at least one of those. Ideally, both.
If something aligns with your career direction, going deep is an obvious win. One simple way to test this is to think in 2/3 year windows and ask yourself: Does understanding this layer actually move me closer to where I want to be?
If you are building web apps, you do not need to master CPU instruction sets. If you are working on databases, B-tree internals matter far more than knowing every Linux kernel detail. Context changes what “deep” really means.
Abstraction layers exist for a reason. They let you build without getting overwhelmed. A frontend engineer who understands HTTP is usually more valuable than one who has memorized TCP packet headers but struggles to ship features.
If something does not align with your career direction, curiosity still matters. Learning out of pure interest is not wasted time. You do it because it optimizes for motivation, long-term learning, and happiness.
What does not make much sense is going deep in areas that serve neither curiosity nor direction - often driven by comparison or fear. So keep checking in with yourself. Ask questions. Course-correct often.
Depth is most powerful when it is intentional.