31

I've applied for a job, and was sent a coding test to finish as part of the interview. When I finished the task, I wrote back to the team lead in the company, informing them that I have finished the test and that I have created a private repo with the code. I asked for a GitHub username so I can invite them access to the repo so they can access the code.

They replied asking me to share the URL of a public repository. I'm pretty concerned about my current employer viewing it. I'm not sure whether this is normal in the industry. On the other hand, should I consider this as a red flag?

For me, it feels a bit unprofessional, but maybe it is more common than I think, I'm not sure.

What should I do?

9
  • 39
    What is it that you are concerned about with sharing a public repository? Your code almost certainly has no value to you or anyone else. Sep 21, 2020 at 15:27
  • 30
    I would be concerned about my current employer viewing it.
    – Sergeon
    Sep 21, 2020 at 18:05
  • 31
    @Sergeon You should edit that into the question, it's a highly relevant concern for your situation.
    – marcelm
    Sep 21, 2020 at 20:00
  • 4
    Does the source code contain any information that suggests you're applying for a job?
    – mcknz
    Sep 22, 2020 at 4:54
  • 1
    @Sergeon : and how could your current employer track it back to you if you created a public repository with some random name? I guess your current employer doesn't know you under the name "Sergeon".
    – Val
    Sep 23, 2020 at 18:03

7 Answers 7

71

Create a public repo using a new GitHub/BitBucket account for just this task

I'm not sure whether this is normal in the industry.

There is no standardized practise for this as such in the industry. It could differ between companies and people involved.

I'm pretty concerned about about my current employer viewing it.

Your concern is not uncalled for as you may not want a certain piece of code to be associated with you.

On the other hand, should I consider this as a red flag?

I feel you need not overthink it. Possibly the hiring manager or the recruiter isn't as much aware of source code sharing practises and even how source code hosting websites work.

Alternatively, one could reason that it may be easier to share your test assignment between different people/teams for review if it's in a publicly accessible repository.

Again, as you are concerned about having the repository associated with you publicly, you can create a separate GitHub/BitBucket account just for the sake of this task, make a public repo and share the link with the concerned.

Just make sure to disassociate your email address or any personally identifiable information from the commits, GitHub/BitBucket username and conceal any email address from the public profile. This would keep anyone else viewing the repository from associating it with you, while you can also, at any point of time, prove the ownership of the repository as desired by the interviewer.

I don't see any reason to consider it as a red-flag at this point.

10
  • 26
    I don't see any reason to consider it as a red-flag at any point. Sep 21, 2020 at 10:44
  • 30
    "Possibly the hiring manager or the recruiter isn't as much aware of source code sharing practises and even how source code hosting websites work." Asking for a public link certainly isn't evidence of that. It's simply much easier to share between everyone who has an interest in reviewing it, and it's very possible—and understandable—that the hiring manager just doesn't want to share their github account with candidates.
    – Kevin
    Sep 21, 2020 at 17:15
  • 3
    @Tyzoid I quite disagree. It is entirely the candidate’s responsibility to transmit the code to the interviewers in an acceptable manner. The interviewers have made their (entirely reasonable) requirement known. The only thing they should do/have done differently is give submission requirements in the original email.
    – Kevin
    Sep 21, 2020 at 21:15
  • 3
    I think you should put "Create a new public repo for just this task" as the main first thing, in bold at the top. +1 for putting that :-)
    – Kevin
    Sep 22, 2020 at 20:34
  • 3
    Just make sure to disassociate your email address or any personally identifiable information from the commits. This is a very important point and easily forgotten!
    – MEMark
    Sep 23, 2020 at 6:55
29

Not unprofessional. Extremely common

Send the code as a public accessible link, or as a zip. Or as a Google Drive / Dropbox link. The requirement of managed sharing to limit a single user to view just complicates the job application process.

Your application will almost never be decided by a single person in isolation.

Applicants to our company will be forwarded between employees in the team you're joining, or other department heads as standard practice. If there are multiple good candidates and limited positions, your application and attached code will be forwarded to multiple software team leads to consider.

If you're joining a team, a department manager will probably forward the code to the team to ask what they think. Some really interesting code from applicants CV's has gone around the whole company.

My expertise is graphics, my company is in the mining industry, and I've been forwarded applicant code ranging from ray-tracing simulations, to fluid dynamic simulations, to Spectre exploits.

