Alan Miller's blog for a Brave New World!
How bad do you want this PHP developer job?
- Perhaps the most asinine PHP developer interview test ever!
- Created: January 19, 2010
This is an actual test given by a potential employer recently looking to hire a PHP developer. Amazingly, it is my understanding that about half the developers given this test actually go through with it, which, as far as I am concerned, only shows how bad the economy has gotten in recent months.
I thought this was simply too good not to share with the development community as both an example of how this downtrodden economy is motivating hiring managers to up the anti to never before seen heights, but also to educate aspiring and up and coming developers about what they have to look forward to in their career if they want to work in the field in coming years, as this kind of thing is becoming more common.
I can't help but wonder if the point of this test is more about determining a potential employee's eagerness and obedience to follow instruction no matter how absurd than actually assessing a candidates skill level and fit for an organization.
Either way, hiring managers should recognize that when presenting a potential hire with something like this, that if this is what will be expected of them in the the interview, they are only going to force the candidate to consider what might it be like to actually work there as well.
Without any further ado, here is the test in its full and unadulterated glory.
Software Development Project: The One Restaurant in Wolfkrow
Introduction. In the town of Wolfkrow there is just one restaurant, called the Wolfkrow Diner, for its 10000 inhabitants. Like most restaurants, patrons of Wolfkrow Diner come into the restaurant and find a hostess who will seat them, order from a menu, eat, and leave. Unlike other restaurants, Wolfkrow Diner doesn't employ anyone but a manager for the thousands of meals served each day. A major difference between Wolfkrow Diner and normal restaurants is that patrons pay for each person that helps them individually. At the stage when a host greets the patron, the patron selects one of several hosts based on their hosting ability and their fee and pays right then. Next when a waiter seats the patron, the patron selects one of several waiters based on their ability and appearance, and they pay for the waiter to seat them.
Roles. The roles can include: host/hostesses, waiters, cooks, food deliverers, and table cleaners. Feel free to add roles if you would like. For each role, patrons select from several competing providers of the service available at that stage in the workflow. Each provider lists qualifications and pricing information.
Restaurant Manager. The manager's job at Wolfkrow Diner is vital. She examines the credentials of each provider for the positions of hostess, waiter, cook, food deliverer, and cashier to make sure they are qualified before they begin working the restaurant. She also constantly monitors the bottlenecks in the system on a dashboard. The dashboard tells her how much revenue is coming in, how many meal orders are in each stage of the workflow, and includes analytical and trend information. The restaurant has an unlimited size, and there is no need to allocate specific tables. The menu can be either fixed or dynamically driven off of the ability of the cooks. Either is fine.
Ratings. Patrons provide ratings for each service provider in the restaurant. These ratings are available for the manager to see on the dashboard, as well as for other patrons to see when selecting their own service provider. If a service provider is performing poorly in the patrons' ratings, the manager can fire the service provider.
Revenue. The manager attaches a fee to each provider for each of their transactions with patrons. The fee should be configurable for each workflow step.
There has recently been a disaster in the town of Wolfkrow and they have lost their restaurant software. Your role is to recreate the restaurant for the patrons, service providers, and manager to interact. Do NOT build an autonomous simulation.
Project Evaluation Criteria
Location. We assume that you have a sandbox somewhere on the web that you can use as your environment to dev/test. If not, please dev/test using a localhost installation for your PHP/MySQL, and send us the code as a zip file along with a database dump with table structure descriptions. If you are indifferent to PHP frameworks, we prefer using the Zend Framework or Cake PHP. You do not have to use a framework at all if you so choose: evaluation does not depend on it.
Time Limit. There is no time limit, but understand that expectations are proportional to time taken for completion. Please expect to receive feedback and needing to add features to your project after the initial submission.
Expectations. We don't expect perfection, but we do want to see that in a few days you are capable of building the foundation for something useful for many users. Not all features will be reasonable to build in the prototype. For features which you would build in a production system but are not worth the effort to prototype, please write down the issue and how you would account for it so we can see your approach.
Deliverable. A link to your online sandbox, login information for all applicable user types, a zip file containing your source code, and a SQL export with structure and data.
Feel free to write back with any questions, and please let me know if any of the project description is unclear. Good luck!
There are currently no comments on this article. You could be the first!