There is definitely luck involved, but there have also been some specific choices I made. I've always sought jobs where my efforts directly contribute to a interesting physical product. Whether advanced HVAC, automotive, or now avionics, the stuff I helped make was always cool. These products, usually from big companies, tend to use older software technologies, but the entire product is often quite advanced which keeps the interest level high. Furthermore, you might work on things that end up teaching you all sorts of stuff well outside the pure software realm.
I think if my Big Co. jobs were purely corporate IT stuff and not core product development, I would have quickly bailed out.
I think if my Big Co. jobs were purely corporate IT stuff and not core product development, I would have quickly bailed out.