Getting accepted into a top level CS program.
kcy: I think you have about 1 year in industry before your academic cred is used up.  Generally speaking, a research position in a company like Google, IBM, HP, etc. is definitely more in-line with what the admission committee will understand and respect than a code-monkey job at a web 2.0 startup or in finance.  I think these latter sorts of jobs hurt your chances of getting into a highly respected academic program, though they may make you a better entrepreneur.  I think status in the software community (e.g. at HN or in the open source world) matters little unless someone on your admission committee knows what that status means.  My experience has been that many university professors at Stanford and MIT have no clue about this sort of stuff (though of course some are very well-informed).You should probably ask your current professors for letters of recommendation now and have them sent to your registrar so they can be forwarded on later when you decide to apply.  Unless you have a natural way to continue your connection with your professors it will likely be very difficult to go back to them even a year later and ask for the letter and have them remember you (unless you were a super-star of course).  Just get your letters done now.  You can always have them update the letter in x years if you feel there's something relevant they can add.  More likely than not you'll just be thankful that you already have the letters since you never really maintained contact.  On the other hand, remember that the longer you wait, the more unusual it's going to be for the admission committee to see a letter from so many years back.If you're really serious about wanting to get into one of those programs you could actually move to Stanford/MIT and try to get a research position working with some of the people in those departments.  Or perhaps going to them and asking if there's any companies they would recommend working at prior to a graduate program.