Getting accepted into a top level CS program.
brent: (disclaimer: I attend a non - "top school")0. If you want answers as to what schools look for in students start by looking at CV's of students in the department.  More specifically, look at students in the research areas you may be interested in.  This is probably the single best resource available to you.  I knew my weaknesses (non top 10 undergraduate school, several years in industry, no undergraduate research experience, relatively unknown letter writers, and a non-CS undergraduate degree) and adjusted my expectations accordingly (ie I knew I wasn't going to get in a top 10 school despite high grades, good industry job, and perfect quant gre).1. 0 years.  There are a number of reasons from familiarity with your letter writers to the lack of commitment if you work in a non-research position.2. If you are working in a research position and could publish that is ideal.  However, I doubt this type of position will be available to you (usually it requires a phd).  In terms of acceptance I believe industry experience is nearly meaningless.  There are plenty of reasons to do it for personal reasons, but look at the CV's of current students at the schools you are targeting and look at how many of them worked between undergrad and grad.3. Again, a research position is probably the only type of position that will help you in the admissions process.  It may give you access to significant letter writers, a chance to be an author, etc..4. I presume that status implies a significant contribution.  This could help, but unless the contribution is related to computer science it probably isn't worth much.Good luck.edit :: a couple small updates.