Dec 11, 2013 by Chris Beauregard Hiring

Code Samples and Hiring Developers

Every developer at MailChimp has a unique route that brought them to our team. Like Eric, who built a Blackberry app for MailChimp in his spare time, or Allison, a front-end developer for our marketing team who recently moved over to the engineering side. Regardless of our background and experience, we all submitted a code sample (either directly or indirectly) before we were hired.

Code samples expose how you solve complex problems in a reasonable manner, so that others can follow behind (that's my definition of a developer). I've been in plenty of interviews where teams took turns stumping me with obscure syntax questions or timed whiteboard code quizzes, and I never felt like it was a true measure of my ability, talent, or potential. It was refreshing to submit 400 lines of code to MailChimp, get a simple response back, and spend the rest of the hiring process focusing on whether or not MailChimp and I were a good fit.

Here's a little more detail about why code samples are so important to us and what makes a good one.

Freddie's code sample

What code should you submit?

When people ask me what kind of code they should submit, my answer is always "Code that makes you proud." That said, we're looking for something that can be reviewed in a sitting, like a class or script (hello world < your code sample < open source apache project). We also look for code that's DRY, flat, clean, and explains itself well through naming and documentation.

A level of consistency in your variable and method naming and how quickly we can review it makes a huge difference. How your code fits into a larger application can make a difference as well, so add some documentation on the top to help us put your sample in context. If our response is “that was a cool way to solve that problem,” then you've submitted a great code sample from our perspective.

Code Sample

Getting your code to us

If this got your wheels turning and you want to learn more about our team, reach out to us! We host a lot of events and meetups in Atlanta (the whole team works out of our Atlanta office), so swing by say hi. You can also apply online for our open positions. Even if we don't have any "official" engineering/developer positions open, we're always looking for great people to join our team. If nothing on our jobs page interests you, reaching out to our recruiting team is your best bet.

If you're a Georgia Tech student, swing by the career fair and meet us, tell us about what you're working on, and—you guessed it—bring a code sample. You can also send us an email via Mandrill to show off your skills.

Discussion

  • Burak Tutanlar

    04.04.2014 - reply

    Dear Mr. Beauregard,

    I am a junior computer science student. I have applied for software engineer intern and attached a link for my codes in my resume. I think my codes as clean, I read Robert C. Martin’s Clean Code book. However, I don’t know what you call clean. Would it be possible if you could share an example what you call clean code?

    Thanks,
    Burak Tutanlar

    • Chris Beauregard

      04.04.2014 - reply

      Hey Burak, some characteristics of clean code:

      1) Uses white space effectively to increase readability
      2) Adheres closely to a language’s best practice style guide, though I don’t care if you use camelCase or under_score, just be consistent
      3) Effectively solves the problem at hand in the most efficient way possible

      I read a quick synopsis of the book “clean code” you mentioned and the author has some opinions which differ heavily from my thoughts. Coding at its core is an art form, always subjective to interpretation and perspective. If you are concerned on how clean your code is, I would ask a peer, TA, or professor to review it and give feedback. If they are able to quickly understand the problem at hand and your solution, I’d say you are successful. Hope this helps.

      Chris

Comment