4

I have been a web developer for about 6 years. All the work I have done, design specs and code development was for clients. I have never contributed to any open source project.

A lot of freelance / remote jobs I have came across lately require a look at your GitHub profile.

Mine is basically empty. I have my own code tracking setup, plus all the projects that I have worked on that were hosted on Github are private, so nothing will ever show on my profile page.

What can I showcase on my profile in these conditions?

I have a portfolio website where I list some of my projects, but there are only screen shots, links and descriptions of the projects, no code, for obvious reasons.

1
  • I found a way to increase activity on my personal Github account while working for clients (i.e. not owning the result): whenever I find out that certain fragment of code is worth being packed into some sort of lib or package, I do it. So if you create some software for a client, spin off all the things. Make sure you don't violate terms, of course. With a pinch of fantasy, it's very easy to find a way to show off your code in a useful way and not screw contracts.
    – rishat
    Commented Oct 8, 2015 at 23:42

3 Answers 3

2

Short version

LinkedIn: position yourself where the client is (or you can invite to) and qualify for their needs. Describe who you are in regard to expertise and problems you solve. Provide detailed information on projects you've worked on, issues you've been challenged with, and the caliber of solutions you deliver.

GitHub: keep private projects private; show that you respect and value your clients' competitive advantage.

Use a presentation tool to demonstrate how you code, and your process, so they can see you will work smoothly with theirs.

Questions on their specific project can more properly be discussed in detail on email communications or a one-on-one meeting.

Long version

I would suggest you solve three different things each on its own proper way. I believe it's the best way you can carefully respect your duties as a freelance they'll later trust on.

Position yourself where the client is

Goal 1: be seen and engage potential clients.

Solution 1: LinkedIn profile (you can direct others to it, too). Position yourself as a problem-solving person where potential clients are, by describing what kind of work you do and specialize at. Describe in detail each job you've done. In text. What was the problem(s) you solved and succinctly how you did it. The goal here is to position yourself as a candidate to solve your next client's problem.

Value 1: position yourself in front of the client's decision-maker, with some language on the problem they are facing. They just see here whether you would qualify for their current needs or not, and know the basics of how you address problems like theirs.

Private code and clients' ownership

Goal 2: show your future clients you respect clients' ownership.

Solution 2: keep your GitHub free of code you don't own. One alternative is to replicate the project with a public version, same folder structure, and just empty each file contents with "code kept private". Or replace actual code by a short explanation.

Value 2: if you attract clients that pay for ownership, next ones will probably also value that you fully understand and guarantee that. In keeping clients' code private you're protecting their competitive advantage. That's a lot.

Show your expertise

Goal 3: show how you code.

Solution 3: make a video showing your work standards, including constructing solutions, coding style, testing, and maintaining a GitHub repository.

Make this a short presentation. The goal is not to understand what you did (it's still private), nor teach them how to do it, but to show what processes you follow and what kind of decisions you are used to make.

Value 3: if clients have already seen you've solved problems similar to theirs, they can assume you may be able to do the job, but still need to see whether you'll adapt to their processes. When you show them how you code, all that's left is to ask you about their specific problem.

1
  • 1
    @Codenoire Thank you very much for your editing.
    – Giuseppe
    Commented Oct 19, 2015 at 21:00
0

I have found that people who want access to GitHub work you have done want access for a few different reasons:

  1. How is your coding style? Do you follow industry standards for your code? Do you do tests on your code? Do you fix bugs that come up?

  2. Do you help with other projects you don't own, or do other people help with yours? This can show you work together with people on a team, and makes you a more valuable member of any other team you may be part of.

  3. Do you have a secret algorithm that they need access to, possibly without paying you for the work?

Obviously, they want to see what you can do. If you are showing off that you are a great designer, then offer them your portfolio, just like you have. If they are wanting a full stack developer or someone to do hard coding with, they want to see your GitHub. Are you applying for the right position? I hope so...

As well, if you have lots of active projects listed, it shows you are dedicated to your projects, and maybe even your hobbies are in here as well. It helps them learn the kind of person you are, as weird as it may sound...

With point 2, it could be that they want you on a team, and they already have people ready to go. They need to make sure everyone could read everyone else's code just fine. They need to make sure you are a team player, and having lots of people contributing could be the biggest indicator to them that you are.

Finally, the last reason, is because they know you've solved a problem no one else could, and they want that power for themselves! I doubt this last point is why, but it's still a possibility.

My suggestion is to offer your portfolio, and explain that you have a private GitHub that you don't hand out to clients. If they keep prying, it may be time to look for another job.

0

Almost the same situation with me. Some years ago I have decided to go on a full-time position instead of freelancing. I was working full day in a government institution and I thought I had not so much energy to join open source projects at the end of any day. Now I have quite a big gap in my portfolio...

What do I do since I recognized I have that gap:

  • I am going to some certification programs (Zend PHP Engineer, Microsoft Professional, CompTIA, etc.) ,- this shows I know what`s important at the level technology companies (like Zend Technologies, Microsoft, etc.) thinks is important to know today.
  • I am doing my own projects and make it publicly available on GitHub. Even day long projects counts sometime as you could introduce the comfortable solution to the really big problem. This matters.
  • I am joining some other open projects and help there as much as I can, for example by mentioning the bug or by fixing something. Anything is better than nothing here.
  • Write reviews to books you read (for example, on Amazon, blogs, etc.).
  • Few days ago I have made my LinkedIn profile also. As I understand, there you could list your skills and others (people you worked with) approves you are good with that skill. If the skill of yours is approved by active and competent LinkedIn user then this really means something. Especially if the one who is looking at your profile knows the person who says you are good at specific skill. Clients, partners, others of your past projects are able participate.
  • Going to technology events as a guest (or better - as a presenter) is also valuable. You got new knowledge, you share your knowledge, you show up to others, you learn from mistakes of other people, people are sometimes mentioning your strengths and weaknesses, etc. Giving a good question on the event could result to something interesting. Some events are going to be in uploaded to YouTube or similar site. There your input will be recognized aslo.
  • Make your own YouTube channel, share the experience with the world. Sharing your knowledge via YouTube, Facebook, personal blog, whatever.. is also good way to go.
  • Participation in Stack Overflow and similar webs (communities) helps also. Sometimes giving a simple answer to a difficult question is really important.
  • Be part of technology organization(s). For example, IEEE (I like IEEE, you may choose other organization) membership means something. Usually, membership costs money, requires participation in events, learning, having specific entry knowledge, etc. Who wants to throw hundreds of $ away? By paying fee to such organization you claim you have value back (and you understand that as a value), you support the technology in global meaning (you help with moving the technology forward).
  • ...and some more.

I never tried LinkedIn before, but I try it now. I am really excited with what I got there. Making the Linked-in portfolio really helps to understand what is the portfolio. In my own opinion (especially, after updating LinkedIn), the portfolio is about showing what you are able to do today, not what you did yesterday. It is also about what kind of result you got at the end of the job, not what kind of job you have done. Saying is not enough, you have to have someone that stays on the back of yours while you say. Be it certification, award, friend, co-worker, organization, community, something valuable and recognized to/by the target.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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