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:
- Standing out
- Landing an interview
- Passing the interview
- Getting up to speed with the team
Dividing the first stage further would look something like this:
- 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:
- standing out
- 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:
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:
how do committees invent is a paper that hypothesized that systems we build are replicas of our communication structure.