Showing Code

Jill Jubinski is a well known and respected community leader in OpenStack. When she says something, especially about recruiting, it is worth listening to her, and evaluating what she says. When she tweeted:

While I find the ‘show some code ur proud of’ stance, its like, what if someone doesnt want to code outside of work? That has to be ok too.

my response came off as a contradicting her. It was:

nothing to show would be suspect. If you hate to code, no paycheck would be high enough to make you do it well.

Which goes to show that terseness is a demanding constraint; I did not adequately state what I was trying to state in my attempt to limit it to a single tweet. And of course, that meant it became a discussion back and forth.

Let me try to be a little more nuanced and fair here. What Jill says is spot on: it should be 100% OK for a programmer, and a good one, to not have anything that they are capable of showing prior to an interview. I, myself, would have fallen into that category earlier in my career.

The aspects that Jill brought up are worth weighing first: a single parent with minimal spare time is going to have no time to have a huge hobby project on github. If this same programmer worked in proprietary software development organizations their whole career, they might not have anything to show for it. So, there is at least one really good reason that “show me the code” in not the end-all and be-all for pre-screening engineers.

What I was trying to say was more targeted at the engineers out there that are trying to get hired. If you are passionate about coding, let your love for programming show through. If you can show the code, please do so, it will serve you well. Be willing to show not just your beautiful code, but the ugly but functional stuff that you would want to clean up, and be ready to explain what you would want to do with it.

Open Source is a huge part of the software development world, and part of what I, personally look for in a potential co-worker is the skills that make you successful in Open Source software development. That has to involve writing, understanding, critiquing, and reviewing code. If you want to be part of the community, and you’ve had the chance, and you have not taken it, you need to be able to explain why.

If you are interviewing with me, I need to be able to evaluate how you think. Showing me code you wrote helps me understand you as an engineer. If you don’t have an Open Source software portfolio, we’ll have to find a way to make up for that level of understanding in the interview process.

And, just getting to the interview can be tough. My current group at Red Hat is filled with lots of incredibly smart people…and me. In order to justify the time out of their busy schedules that it will take to interview someone, we have to convince some pretty discerning managers. If you don’t have the Open Source resume, specific to the types of technology we use, you have to have something else just as strong.

Now, maybe you are thinking “Yeah, but that is Red Hat.” Sure, it is a fundamental aspect of our Company. It is also a value I would take with me where-ever I would go. There just happen to be few places that are as compelling to me as Red Hat. Its why I’ve been here so long.

So…when I said “suspect,” I guess I was assuming away all of the externalities that were key to the point that Jill was making. But, if you don’t have those restrictions, and you have been in this business for a while, I would expect there to be some bleed over from your professional life to your personal life that involved coding.

Perhaps I am not the ideal prototype here, but beyond my professional endeavors, I could have shown at some point of my career:

  • A very simple Python based Web site framework
  • A Hebrew language flashcard program written in Pascal
  • Pascal code for breaking a large file into two files each small enough to fit on a floppy disk
  • Contributions to an Open Source application to study Chinese on PalmOS
  • Python code to convert my bank statements to Postgresql Data for analysis
  • A drag and drop form editor in Javascript
  • A very simple Java based Web site framework.
  • A very simple Python based Web site framework.

I’m not saying I could find the code for all of those things now.  The C64 code in particular is on 5.25″ Floppies that probably no longer spin. I’m not sure it would get me through an interview process anyway.

My point is that it is more than passion.  Computers are not just things that run other people’s code.  At some point, you probably have run into a problem that you could have used code to solve.  If you had the tool, and the talent, why not take down Gozer?

OK…I wrote this last night, and have had a night to sleep on it.  I realize now how shaped my view is by working at Red Hat, and working in Open Source software.  I’ve worked on several large projects that were proprietary, some of which I really liked the code I wrote.  I can very much see how someone heads down might be a superstar programmer and have nothing to show for it;  all your effort went in to that closed box.  I suspect that is more the norm than the exception; it is just not how I’ve chosen to live.

I know that when I’ve spent a good solid day coding, the last thing I want to do when I get home is shift gears to another coding project.  I need time to un-program.  Rock Climbing and music have both been essential to maintaining a sense of mental equilibrium.  And that is ignoring the familial demands that limit my free time as well.

If this is how your career has been, I can totally see how you might have nothing to show going in to a code interview, and I would not hold it against you.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.