views:

51

answers:

2

Hi,

I see a lot of jobs ad for developers to work on highly transactional web applications. I assume this is a site with a lot of database transactions, but what skills are needed for a project like this? Apart from exceptional database skills, is there anything else?

A: 

I would certainly include in the interview questions on how to diagnose and troubleshoot deadlocks in the database management system of your choice. In the same area, a developer for such system must also have solid understanding of isolation levels.

If you plan to use any sort of ORM (such as Hibernate or open JPA) consider making that a significant portion of your interview since the time to learn how to use one should not be underestimated and newbies will most likely cause more trouble than solve problems at the first.

Consider having the developer tracing and diagnosing a problem during the interview. I've seen candidates that could talk about SQL Server databases but didn't know about SQL Server's Profiler tool. Anyone working on such project needs to be proficient with this kind of tool (for the DBMS of your choice, of course.).

I also assume that since your project is web related you will be using some sort of application server. Having the candidate explaining how to track and debug concurrency problems such as racing conditions in the application itself is not a bad idea since a system with many users is likely to be multi threaded.

If you are interviewing for a Java position make sure the developer understands different types of references too (soft, weak, phantom). This is very handy to control and limit extensive resource allocation that is likely required by such applications, although finding someone that answers these questions might not be easy.

Good luck! Eduardo

Eduardo Born
A: 

There are transactions that can be done outside of a database, such as making a call to a payment processor that while they may have databases I doubt they are publicly exposed. There may be other web services that are tied into a system that could also have a lot of transactions to process.

Handling code on a server farm may be another skill to have. I remember working for a dot-com some years ago that did have 20 servers for their public facing web sites and various code to tie them together in case a server went down which did happen every so often. Understanding how load balancers work may be another part to this. Knowing how to get the most out of a server as well as what the current load is on a server would be another factor here. For example, there are a number of different configuration values that one can set in IIS like how many worker threads, how to throttle traffic possibly, etc.

JB King