First of all, sorry for the clickbaity title. But give me a minute and hear me out.
You can see it all the time: new developers spending a lot of time trying to get their portfolio websites right. In the hope to land a great job, they put in hour after hour building custom layouts that are supposed to look neat and professional.
But instead, they end up with a personal website that looks more like... eh. 🥱
Unfortunately, portfolio websites turning into a big timesink with less than ideal results isn't the only problem. Custom websites like this can also backfire. They can make you look incompetent even though everything is great from a technical perspective.
The good news: You don't need a portfolio website. Many developers (including myself) find great jobs without ever having one.
So before you start (or continue) wasting a lot of time on your portfolio website let's talk about
- What you want to achieve with a portfolio website
- What employers want to see in a job candidate
- What value a portfolio website provides
- Why a personal website can backfire
- What to focus on instead
- Need a portfolio website anyway? Minimize the risk
- Free course: Find your first dev job
Note: I'm assuming here that you are a software developer working on web applications and looking for a job in a tech team.
The following advice is not valid in every situation. For example, a portfolio website is probably helpful if you're
- a freelancer for small clients without technical knowledge (e.g. creating static websites for small businesses)
- a developer/designer who applies to jobs where design skills are important (which is not the case for most developer roles)
- building an online presence that you use to get jobs (meaning you don't rely on a resume or LinkedIn profile)
- just interested in learning some CSS and HTML
What you want to achieve with a portfolio website
When you build a personal website as a software developer your goal is typically to find a job. The purpose of the portfolio is to present yourself, your skills, and the work you've done to potential employers.
Since the competition for open positions for junior developers can be fierce a great portfolio website might help you stand out from the crowd of candidates.
But the portfolio website is just another piece in the application puzzle consisting of a GitHub portfolio, LinkedIn profile, resume, and cover letter.
Many new developers think that it's mandatory to have a portfolio website. After all, you can read many stories of devs who attribute their success to their websites. I'd like to challenge this perspective.
Before I share my reasons though we need to understand what employers want to see from developers applying to a job.
What do employers want to see in a job candidate?
When a company hires a software developer they are looking for a person who they can trust to
- write code and build applications
- work professionally
- communicate problems and ideas
- be integrated into a team
- be ambitious and eager to learn.
The earlier you are in your career the more important it is to convince an employer that you're eager to learn, capable of growing, good at communicating, and a proper future teammate. The expectations that you are very proficient from a technical perspective are lower in general.
Let's see how these requirements overlap with the value provided by a portfolio website.
What value does a portfolio website provide?
In most cases, a portfolio website is a static website that shows some personal information, skills, technologies the developer knows, and a list of personal or professional projects as a reference.
You might realize that all this information is typically already available on your resume or LinkedIn profile.
So apart from that, a portfolio website potentially shows to an employer
- that you can build a static website
- your design skills
- a touch of your personality.
Note that I'm not talking about a blog here. A blog can be very valuable since it shows your technical knowledge as well as your communication skills and thought process. At the same time, it's a lot of effort to maintain.
A really cool and unique portfolio website can definitely impress some potential employers.
But let's be honest. Building a website isn't very hard in the age of static website builders and ready-made templates. Design skills are nice to have but usually not important for a role as a software developer.
The real challenge for a modern web developer is building dynamic data-driven apps.
And a portfolio website usually isn't very interactive. That means it doesn't prove one of the most important skills that are required to get a job as a web dev. Even if you share the source code on GitHub.
Which leaves showing your personality as the biggest potential benefit of a portfolio website. The question remains how exactly you would do that. And given that it's unclear how many recruiters actually click through to your website when they see your resume or LinkedIn it might even be less impactful.
So what about the disadvantages?
Why a personal website can backfire
When I build a website from scratch this is what typically happens:
- I have a design in mind which looks really cool.
- I start writing code, create the markup, and style it with CSS.
- A few hours in, I'm done with maybe 10% of what I planned. And what I created looks like crap.
- I start moving elements pixel by pixel, add a border here, change a color there. All in the browser's dev tools.
- The layout still looks like crap. So I search for other websites that look nice, professional designs, or any other example that I could copy.
- After days of work the website looks ok-ish. But nothing I'd be proud of. And I still need to make it responsive and cross-browser compatible...
If you have experienced something similar you know one of the biggest drawbacks of creating a portfolio website from scratch:
You can spend a lot of time on getting everything straight. Usually much more than expected.
And the end result is often... mediocre. At best. 😒
Let's face it: Most developers aren't born designers. And they don't need to.
But the problem is that a bad design can make you look incompetent even though everything works fine and the information on the website isn't bad at all. So you could end up catching an eye with your website... but in a negative way.
A wise man once said: "Better to remain silent and be thought a fool than to speak and to remove all doubt."
In that manner: it might be better to have no portfolio website than one that looks bad.
To summarize
- As a software dev you don't need a portfolio website to get a job in a tech company.
- Portfolio websites can become a huge timesink that take days or weeks to get straight.
- A badly designed or buggy portfolio website can become a hindrance instead of an advantage.
So instead of spending lots of time on a custom-designed portfolio website, you might want to consider focusing your energy on something else.
What to focus on instead?
Cover letter, resume, and LinkedIn
When you go through a typical application process the first thing that an employer sees of you is your cover letter and your resume. In other situations, it might be your LinkedIn profile.
As mentioned above, many portfolio websites contain almost the same (if not less) information as the resume. But most developers only spend a fraction of the time on their resume compared to their website. That means putting a bit of effort into your resume can already let you stand out as a candidate.
So first of all, get your resume in order and polish your LinkedIn profile.
Once that's done and you apply for a job write a nice cover letter. By cover letter, I don't necessarily mean a separate document that you send next to your resume. These are often never looked at. But if you apply via email, for example, you can just write a few lines that prove that you researched the company and are really interested in the job. To save time, you can prepare a template for yourself. But be sure to customize it for every application.
Since writing a resume can be hard here are a few quick tips:
- Find a nice looking template. Nothing extravagant. Just a simple and standard template. You can also use a resume builder like flowcv.
- If you get a lot of immediate rejections to your applications check out this resume scanner. This should help to pass the automatic application filters.
- Get a free resume review for example at resumeworded.com or zipjob.com.
- Have a look at this thread on Twitter by Randall Kanna to find many quick tips for improving your resume.
Build a great GitHub portfolio
Another great way of using your time is to improve your GitHub repositories. For employers, it's very important to evaluate your coding skills. And how can you better prove those than with actual code?
That's why investing time in your GitHub portfolio is important. Especially, when you don't have a track record of professional experience yet.
You don't need many repositories or large projects. But a lot of projects of aspiring junior developers lack professionalism. Again, with a few tricks, you can already stand out from other candidates. My favorite tips are
- Write a clean, descriptive, and informative README. Some ideas: Add a screenshot, an explanation of the application, describe your technical decisions, add links to places in the code you want others to find.
- Use a Linter to ensure consistent code formatting.
- If you want to walk the extra mile write automated tests. Don't worry, only a few tests might help already. You can use this beginner's guide if you're a React dev and new to testing.
If you want more tips on how to build outstanding portfolio projects on GitHub have a look at this blog post.
You're a React dev and wonder if you're ready for your first job in a professional team? What if you could experience how to work like a pro while gaining valuable professional skills?
Check out my course on ooloo.io and build a project for your portfolio in a simulated team environment with designs, tasks, a professional Git workflow, and code reviews.
Need a portfolio website anyway? Minimize the risk
I guess I made my case: The two biggest risk factors to building a portfolio website are the time investment and the potentially bad outcome.
Since a personal website is not necessary to get a job (at least not if you follow a normal application process) you should think twice if this investment is worth it.
If you want to build a portfolio website anyway try to minimize the two risk factors. Consider using ready-made templates so you're certain that the looks are professional and you don't waste a lot of time on custom CSS. A static website builder or a CMS like Ghost or WordPress can help you decrease the time investment even further. An even simpler alternative is creating a README for your GitHub profile.
If you liked this article you might be interested in the free course below. It would also be super helpful to me if you'd share this blog post with your friends on Twitter or any other platform.
"I applied 100+ times for React jobs but only got rejections! What am I doing wrong?"
If you find yourself in such a situation you might wonder: What if you knew how to become an outstanding job candidate? That's where this free course comes in. Learn how the hiring process works behind the scenes and how you can improve to stand out from the crowd of applicants.
Top comments (69)
I have a dev portfolio that open me nice jobs opportunity being just a junior. Show to the world what you can really do is better than degrees 🎉
My portfolio isn't hard to implement and produce this "Woaw" effect to your teammates or recruiter 😉
Check it here it's open-sourced : cv.johannchopin.fr
Nice website. Great work. I suppose you still invested some time, right?
Not so much actually. Only if have a cool idea for a new feature to implement or want to add some infos. For me a portfolio should be developed to create a 'Waouh' effect in less than 10 secs. At the first look, you have to present what you can do (but this part only works for frontend-developer 😓).
Err sorry to tell you like this but your “hobbies” and “contact” page has layout issues on an iPhone SE (2020)
Hey thanks for the feedback :) Would you be so kind to add a little screenshot in an issue because I can't reproduce this layout issue: gitlab.com/johannchopin/my-cv/-/is...
I understand if you don't have the time for that +1
done
Same issue on an iPhone 6S
(Site looks fab otherwise)
Thanks for the feedback 😄
Cool site, from a UX perspective I think you better keep close the burger menu button near to where it was opened from. I traveled to the other side of the screen to close it lol
Thanks for feedback you're right it's not really user friendly I will fix it ;)
It does not mean that someone with a degree can not have or build a portfolio.
Thats for sure 👍
Looking sleek man ! Great job !
Thanks man👍 inspire yourself by checking the source code 😊
I like it, good job.
Aha thanks a lot you can check the source-code if you want ;) gitlab.com/johannchopin/my-cv
Hi, you made very nicely, but I want to ask how you got the idea for this portfolio design. I don't get the idea that how I make, Any tips. I am good at copying.
I agree with everything except the part about the cover letter. Call me crazy, but I really dislike companies or hiring managers who require or expect a cover letter. In fact, I never submit a cover letter just out of principle. (and I've gotten plenty of great jobs)
People spend hours on their cover letters to apply for jobs... and 95% of those applications are ignored or thrown in the trash. I personally find it a little insulting to have people invest so much for nothing in return. If you want to see why a candidate is interested in a certain position, give 'em a call if their resume piques your interest.
Thanks a lot for your insight. I personally also never wrote cover letters, to be honest. And I didn't mean a separate document that you send next to your resume. Not sure if the term cover letter was correct!?
What I thought of is for example when you apply via email. Just write a couple of lines that show that you actually researched the company a bit and are really interested in the position. Many candidates just send a generic text like "Dear Madams and Sirs, my name is XYZ and I'm interested in the job as XYZ in your company. I'm bla bla bla". An application like this will easily go on the trash pile right away. But if you have a bit more customized message that proves that you're interested and not just sending out mass applications.
The risk is, of course, that nobody reads it, as you already said. So also here I would be very focused and not spend too much time. I'm also not sure how this works with large job platforms and companies that use applicant tracking systems to be honest...
"Just write a couple of lines that show that you actually researched the company a bit and are really interested in the position"
In that case, then I agree with you :)
I'll reframe that in the blog post :)
If companies are throwing out your application, they'll throw out your resume, too. That's not a good reason to not write one. Same for cover letter.
Write one cover letter and change it slightly for the job. Use it to reinforce your resume and highlight your accomplishments.
I improved the post thanks to your feedback. It now says that I don't mean a separate document as cover letter. Thanks again for the help :)
I agree with the main idea of the article. It's indeed not necessary to have a portfolio website to catch a new job opportunity. However, if one has time to spent/play around, a personal website is one of the best playgrounds to experiment with new technologies and, most of all, a possible way to truly express yourself on the internet. Personally, I disagree with the idea of using "ready-made" templates. It can make standing out harder and it makes me feel the person didn't give enough attention/care to their website, aka their "internet home". Again, totally a personal opinion. Nice article overall with great tips 😁.
btw, I love to spend weeks working on every version of my website: kaisermann.me
Great example of a text-based website, focused on coding and experimentation.
Thanks, Allison! The internet needs more personal and different websites 😬
Nice website christain,is it open source ?
Your post says:
My initial response:
Being significantly employed, with a well-viewed blog and twitter, puts you in the top 10% of developers world wide. Take a moment to recognize that you are in a different category of employability, in that you can likely find work in a fraction of the time with a fraction of the applications and make actual demands of the position.
That is out of perspective of a the vast majority of regular devs just trying to find a job.
I think the main point of your post is the "minimize risk" section, with the "two biggest factors". This is the best reason to simply use a template, with some kind of Gatsby-like. Get the site running and accurate, and then call it a day. For a regular dev, It would be a benefit to have an un-offensive portfolio site in addition to the other profiles you mention.
I've been hunting for "a while" and there's way too much of this "if I can do it, anyone can do it!" type of mentality among that 10%.
Thanks for counting me to the top 10% ☺️ But my Twitter isn't popular at all and my blog not well visited. Somehow this post took off though...
To be fair, I get what you mean. With my experience alone I have much higher chances to get a new job quickly than someone new to the industry. And a blog might help as well. (Hopefully that's still true in the current situation since I'll need a job soon 😃)
But I didn't start out like this. I had a hard time getting my first jobs as well. Recruiters weren't very interested. I failed interviews. And even in that situation I didn't need a portfolio website. So my point is that it's not mandatory to have one. And devs often just spend way too much time on something that nobody might not even look at.
But thanks a lot for your feedback and especially the point that many content creators have a "if I can do it, anyone can do it!" type of mentality. I'm surely guilty of that and I'll keep it in mind for the future
I forgot: you're saying you struggle with the job hunt, right? Can you tell me what's the problem and how you approach the application process?
I appreciate your offer. Even the act of asking can be very helpful.
I wouldn't say I'm "struggling". I put out applications and either I get interviews or I don't. Eventually I won't have to do that anymore.
As a graduate of Lambda School, a "job hunt support staff" is part of the deal. Questions, suggestions for tweaks, all of that, can be handled. That's not to say that it isn't a pain in the ass, cuz it is 🤣 but at least I have a path for dealing with it.
However, the REAL problem with job hunting is the psych effects of which most people are completely unaware.
My original post is based on being weary of the over the top positivity. It is an unfounded euphoria that, as the application process reaches higher counts of sent resumes, will run out of steam and quickly lead the unaware to unexpected depths.
The worst it gets in daily life is having to play the same level in a video game "a bunch" of times before you get to success. But there is always a visible path. If it takes 20 attempts to clear, each attempt reveals some new information that the player can use on the next attempt.
The job hunt is literally screaming into the void. Send an application and get clear and absolute nothing. Having nothing to work with is insanely frustrating and most people are simply not prepared for that stark reality. Creating baseless hype to power application churn doesn't help.
Optimism is healthy: Hope for the best, prepare for the worst. The forced smile "Anyone can do it!" can be a worse path that meets the eye.
My own personal philosophy is Objectivity. Understand and accept the highs and lows. Know where you've been, know where you want to go, know the statistically best path to take, and work for the future.
Might sound kinda sterile, but today I see that perhaps I have no more or less of an opportunity than I did yesterday . . . What am I going to do about it? Work a project or 2 and tick those chances in my favor just a little bit more for tomorrow.
Thanks again for asking.
Makes a lot of sense and it's nothing but the truth. Thanks.
"You can spend a lot of time on getting everything straight. Usually much more than expected.
And the end result is often... mediocre. At best."
This is so true that hurts. Nice post, Johannes. Made me think about my (currently under construction) portfolio. Thank you
Nice article! I like your perspective on focusing on what matters and investing time in what makes the biggest difference.
Another option is to optimize LinkedIn and GitHub and use the website as more of a platform for writing, sharing your thought process, problem-solving process, and beliefs outside of coding for cultural fit rather than a static portfolio site.
I asked my current boss what the main things were that made him interested in me and he said my website was one of the top things for two reasons:
I used Gatsby, which showed I was interested in learning new and relevant tech
I wrote about personal things which helped him get a glimpse into how much of a cultural fit I would be at the company, which is extremely important
I really like your suggestion about using pre-built templates for personal sites in order to combat the perfectionism and time that goes into creating a unique portfolio site.
My favorite method to do this is to use the Stackbit <-> Dev.to integration with a Gatsby site. Moder, effective tech stack, can get you up and writing really quickly, and the whole thing can be set up in an hour.
I'm writing a post on this exact thing now. Thanks again, I always like unique and potentially controversial perspectives on stuff like this!
Hey Ken! Thanks a lot for your feedback. You're right, a blog or similar has a much higher value than a static portfolio website. It also shows much more. For example, your communication skills or, as you said, problem-solving and thought process. You approach to write about personal things that help to identify cultural fit is very interesting and makes a lot of sense.
Have to check your suggestions about Gatsby/Stackbit/Dev.to. Thinking about re-writing my blog to be more flexible and don't really want to go down the rabbit hole :D
Hi Ken. I improved the post thanks to your feedback. It now mentions that a blog has a different value. Thanks again for the help :)
Agree with you, If you are looking for your first job your first priority is getting some projects together on Github, building a CV, and making an outstanding LinkedIn profile. Designing and building a website is time-consuming, if you are a front-end developer or UX person then it might have some benefits, providing you have something worthy to show.
What's considered an outstanding LinkedIn profile? I don't use LinkedIn much, but how can it be useful if you don't have any prior job experience?
only make a portfolio website if you have something to show, but if you have nothing to show, a portfolio website will have to pose and demonstrate the problem in a way that makes it obvious you can reproduce the solution under novel cases. catch-22 of the industry.
companies want experience any way, and mom+pop shops don't care that your site is a technical achievement, or how it is a technical achievement in the grand scheme of things
I would encourage everyone to have their own website, even if you don't write the code yourself. Part of getting a job is selling yourself. Your website is just about the only place on the internet where you can share exactly what you want to share on your own terms.
I must say that your title got me at first sight. This year I started working on my professional image by including small changes like:
But my point here is that I feel that even with all these changes, not having a personal site will left unsolve a specific problem: missing context information about things like my technical experience (for example). I am trying to give not too much info in my resumé and my profiles for better readability, and I want to solve that part by creating a site with the whole story.
Have anyone had that kind of doubt?
If the answer is yes, how did you solve it?
It sounds like you're really well prepared already. What do you mean by technical experience?
There will always be holes that you can fill. But that's also where the interviews come in imo. So maybe your going into too much detail. Did you start applying for jobs with this setup?
When I am saying "technical experience" I want to express which concepts I learned in my work and/or the courses I made.
I know that recruiters have little time to read that much details and they appreciate when a candidate shows what they know or have learned in a few lines, but I think that could send a wrong idea (a classic example are the five star/points aside each technology without much context about what that rate means). At the end, you could be right about interviews and how they fill those specific holes.
So far I didn't start to applying for jobs, I am waiting some more time unit my country crysis stabilizes and I can make the change.
Besides the details I mentioned. Do you think I can improve in other way that creating a personal site? I am open to any advice :D
I have the feeling that you approach the career change very structured. So it seems like you're well prepared. Just try to apply and you'll see what results come back.
From my perspective the best thing you can do to improve is to build projects and try to use professional workflows as much as you can. Most importantly is planning the project by splitting it into features and creating tasks and Git workflows (e.g. GitHub pull request flow). And by writing the code you'll automatically improve those skills as well.
If you happen to be a React developer you can have a look at my course at ooloo.io where you can learn how to work on a professional dev team.
Thank you for the advice Johannes. I will study about workflows and go for that path.
Also I will check your course for a more professional approach.