Five Tips for Crafting Your Own Coding Portfolio
Maximizing the value of your coding portfolio to land yourself a new job
There’s an episode of the HBO series Silicon Valley where software founder and CEO Richard Hendricks tries to sell a focus group on how great his compression algorithm tool is. While watching the focus group fail to understand the product from the sidelines, a flustered Hendricks steps onto the floor to educate the focus group members on how to use the product properly. After a full day of teaching the focus group members how to use the product, some of the members are finally convinced that this compression algorithm tool really is great despite not understanding the tool at the start of the day. Naturally, this doesn’t translate well beyond the focus group, however, because Hendricks can’t possibly take a full day to sit down with every single customer to explain how great his tool is!
Over the last few years, I have both mentored young people in finding new positions as well as interviewed people to join my machine learning engineering team. Because the hiring world has changed so much in the last decade, one great differentiator that the software engineering community hasn’t exactly embraced is maintaining your own coding portfolio. For context, I myself have only been a machine learning engineer for about two and a half years, and prior to that, I was in non-technical, project management-like roles. When I went through my learning path to become a machine learning engineer, I structured my own coding portfolio to share with the hiring team, and I am definitely convinced that if I had not shared my own coding portfolio at the time, I probably would not have been considered for the job.
But it’s not good enough to just upload your portfolio to GitHub in its current state and call it a day. Even if you have a very strong technical acumen, you have to keep in mind what Richard Hendricks did not: people do not have the time nor interest to really understand your level of technical acumen. Moreover, many recruiters serve as an upfront person before sending candidates to the actual hiring team so as to whittle down the number of candidates the hiring team has to assess, and these recruiters are often non-technical themselves.