What actually is a good software project to showcase your abilities for potential employers?
How far should you go?
How perfect does it really need to be?
Let's take a look at it and let me give you some advice based on my experience.

How far should you go?
How perfect does it really need to be?
Let's take a look at it and let me give you some advice based on my experience.



Whether you have experience or not. Projects within your very personal portfolio are a perfect way to showcase your abilities. They can make you stand out, and if you don't have them, they might be the reason you are not considered for a role.
As bad as you might think this is to also use your free, personal time to build software. It can be an entry into the industry or what gives you the edge over other candidates.

You are free to build whatever you want in your free time, but when applying for jobs, make sure you have at least one if not two projects that are pretty close to what you want to apply for.
Those two projects can be the ones you highlight in your CV. One of those could also be your portfolio page, and the other one something different.
No matter how you decide, make sure that the projects you build resemble the tech stack of your potential future ...
No matter how you decide, make sure that the projects you build resemble the tech stack of your potential future ...
... employer as closely as possible.
It's still okay to apply for a React role with mostly Vue projects at hand, but it's not the perfect fit. If you want to min-max, try your best to come as close as possible.
It's still okay to apply for a React role with mostly Vue projects at hand, but it's not the perfect fit. If you want to min-max, try your best to come as close as possible.
It would, however, be suboptimal to apply for frontend roles and have two backend projects in your portfolio (except it's a full-stack job). The same applies vice versa and across the board.
Always remember: You want to show that you are a good fit for a role you apply for.
Always remember: You want to show that you are a good fit for a role you apply for.

A good candidate for your portfolio is one that is working. It should be complete and not unfinished (feature-wise).
Even better if you have that project deployed somewhere, so there is not only source code and documentation to read, but also running software to take a look at.
None of your projects needs to be packed with features so that it's nearly its own product. Basic functionality is okay.
But your (e.g.) todo app shouldn't have adding and finishing todos implemented, but miss a way to edit or delete them. This could be considered incomplete.
But your (e.g.) todo app shouldn't have adding and finishing todos implemented, but miss a way to edit or delete them. This could be considered incomplete.
Imagine your project to be an MVP of a very minimal product. Then try to imagine what users would expect it to have. That should be your scope.
If you apply for frontend positions, your web app should be responsive, and also work across all
If you apply for frontend positions, your web app should be responsive, and also work across all
... major browsers (Chrome, Firefox, Safari, mobile versions incl. Samsung). So test for that thoroughly.
You should enforce some kind of code style through a linter, and have tests covering the major aspects of your project.
This shows that you understand that there is ...
You should enforce some kind of code style through a linter, and have tests covering the major aspects of your project.
This shows that you understand that there is ...
... more to software development than only writing features.
If your source code is on GitHub (good!), use actions (they are free for OSS), to automatically test and build your project on commits. This shows that you understand the importance of automation.
If your source code is on GitHub (good!), use actions (they are free for OSS), to automatically test and build your project on commits. This shows that you understand the importance of automation.
All these are things that the companies you're applying to will most likely also do in some form or the other.

You don't need to write perfect code but you should try to follow best-practices as far as possible and as far as you know them. It's way more important to build something complete than to deliver it in an absolutely perfect state.
Even the code your future colleagues write will very likely never be perfect. So don't waste your time on that.
Try to be consistent within your code and add comments where you see them fitting, especially to explain why some things are as they are.
Try to be consistent within your code and add comments where you see them fitting, especially to explain why some things are as they are.
Basically, pay some extra attention and try to write your code the same way you would do at your future job. You want to market yourself and state: "This is what you can get from me, now hire me!".

Projects are a good and sometimes necessary evil to showcase your skills. If you really want a job, they can give you an edge.
But gladly, you don't need to make them perfect. It's more important to showcase your skill and your potential to future employers.
Even the scope of your projects can be very narrow and doesn't need to span multiple pages in a text document.
The trick is to deliver complete projects that could well have been written as a professional mini-project. This is what makes the difference.
The trick is to deliver complete projects that could well have been written as a professional mini-project. This is what makes the difference.

Perhaps my thread about actually adding projects to your CV is a good read for you! https://twitter.com/oliverjumpertz/status/1348662546581041155?s=20