Portfolios have been used for years by architects, artists, and designers, but why not for computer programmers? A programming portfolio is a great way to showcase your best work, and highlight your involvement in challenging projects. It provides a great talking point during an interview, and gives more insight into your work than a resume alone could. A programming portfolio can help you stand out from a sea of other candidates.
Stand out from the crowd.
Very few programmers have portfolios. Judging by the candidates I have interviewed, I would guess less than 5% take the time to put together a portfolio of their work. So just having a portfolio in the first place can put you ahead of a large number of potential candidates when looking for a job.
Using your portfolio during an interview provides the interviewer with visual cues that bring your work to life. Showing not just telling is a powerful thing. It makes your achievements concrete and memorable, which makes you yourself memorable.
What to include?
Obviously, you only want to include your best work – this is a chance to showcase your talents. If you have experience on a lot of projects, you have the luxury of choosing projects based on the image you want to project. Do you want to show that you have a wide breadth of knowledge? Or do you want to leave the impression that you are an expert with a specific language or technology stack? Chose the work to include based on how you want an interviewer to see you.
After narrowing down the project list, include relevant details for each project. Basic details that should always be included are the project name, your role in the development cycle, a description of what the code does, a high-level description of how it works, and the skills, programming language, and technology stack used.
Think about any other optional information that should be included. If any of the work was open source, you could include source code examples. Provide the name of the client / company the work was for, especially if they are well-known. Including lines of code or number of source control check-ins can provide some measure of the size of your contribution to the project. Consider taking a page from the book of our graphic designer cousins and include relevant images. Or write about any challenges that were overcome during the course of development. There are quite a few optional elements that can be included, but I would suggest choosing a couple things that give the most insight into the projects and yourself so that the portfolio stays succinct.
Showing the portfolio.
Share a link to the portfolio during initial contact with an employer, especially if your portfolio showcases your skills more effectively than a resume.
I wouldn’t try to make a combination portfolio and resume – it is very hard to combine them well, and I have trashed resumes like this because they are too disorganized. But definitely have a section of your resume with clickable links to your portfolio and anything else that is relevant (GitHub, Bitbucket, Programming Blog, Stack Overflow, etc.).
Bring hard copies of the portfolio to interviews, and make sure that everything is well organized so that you can quickly point an interviewer to specific examples when they relate to interview questions. This gives you the opportunity to show what you have done, not just talk about it. Use the portfolio as a talking point and visual aid. I tend to get mildly panicked during interviews, which can make me forgetful; a portfolio gives a quick overview of my important work that I can use to jog my memory and keep myself focused.
Leave a link to your own portfolio in the comments if you think it would make a good example, or if you would like it critiqued. And of course feel free to critique the examples above.