I was reading this thread on Hackernews about Recruiters want people who do side projects, yet contracts forbid them?.
The discussion is very interesting and boils down to "Does it even make sense to spend time on side projects or open source for employment purposes?".
This response caught my eye and is something that I can agree on to some level since I have done some hiring myself even though this never was my main occupation:
If you enjoy the craft of software development itself, sure, work some extra time and have fun if that is what makes you happy.
But forcefully taking this kind of unpaid work as a means of getting a job makes no sense.
The reason why we hear this kind of myth a lot is because this is mostly propagated by random Startups that just raised tons of money and have zero clues on how to do hiring decently.
So the common sense would be to just "check your repos on GitHub" or give you a crazy home assignment that will take a week to finish.
I do think home assignments make sense to a certain degree if they take no more than a couple of hours, maybe 4 hours tops, but this would be ok only if the job is really worth it, not those generic jobs in generic companies.
For those assignments that take days, they must be paid.
I have worked in big companies and all of my work as a developer is inside organizations like this, nothing super fancy to show publicly, and most of the time I can’t even share due to confidentiality issues.
Even startups make you sign things like NDA to protect their intellectual property, but they expect you to have a public portfolio.
When are you going to do that?
After a full day of work, for free?
People need to take care of their family, needs, hobbies, mental health, life goals, etc when they’re offline.
Again, if you like it, fine, code some more when you get home after a day’s worth of coding at your full-time job.
But this should not be something you should worry about if you don’t feel like it.
The closest I have personally of a public portfolio is my blog, where I write on a schedule that makes sense to me.
And even then, this is different since the effort to create content is different from the effort of coding professionally.
My blog has been enough to help grant me some gigs, but if you ask me for fully coded systems to show, I won’t have any since they belong to someone that hired me.
I do have some toy projects that I develop when I’m learning something, but no hiring manager is gonna give me kudos for those simple apps, at least not for senior positions which are the ones I look at.
If you ask me, instead of creating side projects just for the sake of it, at least use this time and opportunity cost to try and create something useful.
Try to build an actual app, for actual users, a real business.
If it flops, you have a great learning experience in your belt to share with an employer.
Not just coding-related, but also involving time management, marketing, feature prioritization, interesting technical problems that make sense, and not just because they are "cool tech".
And, if your project works, you are going to have a huge chance to make some income and never have to go find a job ever again.
I talk about it some more on Side Projects and Small Bets as a Developer and A Portfolio of Small Bets.