Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

For most of my development years I have been a Java backend developer, mostly for web applications. Usually for regular jobs I have described my duties in previous ones during the interview, expanding what's on my resumé. Now for a possible freelance job I was asked for a portfolio, and then we'd have the interview. Never done it before, I'm in doubt of how to do it, as putting in written form requires quite a lot more of thought:

  • Should I use UML diagrams to describe what parts of the project I've worked on? Besides having to learn UML, I have two issues here: having to remember the exact work from several years ago, and wondering if I can get into trouble for displaying internal parts of systems not owned by me. Those UML diagrams should be, low level (sequence diagrams) to high level (application architecture, or class diagrams). The frameworks I used on those jobs is already on my resumé.

  • Should I link to the resulting web sites? Like, go to that site, create a user and then do the following actions, and you'll see what parts I've worked on.

  • How do I show the parts of my job that don't involve coding? Like leading other people, managing a project, testing, running scripts, checking the database that everything is ok, etc.

  • Also, sometimes I had to do frontend development, using Javascript.

I've read other questions regarding portfolios here, from which I got that I have to avoid putting my open-sourced pet projects on my resumé, unless they are popular and widely used (which they are not).

share|improve this question

closed as off-topic by Snowman, MichaelT, GlenH7, Kilian Foth, gnat Apr 9 '15 at 10:21

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Snowman, MichaelT, GlenH7, Kilian Foth
If this question can be reworded to fit the rules in the help center, please edit the question.

What does the job entail? It's very unusual for an employer to request a portfolio for a backend developer. That said, I have looked up people's GitHub, SF and Google Code accounts. – Martijn Verburg Aug 23 '11 at 14:08
I would highly recommend them your open source code on github, google code, bitbucket, etc – Raynos Aug 23 '11 at 14:42
Sadly my open source projects are not of the kind of "big, scalable and performant" that are usually related to backend development. – Luciano Aug 23 '11 at 15:20
up vote 7 down vote accepted

I would give a short (1-2 paragraph) description of each project in your "portfolio". Anyone who knows backend work knows that you cannot simply show someone the completed project for many reasons. For one, it is often illegal, since the code is usually the property of the company you built it for, and they would not typically want their core systems being shown to outside parties (trade secrets, security, etc.). Secondly, a backend is usually a lot more than a simple API. It usually includes web services, client APIs, database could you be expected to show someone anything meaningful. You could probably produce a code sample, but that does not really show the work you have done. If your work does not have a visual component, than it is best to describe an overview of the project. If they know what they are talking about, then they can ask you for more of the details to get a feel for your skill level, and if they don't, then hopefully they will be impressed and take your word for it.

share|improve this answer

If you've mostly done systems or back-end developing it's harder to do a visual portfolio than for someone who has done a front-end. If you've done a lot of front end it's easy since you can stick in screen shots on things that you've done and talk through the design.

For a back-end programmer this is what you can do:

  1. Pick out the projects that you feel most accomplished with. Just to sort out those you don't need to tell in your portfolio unless someone probes you in the interview to tell if you've done anything else and share it as a "war story" instead.

  2. Figure out your accomplishments with the projects. This is important, write it as clear and concise as you can. If you have any metrics on improvements, you should include that into your list of accomplishments. They are simply written in the following form: Action Verb, Result Achieved, Process Used

    Some examples

    • Reduced the time with 50 % on price payments with enhancements I made in the payment gateway.
    • Increased conversion rate with 90% on the muffin sales by refactoring the product flow.
  3. (Optional) Add pictures if you have any, to give some context on where you've worked. Keep them relevant, if it's a web page, add a screen shot of the web page where the back end is most prevalent. You could also throw in a sequence of screenshots to describe the flow (but keep it simple and relevant). By adding pictures, the risk is that you may clutter up your resume, thus making it look less attractive to a recruiter.

So the projects list can look sort of like this:

Product Flow Refactoring, 2005

  • Increased conversion rate with 90% on the muffin sales by refactoring the product flow.
  • Further improved customer flow by removing the extra steps needed to shop the muffins.

The list of accomplishments is very important when you send out your back-end portfolio, as they give hard metrics and shows off the things you've done. Also keep in mind that recruiters love well-written accomplishment lists, it's like catnip for them. It's also better than showing "actual implementation" and you can save the UML diagrams to the interview if you need to get down to the details.

share|improve this answer
I don't have any screenshots but I'll try to get them from the websites. Also, most of my development was "implement new feature" or "fix bug", although sometimes the new feature was to increase performance. – Luciano Aug 23 '11 at 15:25
As I mentioned you don't need screenshots. And if you know the performance increase then you should be showing that off. – Spoike Aug 23 '11 at 15:57

Not the answer you're looking for? Browse other questions tagged or ask your own question.