The absolute best way to learn as a software engineer is to actually build software. It is way easier than people think to deploy a legitimate, real-world tech product that gets 10,000+ users, all for free and "on the side" (i.e. you can do it outside your day job). I have done it 10+ times, and you can build side projects that people actually use too!
I created this repo, because product thinking is quite different from technical thinking. This is why most developers struggle to come up with salient product ideas on their own, especially junior developers coming from non-STEM backgrounds. Learning to code is hard enough already, so it is really hard to switch your brain to this more product manager mindset when it's also learning how to build any software in the first place. We have asked many times what people in the Tech Career Growth community struggle with when it comes to building projects, and the #1 response by a wide margin was coming up with a good idea. So here's a bunch of curated, high-quality side project ideas!
I believe that all of these ideas meet the following criteria:
- Can hit 10k+ users within 2-3 months provided that there's sufficient investment
- Are purely engineering problems. You don't need to do any business development to get users. You will notice that pretty much all of these projects are utility apps.
- Are buildable by any level of engineer, even the junior engineer who just learned to code over the past 3 months
- Are at least fairly original and not sufficiently solved (i.e. I did several Google searches and couldn't find something good). You won't find any "build a music app but better" type ideas here.
- Can be built for free or on an extremely low budget (<$10/month)
- Can be built on the side without taking over your day job
- Are things I would build myself if I had the free time
- Can be built in a variety of different ways, all adding different types of value. This means that all of these ideas can be brought to life by 5, 10, or 25 people, all putting their own compelling spin on it
Project | Difficulty | Best Platform To Build On |
---|---|---|
LinkedIn Reaction Poll Generator | Medium | Web |
Slack MoveBot | Easy | Slack |
Slack Channel Fit Bot | Medium | Slack |
Food Button | Easy | Mobile, Web |
Simple Location Saver | Easy | Mobile |
Aggregate Restaurant Supporter | Hard | Web, Mobile |
Secret Hitler WebApp | Hard | Web |
Genshin Impact Team Builder | Medium | Web, Mobile |
Interactive Language Learner | Hard | Mobile, Web |
Tech Career Growth Navigator | Easy | Web, Mobile |
Cat Pix | Easy | Mobile, Web |
Low Effort Recipes Finder | Easy | Web, Mobile |
COVID-19 Travel Safety Score | Medium | Web |
COVID-19 Vaccine Conversation Navigator | Easy | Web |
All difficulties are evaluated from a very junior engineer's perspective. Imagine someone with <1 year of experience and has built "tech-demo" software projects before which worked and taught them the basic components of their stack, but weren't seriously iterated on and didn't get a real amount of users. We are assuming an average of ~10 hours of investment per week. Anyways, here are the 3 ratings:
- Easy: v1 is buildable within 2 weeks
- Medium: v1 buildable within 2-4 weeks
- Hard: v1 buildable within 1 month+
First off, if you're feeling overwhelmed and have no idea how to convert these project specs into the big bundle of code necessary to create a full product, I heavily recommend reading my Medium article here on how to build any large software project.
The great thing about these ideas in particular is that you don't need to build them on your own without any support. I have thought about each of these ideas for a long time, so I'm happy to provide tons of feedback to help you on your journey. Anyways, if you're choosing to build one these, I highly recommend doing the following:
- Check out our YouTube series on how you can build and grow your apps to 500k+ users for free here.
- Sharing your project progress in the #side-projects channel of our Slack community here. Please @mention me and Rahul Pandey!
- Sharing your progress on your personal LinkedIn! We would love to make side projects more mainstream, and sharing your progress in a public setting is a great way to do that. I personally feel like it would be amazing to see a #100daysofcode challenge but for a side project instead of the usual tutorial and course following I usually see on LinkedIn. Rahul, the Tech Career Community, and myself would love to be @mentioned on these posts as well!
I would love your help adding mocks to these projects! If you're a junior developer who has never built a serious software project, it is hard enough doing just that; and it's even harder if you have to translate raw text to a whole app or website. It would be super helpful if for each project, there's something clean and concrete builders can anchor on.