Code Review

As part of the hiring process at ThoughtWorks we do a code review. After a candidate gets through a few gates (a resume’ screen and some phone interviews) the prospect is giving a choice of three code problems to work on. They have 3 days to complete the assignment and turn it in. Then we have 2 developers look over the code (separately) and assign it a score. A lot of these submissions are pretty bad. Java arrays used where an object would provide clarity, cryptic variable names, missing files needed to run the project, and (amazingly) code that just plain don’t work.

But last night I graded a submission that was a joy to read. He submitted in Ruby (a good sign, but not a sure thing by any means) and clearly understood the elegance of the language. He did some fun things with aliasing and Ruby’s built in collections methods that made me smile. And they weren’t just showing off either. Sometimes we get solutions that are crazy over designed. Pages and pages of code where 100 or so lines will do. But this was short and sweet.

I hope we hire him.


Anonymous said…
Dear Sir,
I was told to solve the one of the programming problems after the initial phone interview. I did submit it but it was not accepted. Is there a way you can take a look at it and let me know why my submission got rejected?

I chose the "Sales Tax Problem". I hope you remember the assignment. I used "Factory Method". Created a Product class and then subclasses for different kind of products that are Tax exempts normally.

I also created an Utility class called "SalesTaxRoundingLogic" where I put two methods to Round Up (not round down) the total cost and the sales tax value.

At the UI level I maintained a collection to hold the abstract Product class objects (Which is the Cart) and interated through them to invoke the SalesTax() method. Due to dynamic polymorphism those calls actually called the methods in the proper subclasses.

I din't see why this got rejected. Is there a way I can get a chance to re-submit my code?

Any Help will be remembered for life.

Best Regards,
Jake Scruggs said…
I don't work at ThoughtWorks anymore, but as I recall they don't like to comment on individual submissions. Sorry I couldn't be of more help.

Popular posts from this blog

What's a Good Flog Score?

SICP Wasn’t Written for You

Point Inside a Polygon in Ruby