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.
Design a generic Linked List in Java. Follow up: given access only to the head of the list, return the middle element.
My answer was to first determine the length of the list and then go half the way. They suggested another approach, the slow and fast runner pointers. Both solutions would run in O(n) though.