It begins with a review of the requirements that are normally seen in developer job ads:
Whether you’re applying for a developer job or any other job in tech, the requirements are ridiculous. It starts with the super-intimidating job ads; it seems that most companies actually require you to be a highly technical superhuman, who has 100 skills on expert level and is able and willing to work “flexible hours” (recruiter-speak for being okay with working in the evenings and on the weekends), and perform 100 tasks at the same time. You need to be “exceptional”, have an “above average degree”, be “one of the most brilliant developers”, “highly technical”, a “code wizard”, “guru”, or “rockstar”. You need to know all the programming languages that exist.
GitHub or Coding Sample Always Required
Once you get past the job ad and actually apply, you may be asked to provide a link to your GitHub profile:
…you are usually asked to either provide a coding sample (when applying for a developer job) or to at least provide the link of your GitHub profile, which is a hard requirement in tech, along with your resume and cover letter.
To better prepare developers for this reality, SDG (Software Dev Group) has prepared a guide on how to make your GitHub profile look great. While it is unfortunate that companies are requiring a GitHub profile, we hope that our guide can give all developers a fair chance to get an interview.
We ask that any developers who are hiring managers or are part of the hiring process to re-consider asking for coding samples and asking for GitHub profile links; at least provide an alternative to those options.
Unpaid Work Disguised As Technical Questions
From what we have heard, this happens more frequently than we think:
Either before or after these interviews, you are then asked to work on a task, which can be solving a coding problem, planning out a strategy for a product launch or coming up with a plan on how to grow the developer community. I’ve never been paid for any of these tasks and some of them were so complex that they took me several hours to complete. Often, I found out later that my work was actually used for something the company was currently building or working on. Instead of letting their employees, who get paid for their job, work on it, I was asked to work on it, unpaid.
We have heard that at one digital agency it was common to disguise client work as technical questions and to ask candidates to write some code that could actually be used or at least inspire the paid workers to implement a solution.
More common though is to ask tech workers to write code in their spare time for free. While it is good to have code samples to show, it isn’t okay to be asked to do a substantial amount of coding (more than an hours worth of coding) without being compensated in some way.
Where Do You Find The Time?
The writer goes on to say:
…going from reading a job ad for a tech job to completing the interview process, takes up to four plus full days or even more of unpaid time.
…Searching for a new job in tech while working full-time and volunteering in your free time, which you are almost forced to do, becomes impossible.
To protect against this, SDG recommends that software developers have savings for the job hunt equivalent to 6 months of expenses. In other industries, it may take up to a year to find a new job. In our industry, we may only need 3-4 months to find a new job, but should still have savings just in case it takes longer.
By having job hunt savings, not only are you supporting yourself if you are laid off, you are also giving yourself the opportunity to quit your job and look for new work. If you have 6 months of expenses saved up, you can spend 2-3 months interviewing full time and negotiating to get the best possible job offer.
In other professions, when an employee is fired, they are given time to find a new job rather than being immediately kicked out or are given help by the employer to find a new job. At SDG we are aiming for that but in the meantime, developers have to protect themselves by having savings for the job hunt.
Contracting For a Probationary Period Is a Trap
Some companies out there, especially agencies with high turnover, will try and hire developers on contract. They say that if they like you and you pass the 3 month probationary period on contract, they will hire you as a full employee.
As the article says,
contracting is the tech code for “we don’t want to pay for your health insurance or any other benefits, we don’t want to give you paid vacation, we don’t want to take care of a visa for you, we don’t want to pay for you to get training or go to conferences, etc.”
You are responsible for all your own expenses, taxes, benefits, etc. while you were contracting. During those days any vacations you take are entirely unpaid. If you negotiated well, or are lucky that your employer is kind, you may earn vacation days while you are on contract. The employer will string you along for many months or even years under the guise that they will finally hire you as a permanent employee.
Fortunately, if employers treat you badly you may still be able to file a lawsuit against them or to file a formal complaint with the Department of Labor and they will see that the employer was using your contractor-status to avoid paying taxes and avoid paying benefits.
Suggestions For Better Interviewing
The writer makes some suggestions for better interviewing in the tech industry (formatted into a list):
- If you want your candidate to perform a task and you know that the task will take more than an hour to complete, pay them for it even if you don’t end up hiring them
- Don’t expect your candidate to do a ton of unpaid open source or volunteer work.
- Don’t ask your candidate to do whiteboard coding or to perform tasks while other people watch them. This is not a realistic situation in a developer’s life and performing tasks under time pressure and while being watched tells nothing about a person’s skills.
- Give them a task they can complete at home in their own time and give them enough time to do so.
- Instead of having your candidate go through a marathon of interviews with different people, who will all ask the same questions, schedule a group interview. Be respectful of your candidate’s time.
- Offer people the job you advertised if you decide to hire them. Actually really hire people, including benefits and everything. If you’re looking for a contractor, mention that in the job ad, not after the candidate went through a ton of interviews thinking it was for a full-time job.
The Software Dev Group would like better interviewing techniques to be used if possible and these suggestions are a good starting point to open the discussion on the subject. We leave it up to software developers to figure these things by working together, and to share what has worked for them when conducting interview and to let other developers know which interview processes have been the best.
Had a Bad Interview? Let Other Developers Know!
At Software Dev Group we encourage software developers to report on their interview process and let others know if particular companies have an unrealistic or exploitative interview process.
Glassdoor.com lets you post an interview review of a company to help prepare others for the process.