Questions you need to ask:
What will your working environment be like? (Quiet? Noisy? Crowded? Will people be bumping into you all day long? Will you be under the room's air conditioning duct? Can you use an ipod? Can you bring in comfort items (wrist-rest,keyboard,mouse,armrest pads) from home?)
Software: Compiler? IDE? Revision control? Testing? Bug-tracking? Editor? OS? Window manager? Can Open-Source tools be installed? Will you have root access? Can you bring in your own .emacs, .cshrc, etc files?
Hardware: What will be on your desktop? Monitor size & type? Computer? RAM? CPU? Harddisk?
What are their coding standards?
How are code reviews handled? How often will they be conducted?
Ask about and review any (NDA/Employee) agreements you will be asked to sign!
Find out how you will be evaluated? What freedom will you have in determining your software design, time estimates, deadlines, and methods of measurement?
From the WARFILES: I started a new job last Monday. I lasted 90 minutes. I thought I knew what I was doing... The right questions to ask... After all, I've been around the block a few times. These folks certainly talked a good game.
Boy, when I'm wrong...
So these folks hired me to develop C++ applications under Linux. Monday morning I found out I'd be restricted to using Outlook/IE. Installing, let alone using, Firefox was forbidden. I asked the obvious question. (How to use Outlook/IE under Linux?) Turns out their programmers get a Windows box on their desktop with Hummingbird X-Windows software installed, and need to share a common Linux machine with other developers. We were cautioned against using too many resources on that machine, because after all it is SHARED...
Move on to the NDA. It's a little overly broad, perhaps unintentionally giving them rights to whatever I develop during my off-hours. Without compensation, of course. I dabble in open-source, so this is a small matter of concern. I tried to negotiate more reasonable terms. (I'm happy to give them rights to anything they pay for.) They seemed to feel that, since they use [purchase] open-source software, my developing open-source software in my off-hours constituted a conflict of interest and promptly rescinded their offer.
I'm a lucky man. Somebody up above was watching out for me that day!
I've since learned that they're on a death-march. I'm now hearing rumors that their coding standards, which I did not get to see, prohibit casting between base and derived classes, amongst other atrocities. But thankfully I can't confirm that.
Bottom line: ASK QUESTIONS! A job can go from Mr.Right to Mr.Wrong faster than you would ever believe possible!