I'd like to point out that my friend wasn't hired by Tt Games because he could build engines; they didn't give a stuff. What they cared most about, and what he was most passionate about was a very specific part of the engine; the renderer. If you love working on engine-level code and want to do that as a job, work on a specific part and get hired to do that. If you want to make games, you're wasting your time making engines when there's a million open-source alternatives already out there that you can easily tweak if need be, yet are light-years ahead of where you're at.
Me personally? I'm a tools/systems kind of guy. I really love the nitpicky design of things that make life easier for the end developers. Not huge engine stuff, just little methods/functions or scripts that a dev can pull that abstracts away a lot of the annoying complexities. I love making localisation systems, timer functionality, debugging/error libraries and stuff like that.
I'm probably going to end up working outside of game design and in more generalised programming, but I just want to make the point that there's so much to do on video games, if you plan on being part of a team it's important to pick your battles and figure out the very specific thing you love doing most, and get really loving good at it. If you want to work as an indie, then you don't have time to forget around; you need every shortcut you can afford, and that includes using premade engines and code libraries.