Step 0: A Developer Portfolio
Plan for building my software engineer’s resume

Table of Contents

Lacking a landing page

Graduating is 2 semesters away, landing a job is going to be tougher than ever for software engineers due to the recent lay off band wagon. Every advantage must be capitalized on. A tool that is purported to be the most effective advantage is a developer portfolio.

What is a developer portfolio?

Divide the process of landing a job into 4 stages:

  1. Standing out
  2. Landing an interview
  3. Passing the interview
  4. Getting up to speed with the team

Dividing the first stage further would look something like this:

  1. Standing out
    • Building a well designed front page
    • Showcasing coding projects
    • Driving recruiters to my front page through the resume

In short, the problem of landing a job lends itself to a sub-problem of standing out which finally lands me at one of the most effective tools at this time: an online portfolio.

Since the average number of qualified candidates per hire in Canada & USA is a whopping 341, any potential advantage must be highlighted.The best kind of advantage at this stage is competence. The other facet that is evaluated in the hiring process, form what I can tell, is interpersonal communication skills in the behavioural interview process. The reason is fascinating and I will surely come back to it in another post 2.

Definition: A Portfolio is a tool that serves 2 purposes:

  1. standing out
  2. demonstrating competence

Building a simple portfolio

At this point building a developer portfolio is a crucial step of landing my first job in tech. Now that a solution is identified, a set of questions must be asked:

  • How do I build a portfolio?
  • What is a reasonable time frame?
  • How do I measure progress?

Minimum viable product

Approaching a portfolio as a product is a half answer, the other half is I am the product and the portfolio is merely the front end. Now that the product is identified, I would rather an iterative process which is proven time and time again as the best way to approach building products3. But how do I build one? The obvious part of this answer is a website in HTML/CSS/JS the other part is what is the spec?

Hook

The first part to any website is a hero page which is a theatrical hook to the website. In this part of the spec, I aim to have it animation and design heavy in case it is an HR representative I’m trying to hook. This part of the spec should contain a call to action button (i.e. a contact me link) in case the recruiter needs no further convincing.

Proof of Skill

A simple interface lends itself to speed here since a recruiter would want to get the gist asap. So a simple grid with some way of highlighting the most prominent projects is ideal. But there is the issue of how to showcase a project? Is a simple live site enough?

Live projects

The premise is a live project is proof of being able to build deliverables. The glaring problem here is…Well, I have built exactly 1 site at the time of writing this. And that is the blog within the previous portfolio attempt (a weekend of HTML/CSS and no knowledge of webdev). Most of what I have wrote is scripts for my Linux system and a couple of web scraping bots for my RSS reader and a metric ton of C code on top of the Suckless utilities. So, this part will need revisiting after finishing a couple of presentable projects.

Source code

This step is trivial, a link to the respective GitHub repo should suffice. The implication here is that the READMEs are well presented.

Design documents

This is a more involved README, I intend to use the blog for this since writing ERDs and UML is trivial here. Migrating to an ARCHITECTURE file on GitHub after might be useful too.

Call to action

Landing an interview is the sole goal of this project. So, it follows that the call to action is a contact me with something like ’I love your profile, interested in an interview?’. So a button with Contact me should suffice.

The time frame question

With graduation around the corner, I am squeezed for time to say the least. I have found it easier to think in quarters rather than semesters when it comes to projects unrelated to school.

Roughly, the Schedule should look something like this:

job-gantt.svg

In Q1, I am taking the last of the ’hard’ courses @ the university. As such, bulk of the work is later on when the semester is about to end. If all goes to plan the portfolio should be ready for an entry level interview at the end of Q2. Hopefully, it does not take long to break into the market a that point. This resembles water fall of separate projects and that is only an idealistic representation of what is going to probably happen, an iteration pops every now and then for a previous project.

Aftermath

2 weeks after first writing this, and the front-end is complete. I’m satisfied with where I landed. I learned a couple of things about the web and I will probably end up changing a couple of things in the future, but for now it is deliverable.

GitHub Pages and Formsubmit.co

At first I spun up an OpenBSD server on a hosting site and deployed the server to. Turns out GitHub pages is free…Could have saved a full day’s work. Another thing I spent some time building on that day that ended up thrown away was a PHP form that turns out can cost me $0 to operate with formsubmit.co

Responsive Design

Although dev tools has a responsive simulator of sorts, viewing the website on hardware was a tiny bit different, and in one instance completely different. I guess if I ever have to build a front end to anything again, double checking on hardware is a must.

Next steps

The front end has all the characteristics of a portfolio I’m confident putting on my resume. However, the back-end i.e. my skills and projects still need a ton of work.

Footnotes:

2

how do committees invent is a paper that hypothesized that systems we build are replicas of our communication structure.

Date: April 23 2023 Updated on Feb 23 2024

Author: Youssof Taha

Email: youssof@ysftaha.com