2
  • 15
    No. Once "They replied asking me to share the URL of a public repository", using a public repository is the only correct way to go. No zip, no drives, but a public repo.
    – Mast
    Sep 22, 2020 at 13:14
  • 5
    Indeed. If I'm hiring for a programmer, and the programmer sends me a bloomin' ZIP over DropBox rather than sharing a link to a repo like I'd ask, they are not getting that job. Sep 23, 2020 at 10:58
9

Normally, posting material related to a job interview in public is not a good idea. Often, companies will reuse the same problems for multiple candidates and having code out in public isn't a good thing. Personally, I think that you did the right thing by doing the work in a private GitHub repository and then following up with how to get it to them, especially since there was no instruction given in advance.

However, now that they have given you permission to share a public repository, I think that it is OK to change the repository from private to public. That will let them see your entire git history, along with the code. It gives them a perspective into how you solved the problem.

My suggestion would be to do what they ask. Change the visibility of the repository and send them a link to it. If you want to, you can always remove the repository or make it private again after they have reviewed it. Making it private again will allow you to refer to it as needed, but hide it from prospective candidates who may want to use it.

1
  • 2
    +1 for not sharing interview material without permission, for the company's benefit.
    – Carl
    Sep 22, 2020 at 10:47
5

From what I have seen, it is pretty common for candidates to share a public repository. I don't see it as unprofessional or a red flag. It just seems to be an easy/preferred way by many.

If your concern is anything other than intellectual property (IP), that could be a read flag that you're not following VCS best practice.

A public repo certainly shouldn't be a requirement, but probably the best option because that's how the employer wants to see it. The easier you make it for them, the better you look.

If you really don't want to use a public repo (for whatever reason), you can always say that you don't want to make your repository public, here's a .zip instead. This is one of the options in GitHub instead of cloning, so I can't see an issue with this. - I have done this before and it's not been a problem. I still got through to interview.

7
  • 4
    "you can always send a .zip" - if they explicitly asked for a public repository, then sending a file might tell them you're unable or unwilling to follow instructions. Sep 21, 2020 at 18:08
  • 7
    I use GitLab for example, and public repos aren't free. I use GitLab as well and both public and private repos are free.
    – WoJ
    Sep 21, 2020 at 19:38
  • 1
    @BernhardBarker indeed. The goal is to show the company that you can work in a team with a common repo, that you can integrate the repo with automatic tests, build and deployment. All the things that you cannot easily do with a zip file over email. Sep 23, 2020 at 7:54
  • 1
    @EricDuminil The goal was to complete the programming exercise, not prove they can use VCS (which a single person repo doesn't anyway) and setup CI/CD pipelines!
    – flexi
    Sep 23, 2020 at 9:19
  • 1
    @flexi it's an easy way to go above and beyond, and make it easier for the company to check your knowledge, though. And setting such a pipeline can be really easy with an open source repo. Sep 23, 2020 at 11:09
4

Nothing to worry about

From what I've seen, it's relatively common. You don't have to mention anything about the company inside the source code or in the README file.

GitHub apparently has more than 28 million public repositories. Nobody will notice, or care, if you add another one.

A few tips

  • If you already saved information about the company inside the git repo, you could still remove it with git filter-branch.
  • You could tell a white lie in the README, for example "Proof of concept for coupling LibraryA + LibraryB", "Testing FrameworkC v9.0" or "Personal project to improve my knowledge of LanguageD".
  • Write some meaningful tests.
  • Write a short description in the README, explaining how to use your project.
  • Write meaningful Git commit messages. If you want to retroactively modify one, you can use git rebase -i.
  • Since your project is on a public repository, you can use some services for free, e.g. Travis CI for continuous integration, or Heroku in order to run and showcase your code.
  • Whatever you do, don't send the code as a Zip file over e-mail. The company wants to see that you're familiar with source code management, automatic testing and deployment.

For what it's worth, here's a small project I wrote last year. The company was pleased with my work, and the process went further.

0
2

Quite frankly, you are one of many interviewees. Do you really want to be remembered as the one that produced obstacles instead of reduced?

Create a new account and slap the code there. It's perfectly understandable that an interviewee does not want a current employer to see that they are performing coding tests for interviews.

Let me frame it this way:

If a new person needs to access your code then do you really think the employer is gonna want to contact you to enable the new guy's access? No, they want to give them a link without further hassle.

1

It's normal.

Every time when I get task from potential employer, I put solution as public GitHub repo and send them link even if they ask to send code them by email.

Nobody complained.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .