On getting that job: A fast and effective portfolio
Show your best version by building an amazing portfolio. In this post I show you how to do it in no time.
Hello, Hypers!
It’s time for another “On getting that job” post! In this one, I want to tell you to effectively and efficiently build a portfolio of projects that you can show to potential employers.
I strongly recommend you to read the past “On getting that job” post, so you understand the importance of a portfolio. In my opinion, this is the best way to show your skills, mainly if you are a Junior Developer.
As always, my target audience is software developers but these ideas might also apply to other fields. Without further ado, let’s get started!
The Goal of a Portfolio
You want to achieve one thing: getting hired. That should also be the goal of your portfolio. This can sound like an obvious thing, but it’s not. Most of the time we start a side project for our portfolio we get lost in the middle of the way. The odds say that we are likely to leave it unfinished. This can’t happen!
Portfolio projects should be ready-to-use products. An unfinished project delivers almost zero value. Sure, you probably learned one or two things, but now your goal is not learning but getting that job. If you are not careful, that interesting project could become a total waste of time.
Then, the first thing to always have in mind is the goal you are pursuing. You don’t want to build a perfect project or become a millionaire. You want to build a ready-to-use product that showcases a specific set of skills and maximizes your odds of getting a specific type of job.
With this goal in mind, you turn the odds in your favor. You are more likely to finish your portfolio projects and avoid the waste of time of giving up on them.
By the way, if you feel this project of yours can be a success then feel free to give it an opportunity. But you’ll need to rearrange your priorities. Do you still want to get hired? Do you want to see what happens with this product? Of course, you can split your time and pursue both goals. If you still want to use that project in your portfolio, make sure to complete a minimal functional version that showcases your skills.
What Project Do I Do?
This is the easiest part. You need to define the skill set you want to showcase. Then, you pick a project that allows you to showcase this skill set. For example, if you want a job as a Smart Contract Developer, you might consider showcasing your Solidity skills. Then you can build any Smart Contract-based project.
The good news here is that we don’t need to be creative. We don’t need to come up with a new idea. We can even clone existing projects. Following the example of the Smart Contracts Developer, a project could be cloning a known DApp or re-implementing existing protocols.
Of course, this doesn’t mean you should copy-paste open-source code from those projects. You should implement it by yourself. The only free thing here is the idea, the execution is on you.
You can also implement your own ideas as long as they allow you to show your potential employers the skills you want to show. Remember to be careful and not get too passionate about your idea. Just finish the project and add it to your portfolio.
How to Implement the Project?
We have almost answered this question already. But it won’t kill you to read it one more time. As your main goal is to showcase your skills and get hired you need to focus on the important things and avoid distractions.
Clearly define the critical parts of the project. These are the ones that show your expertise in the field you are interested in. For example, for a Smart Contracts Developer, this critical part would be… well, the Smart Contracts. Other parts like the frontend are secondary and we shouldn’t waste too much time on them. A Frontend Developer, on the other hand, would focus on the UI and probably will reuse some existing Smart Contracts and APIs.
The main take here is to maximize the effort on critical parts and minimize the effort on secondary parts. Remember I said you shouldn’t copy-paste code? Well, that is only valid for the critical part. Feel free to copy the code for the secondary part. It is even better if you can reuse existing products like APIs or SaaS.
This way, you’ll focus on the important thing. Also, you’ll finish the project in no time and reduce the probability of burning out. I also recommend you to fix a deadline for your project. It shouldn’t take you more than a month to finish a project. My ideal duration is two weeks.
Deadline is important. We said we were going to minimize the time dedicated to secondary parts and maximize the time dedicated to critical parts. But this could mean dedicating zero time to secondary parts and all your life to critical parts. That’s why you need constraints.
We already defined the first constraint: you have to build a ready-to-use product. This means you can’t dedicate zero time to secondary parts. You need a UI as well as a backend. It’s OK if you are a Machine Learning Engineer and build the UI with Streamlit and three lines of code. It is OK to reduce the UI to a Command Line Interface. But you need a UI.
The second constraint is the deadline. It tells us that we don’t have all our lives to finish the project, we need to do it in a couple of weeks.
Summarizing:
Define the critical and secondary parts of your project
Maximize the time dedicated to critical parts
Minimize the time dedicated to secondary parts
Build a ready-to-use project
Define a deadline
Now let’s answer some other common questions.
FAQs
How many projects I should include in my portfolio?
Of course, it depends on the skill set you want to showcase. But the most important thing here is that you don’t need to wait to have N projects in your portfolio in order to start applying for jobs. Start applying right away! No matter if you are in the middle of your very first project. The goal is getting hired, not building the perfect portfolio.
When can I say a project is done?
You need to establish the definition of done beforehand. Clearly define the set of features you want to add. Remember, you are not building this for the public. You don’t care about solving an existing problem or some people's needs. Just include the features that you think will allow you to better showcase your skills. Of course, you can change your mind as many times as you want. But remember, try to respect the deadline!
Can I add new features to an already-done project?
Of course! Instead of starting a new project, you can add new things to an already-done one. But the process should be the same. Define the definition of done for the new features beforehand, the critical and secondary parts, and a deadline.
Conclusions
Building a portfolio is one of the best ways of showcasing your skills. But it can become an infinite rabbit hole. In this post, I gave you some tips to avoid wasting your time and get the best out of your portfolio.
The main takeaways are:
The main goal of a portfolio is to showcase your skills and get hired
A project should showcase a specific set of skills
You don’t want to build the perfect solution or the million-dollar app
Your projects should be ready-to-use products
Define the features you want to include in a project beforehand
Define a deadline
Maximize time dedicated to critical parts
Minimize time dedicated to secondary parts
And please, have fun! If it becomes tedious in such a short time window, it might be an indicator that this is not exactly what you want to work on. So, the last recommendation is to maximize fun as well.
I hope you have enjoyed this post and that it helps you to achieve your professional goals. If you have any other questions, please use the replies and I’ll be more than happy to answer.
Also, remember you can access personalized mentorship with a paid subscription. You can also support my work and take advantage of the 50% discount for the yearly subscription.
And that’s it! Thanks a lot for another week, and see you next Tuesday!
Now I'm interested in how your portfolio looks like. Any links that we can check out?
Love this article. You're so right about projects needing to be in a finished state to help when getting a job. While incomplete projects provide learning experiences, they don't showcase a finished project. A finished, working project shows you've experienced the difficult parts of building software: making it user-friendly.