I get that getting users means the project is impressive which makes it a better project which would lead to more interviews.
But why are projects with users better?
Isn't a project with users just giving me signal about your marketing/sales/product skills and not engineering skills? Especially if you're building a utility app/one time use app e.g. background remover. The hard part about getting users isnt the technical stuff its the marketing/sales based on the fact that most apps I've seen ship something small, market it a ton, get users, and then worry about making the app really really good.
Would using no code tools to build a site which got a 1000 users be just as impressive if I used nextjs and nodejs?
User count and software quality are almost always closely connected, especially when it comes to retention. It's true that you can sort of "pay to win" raw user count by running millions of $$$ worth of ads, but those users aren't sticking around to continue using your app if it's bad. This is why when I show my side projects on my resume, I always mention both install count and the average rating (almost all my big side project apps have 4.5+ stars out of 5 after 1,000+ reviews).
For me, the mobile ecosystem rewards quality and punishes the lack of it, particularly for ASO (app store optimization). If your app actually sucks, it will get low reviews and high uninstall rates. Google/Apple then use this data to downrank your app in search results, preventing it from getting more users.
Conversely, if you regularly update your app, target the latest SDKs, and have good reviews, your app will get bumped up in search results because it's legitimately a good app. This is how I got 5 million+ side project users without spending a single penny on advertising. These apps have gotten me interviews at Google, Meta, Uber, Square, Instacart, and far more Tier 1 companies (Uber offered to jump me to the onsite twice).
Another thing that's important is that it's not just about getting the users, it's about what happens after you get them.
When users come in, they will, of course, use your product. When you have a meaningful amount of users like 10k+, 100k+, 1M+, those users are going to explore every nook and cranny of your app. They will find bugs. They will find performance problems. They will suggest features. As a (hopefully) good steward of your product, you will need to process all of this and learn from it. You will have to develop product sense, write better code, and communicate with non-technical people (i.e. your users). These are all super valuable skills for an engineer at a tech company.
This is in contrast to some flashy side project which uses all the modern, "cutting edge" technologies but has 0 users. When a recruiter or hiring managers sees this on your resume, they will (rightfully) assume that you stitched together some rough POC where only the happy flow works. In other words, it's not much more than some toy project you can stitch together from YouTube tutorials and ChatGPT. This is not valuable to tech companies.
In extremely simple terms, hiring companies want to know if you have the skills to do what they do. The entire point of a tech company is to build a good software product that gets a lot of users. So if you're making a side project, try to make it a good software product that gets a lot of users. Without users, there is no point and there is no personal growth.
I break down the personal learning aspect even more in-depth here: "How to Learn/Practice Clean Code, particularly by oneself?"
That makes sense. I understand now. I find that the developing high quality software is the easy part. The hard part is actually getting people to use it.
I have a few ideas on web apps but the issue is I don't know anyone personally who would use it. Even outside of data engineering and considering just web apps, I feel like the distribution is what's keeping me from side projects and I presume its not just me but a lot of people probably suffer from this pain point
Do you have any advice?
For example a simple idea I have that involves ML and could definitely use data engineering is building a simple background remover. The top result on google has a frustrating UX for HD pics where it makes me sign up, then verify my email, then tells me its paid
But I have no idea if this is something people even want. And if I build it how do I get users in a way that doesnt need me to be a full time salesperson
Web is tricky as SEO is honestly kind of a mess which is also a black-box. My advice is to spend a couple days picking up SEO optimization tricks, incorporating it into your web tool, and hoping that it picks up over time.
Heck, we can go even simpler. Take the #1 Google search result for your tool and clone their exact UI. From there, rip out the garbage (auth wall, paywall, ads, etc). That page is probably already SEO optimized, so you now have that. But on top of that, your tool doesn't suck. This is literally what I did for almost every side project I made, haha.
At the end of the day though, build something that you yourself or a close family/friend would use. If you do that, it's impossible to lose:
If the app doesn't get traction, just move on to the next one. My apps follow a power law where among the 30 apps I published, the Top 5 have 95% of the downloads. There's a long tail of apps that died before reaching 1,000 installs.