The empire strikes back
My previous posting concerning the indolent British interviewers must have been a trifle precipitous. In retaliation I was provided with an opportunity to break my previous records and enjoy a 3-hour technical interview on the phone. My ear still hurts :)
The interviewer turned out to be a Russian and he did not hesitate to delve into virtually anything from comparative speed of access to local and allocated on the heap variables in C++ to decision making procedures in small teams. Occasionally I felt myself uncomfortable answering pretty vague questions like Java vs C++ (from declarative transactions all the way down to generics). A few times I demonstrated some weakness in sufficiently common areas (e.g. aggregate functions in SQL or implementation of a concurrency-proof queue) so I was not entirely satisfied with my performance. On the other hand, it was an intellectually challenging discussion with elements of surprise so ultimately I am fatigued but entertained.
Just in case you happen to be fond of server side Java I would like to share a couple of the questions asked:
- A table consists of two columns, namely a city and a name of a person living there. Which query will print a city name and the number of people living in the city? Which query will print the name of the most populated city?
- How can a stack-based thread-safe data structure similar to the Doug Lea's BoundBuffer be implemented? - explain put() and take() methods, blocking, notifications
- A message is received from JMS and put into a database from an EJB container. How can it be guaranteed that either the message is successfully put into the database and marked as delivered by the JMS provider or neither of those activities is performed? When exactly the transaction is to be completed?
- How can a java result set be obtained from an Oracle database? - something about cursors, not the usual statement execution approach
- Is TCP synchronous or not? An example of a TCP stack timer?
- How to get a thread dump of an application running under Unix?
- In the morning the performance of an application running in a Linux box is significantly lower than the performance the day before. What is to be done to ascertain the reason? - everything you can come up with from connecting to the server, thread dumps and CPU load to database statistic or available disk space
<< Home