I’ve been teaching post-secondary computer science and software development courses for almost 20 years now. Maybe about 10-12 years ago I started having employers regularly tell me things like, “what really sets apart a candidate is if they have a GitHub account with all their projects”. There was an interesting thread on Twitter about this recently: https://twitter.com/jasonalba/status/1405626754098548740.
And in many ways, it makes sense from the employer’s perspective to use this as a differentiator between candidates. If an employer is attempting to hire a co-op student from a college program, and they have 20 students applying, all having taken the same courses, the student with a portfolio of work has done something extra to demonstrate their skills to employers. A portfolio tends to demonstrate those skills in a way that is different than class assignments, in many portfolio projects concepts are applied to solve “real” problems. The presence of a portfolio also communicates things like drive, initiative, independence and soft skill abilities (e.g. ability to market oneself), all things that are attractive to employers.
A portfolio of work can also help job candidates without a traditional academic background (e.g. a software development diploma or computer science degree). Having access to these traditional academic pathways to a job in the tech sector can be seen as a form of privilege, in that not everyone can afford the tuition or time commitment that these pathways require. So in this sense, a portfolio can actually help those without this type of privilege to access better work opportunities.
But eventually many employers started treating a portfolio of work as a requirement for the job rather than one of many possible differentiators between candidates. While personally I’m a big believer in portfolios as a great way for developers to showcase their skills (just look at the name and purpose of this website), I’d really have to caution employers against requiring a portfolio of work.
The big problem is that a portfolio of work takes time to develop and publish. Not everyone has the ability to spend their time outside of work creating portfolio projects. People have family and other life commitments and constraints. Even for those with time, is it really fair and reasonable to ask them to sacrifice this leisure and personal time? And often the paid work that students, learners and professional developers do cannot be made publicly available as part of a portfolio (e.g. it is sold as commercial software).
So if employers are requiring a portfolio of their applicants, they’ll be missing out on excellent candidates who are unable to demonstrate their skills with a portfolio. Missing out on excellent candidates should be enough to spark a re-think. But just as important, it also raises issues of fairness and inclusion, as having time available to build a portfolio is a form of privilege that not everyone can access. For a tech sector that is seeking to improve inclusion, this should also raise an alarm.
While it’s ultimately up to employers to figure out their own processes, I’d strongly suggest that employers do not require portfolio work for this reason. While accepting portfolio work as a means of demonstrating skills is an excellent idea, for example allowing candidates without formal education to showcase their skills, making it a requirement is to the detriment of both the employer and applicants. And arguably the industry itself.
Ideally employers will have application and interview processes that take into account multiple ways to demonstrate proficiency and aptitude for the job. In practice employers may themselves be stretched for time. This is where perhaps new processes and tools/technologies need to be created to assist employers with making better hiring policies.
One of the better developers I know was unable to complete many interviews because they required her to do “homework” solving practice problems. She worked full-time and had to take care of a sick family member during her “off” time. She ended up getting a great job at a web company that used a hands-on technical interview. During the interview she was asked to solve a small technical problem (30 minutes), and the interviewer was just there to see the process she followed. She asked questions. She used Google. Things good developers do every day. She got the job, and she’s now a star at the company.
I don’t think there is an easy answer, but I’d love to hear more stories like this one.
What about Portfolio Courses?
For my part… this entire business is centred on helping students to develop portfolios. I really do feel they are an excellent way to demonstrate a skill set to employers, and that in particular for students and others trying to break into the industry they can make a huge difference. But a big goal of mine with this business is to lower the technical skills and time commitment bar to develop portfolio projects.
I’m hoping that by giving students a hand-holding experience through developing portfolio projects, they’ll be able to develop more projects faster than they would have otherwise. Or maybe even help students to develop projects who before would have developed none at all due to the bar being too high. But I’m going to be doing my best to keep in mind time commitments, with a goal of offering a range of courses able to accommodate different possible time commitments.