Tuesday, December 4, 2007

Code Submissions.

When you send code submissions to me along with your resume, don't just submit your most recent school project and send it to me.  Please spend the extra time to clean it up!

I want to see the quality of work that you are capable of producing.  I want to see your best work.  I want to see that you care enough to make a good impression on me.

Tips:

  • Don't express frustration in comments.
  • Remove debug output.
  • Add documentation.
  • Include test cases.
  • Include build / deployment scripts and other infrastructure if you are sending me a whole project.
  • Refactor it.
  • Write your code for a human reader, not for a compiler.
  • Use a consistent uniform style throughout.  I can tell a lot about your experience based on where and how you use whitespace.  I want to see that you are aware of the overall effect and can adopt good coding habits.
  • If you can, don't send me a school project.  Send me something else you built for fun on your own time and have worked on for a couple of months / years.  Even if it's incomplete.  Heck, maybe you can spend a day and write some really cool little demo application to show off what you know.
  • Send me something that you think is cool.  Don't try to guess what I will think is cool.  I think lots of stuff is cool...
  • Don't overdo it.  Ultimately I will spend about 10-15 minutes analyzing you code.  I'm skimming through it taking a random sample of what seems interesting.  To increase the likelihood of me stumble upon the juicy parts, try to keep the overall size of your submission pretty small (< 10,000 lines).  Or maybe you can offer hints as to your favorite modules.
  • Don't rush!  I'm quite happy to wait an extra day for you to put together a compelling portfolio.  It's worth your time and mine.

In the end, I want you to choose what you feel is your best work -- even just a little part of it -- and send it to me.  This is your portfolio.  I know you're still learning and growing as a developer.  Show me an achievement that you are proud of.

Because in the end, you can bet I will try to push the current limits of your ability.  I will work with you to create an environment in which you can excel as a full member of my team.

So give me a real taste of what you can do.

No comments: