Software engineers write programs to design and develop computer software. Interviews are highly technical, so come ready to work through coding problems and math brainteasers. The specific questions you are asked will depend on what type of programming position you are looking for. Try researching a specific software discipline such as web development, application development, or system development.
How do you feel about referential integrity in your databases?
They are essential, once the data is loaded. Not only to they speed up joins, they also provide guidance to others as to the database design and confidence that the data actually complies with design intentions. And if you are loading differentially they may actually speed things up as opposed to slowing them down even during the load.