Programming. Realtime computer graphics. Demoscene. Game development. Stuff.
3D engine design redux
On the other hand - maybe it's the way to go. You're designing the engine around some specific technologies and approaches, to be used in some 2-3 years.
That way, when fancy water reflections go out of fashion and are replaced by fancy waxed floor reflections, you'd throw everything out and restart from scratch. Predicting that this moment will occur only in the next console transition (hey, cur-gen can't handle fancy waxed floors!).
Pretty reasonable I think, in 2-3 years it's likely that the things will be changed in non-trivial way, so you'd need to rething and possibly remake some parts of the technology anyway.