top | item 23290536

Ask HN: Looking for side project ideas

310 points| mraza007 | 5 years ago

Hi HN, As I programmer I lack ideas what side project ideas should i try to make skillset strong

157 comments

order
[+] arvidkahl|5 years ago|reply
The best products happen at the intersection of an existing niche you are some level of expert in already and a technology that has not yet been adopted in that niche.

I've found one approach work very well with my mentees:

- Figure out which "special interest groups" you are part of beyond software engineering. That can be "aquarium owner", "coffee lover", "morning person", "diligent grandson" — the less technical, the better.

- Among these "niches", find the ones that could benefit from a transfer of technology, like (spitballing here) "teachers who work from home" (education niche) + "automated submission and pre-grading of homework" could work (digital document collection and rule-based checking logic), or "aquarium owner" + "nitrate cycle tracking IoT device" (hardware-enabled analytics) + "optimal light scheduling" (machine-learning-supported recommendation engine).

Do that for all the groups you're part of, and you will find lots of ideas that aren't just "scratch-your-own-itch". They are 'scratch-an-itch-you-understand-and-know-how-to-remedy'.

[+] imhoguy|5 years ago|reply
Is it only me here who experienced such paradox:

I love tech side-projects but often I don't want to introduce more tech in my non-tech hobbies and activites as they are remedy for too much screen time. E.g. my gardening hobby highest tech is $25 weekly schedule watering valve and I feel very good about it.

[+] DoreenMichele|5 years ago|reply
"teachers who work from home" (education niche) + "automated submission and pre-grading of homework"

I homeschooled for a lot of years and my first blog was a homeschooling blog. I was involved with The TAG Project as part of supporting my homeschooling and I really hate this idea.

"Teaching to the test" is terrible teaching. Multi-guess answers aren't good ways to test student knowledge. They are just convenient for a teacher who needs to grade 25+ students.

Please don't run around thinking of yet more ways to making it nominally more convenient and easy for individual teachers to process tests or homework or whatever from large numbers of students. This is not a way to enhance the transfer of knowledge to the future generation and is also not a good credentialing method.

There are cool things being done with tech in the education space. There are people going online and learning things they want to learn because there are rich materials available for free. But they don't look anything like "pre-grading of homework" for teachers.

[+] _nckn|5 years ago|reply
Aquarium owner here. Thinking of IoT hardware but turns out the sensor is expensive and error/breaking prone.

Thinking to create yet another social media for people to post their aquariums and track the maintenance schedule then I realized I won't have the bandwidth (time and money) to deal with storing massive amounts of pictures, or policing the content to make sure it doesn't go down like social media dumpster fire of porn, gore, politics, religion, and other offensive materials

[+] Diesel555|5 years ago|reply
I guess that's what I did. Niche is fighter pilot, product is generating target imagery for training. dieselplanning.com.
[+] ezl|5 years ago|reply
Please steal any of my ideas! :)

https://www.dailyidea.com/ideas/eric

Some software ones that I like:

1. A nicer web viewer for Google Spreadsheets - https://www.dailyidea.com/ideas/d239cea3-7d1b-429f-afd4-ab9d...

2. Airbnb guest guidebook creator - https://www.dailyidea.com/ideas/d239cea3-7d1b-429f-afd4-ab9d...

3. Thai writing trainer - https://www.dailyidea.com/ideas/d239cea3-7d1b-429f-afd4-ab9d...

4. Instagram account tracker - https://www.dailyidea.com/ideas/d239cea3-7d1b-429f-afd4-ab9d...

[+] blandflakes|5 years ago|reply
I'm not sure if you're aware, but there are some options for in-office jukebox.

There's a lot of casting software where people can consume a stream (Icecast) and there are options for generating that stream (Liquidsoap is a DSL for just that).

Tools like airsonic have a jukebox mode: https://airsonic.github.io/docs/jukebox/

I found all of these while trying to find a way to eliminate my reliance on cloud music players because the apps almost always end up being trash.

[+] niksmac|5 years ago|reply
I am stealing a few Eric.
[+] michaelbuckbee|5 years ago|reply
Along the lines of your Google Spreadsheets idea - there's a number of different small SAAS that turn Google Docs + Sheets + Forms into dynamic sites.
[+] KineticLensman|5 years ago|reply
MAL - Make a Lisp [0]. This one has been discussed on HN before - its where I found it. I completed it last year (from Jan to May 2019) and ended up with Lisp-a-like interpreter written in C# that is sophisticated enough to self-host (i.e. it can interpret and run itself). I picked it up again when the lockdown started and I am now using it to re-implement some of the classic AI systems described in Paradigms of AI Programming [1]. I almost have Eliza (the first chatbot, from 1966!) running, which has necessitated some thinking because MAL is closer to Clojure than the Common Lisp used in PAIP. I'm also implementing what is in effect a standard library of useful MAL functions.

What I got from MAL was much better knowledge of C#, better insights into the power of lisp-like languages, some intense satisfaction when I managed some of the more complex stages, etc. MAL is progressive, supported by 100s of tests, and an amazing array of reference implementations in a huge number of different programming languages.

[Edit] My side-project before MAL involved downloading the Unity game engine and using it to explore the different aspects of game development. I discovered that I really enjoyed asset creation and in particular lighting and shader design, and (long story short - totally bizarre trajectory) ended up creating a tutorial for the Octane render engine that has had actual sales! If I was going to look at games again I'd probably start with a simpler engine such as Godot [2]

[0] https://github.com/kanaka/mal/blob/master/process/guide.md

[1] https://github.com/norvig/paip-lisp

[2] https://godotengine.org/

[+] Insanity|5 years ago|reply
I recommend giving Godot a look, I really like it and have been using it for small side-projects for about half a year now. I did have no "real" prior experience with unity and unreal though.
[+] krm01|5 years ago|reply
1. Write down the apps on your phone or computer that you use the most. If you want to bootstrap a profitable business, I recommend listing the apps you use for work.

2. Write down the one feature for each app that you use the most within that app.

3. Write down what slightly annoys you about that one feature

4. Build the product around the one feature you feel you can cook up quickly and that will benefit your workflow

[+] artembugara|5 years ago|reply
My story. I used to use news API services for my side projects. One day, I realized that I can build my own service that will be both, best quality (like real multilanguage support), and cheap.

8 months into it, it is my full-time job and we are releasing our first paid version (post-beta). We have 600 subscribers (beta-testers) and some people claiming they will become paid clients.

It is a huge experience in both, business and tech sides.

So, I would say the most important things are:

* forget "ideas"

* resolve your personal problem that you understand well

* always make a (side-)project with which you can charge people (making it "free" is just an excuse for not making something of good quality - 99.9% of cases)

* to the previous bullet point, you either ship a final solution that has business value for someone, or you are wasting your time (because no one can tell if it is of value or not (by paying))

Product: newscatcherapi.com

[+] clarry|5 years ago|reply
Cool! Let's try this.

> 1. Write down the apps on your phone or computer that you use the most. If you want to bootstrap a profitable business, I recommend listing the apps you use for work.

Emacs, vim, xterm, tmux. (I use them all for work. 99% of the time, what you see on my screen is either Emacs, or an xterm running tmux and some instances of vim.)

On my phone, alarm clock. (I use it to get up for work)

> 2. Write down the one feature for each app that you use the most within that app.

In emacs and vim, probably self-insert-command or some basic motion commands.

In tmux, switching between windows and panes.

In xterm.. uh, just the fact that it's a terminal?

Alarm clock. I use it to wake me up in the morning.

> 3. Write down what slightly annoys you about that one feature

Nothing about the most used features above annoy me. Well, terminals annoy me but emulating terminals is the raison detre of a terminal emulator so I don't know if there's much you can do about it..

I also hate alarm clocks but I kinda need one to wake up.

> 4. Build the product around the one feature you feel you can cook up quickly and that will benefit your workflow

Looks like it wasn't that easy :(

Something tells me that picking the most used application and the most used feature in it most likely leads to the most solved problem that doesn't need to be solved again...

[+] mk89|5 years ago|reply
I am doing exactly this right now in my free time. I stopped seeking the idea that was not thought about yet blablablabla. I just want to do something that I can actually use, and if it works out, I hope others can also benefit from it. I did the same about 15 years ago, when I started programming. Ironically, it was the only time that I published something (that is not work and paid) and that people actually used (and thanked me for it).

Let's see how it turns out this time.

[+] ipiz0618|5 years ago|reply
Quite a nice way to get an idea of what to do.

Do you use this for serious products that you feel like releasing? Would you be discouraged when you have found an alternative on the market that fixed the problem for you?

[+] arcadeparade|5 years ago|reply
I had an idea yesterday for an alarm clock that requires a qr code to turn off, checked and there's been one out since 2012 with millions of downloads. Tough to find low hanging fruit.
[+] mersocarlin|5 years ago|reply
My story: I was tracking my expenses in a spreadsheet. But it was starting to get really annoying having to keep receipts (I ended up losing most of them) and remembering to open the spreadsheet every time I had a new expense.

I created my own expense tracker and I use it to share stuff with my wife :)

https://atomicmoney.app

[+] leorio|5 years ago|reply
I would probably get downvoted for this..

It's very rare to find those "scratch your own itch problems", the solution to that itch is most likely a google search away.

Pick a good product that you use and clone it. Keep an open mind because you can never copy the entire business since there is only so much you can see. Atleast you get some direction to start and you know that you are not trapped in building something people don't want.

Since you mentioned making your skillset strong(technical?), either way you win by just starting something.

[+] codq|5 years ago|reply
I'm not a SWE, but this is how I sometimes make music if I'm starting without an idea.

Take a song you love—or even a song you've just heard 15 seconds of—and try to recreate it, but extremely loosely, taking as many liberties as possible exploring directions the initial inspiration leads you towards.

More often than not, it'll morph into something unrecognizable compared to the source inspiration, and quickly become it's own thing.

Staring at a blank sheet of paper, or the the void of limitless options, is frozen death. Give yourself a limited toolset and an inspired spark of imagination to get yourself going, and incredible things are possible.

[+] nojito|5 years ago|reply
Excellent advice.

You can even go further and you'll notice that the vast number of VC backed companies are just focused snippets of Microsoft Office Apps.

[+] freehunter|5 years ago|reply
I agree, trying to scratch your own itch is complicated and frustrating and if you really actually need whatever you’re building, chances are you could solve the problem in an easier way. After that, you’re not scratching your own itch anymore, you’re making it easier for others to scratch the same itch that you’ve already solved. It’s just not that easy to say “build something you need”.

Chances are you can do it in an Excel spreadsheet without writing a single line of code, but where’s the business in that?

[+] snazz|5 years ago|reply
Do something challenging but not too challenging. It should be hard enough that you can learn something without being so hard that you give up.

Some classic computer science project ideas:

- Build a path tracer. Physically-based rendering is a topic with lots of information on the Internet. It requires some math, but at least it's fun math :)

- Write an operating system kernel. It doesn't have to work on real hardware, just QEMU. You could even run it on a very old PC, Raspberry Pi, or TI calculator. This is a good introduction to how OSs work. Again, there's lots of courses and pages full of information online.

- Write your own programming language. Combine ideas from existing languages. You can make an interpreter, a JIT compiler, a single-pass compiler, a nanopass compiler, or something completely different.

- Combine multiple projects! Make your own programming language run on your own operating system and write a path tracer in your own language! Be creative, have fun, and learn useful stuff.

[+] helldritch|5 years ago|reply
I'm currently working on a progressive web application for support workers in care homes.

I've seen through first hand experience how much paperwork there is in this setting (daily outcome charts, medicine administration records, abnormal behaviour records, dietary and fluid intake, etc) and how many clerical errors there are. I've also seen first hand the key-document-dependency there can be around service user files, communication notification booklets for staff, etc, where changes often happen synchronously and are forgotten because the document isn't available in the moment.

I've spent the last 4 months or so taking a sabbatical from working as a software engineer to work for £9.00/hour at a support home for people with mental and physical disabilities (think Down's syndrome or people who are unable to live in an independent setting). As a result I now know an awful lot about this setting, the people who work in this industry, the minimum feature set I would need and the legislative landscape these companies operate in.

The best way to find a profitable side project is to become familiar with a none-technical discipline which is direly in need of modernisation. If you don't want to take time out of work, then choose an industry (it could be tree felling, red-brick manufacturing, shale oil extraction or solar panel installation) and figure out what the problems are plaguing the companies, staff or end customers.

There are so many $1,000,000,000 companies out there just waiting to be founded in areas which are considered unsexy and don't involve yet-another-to-do-list application. Find one company, with one problem, fix the problem, there's your profitable side gig.

[+] jerp|5 years ago|reply
Hi this sounds really interesting - I'm currently doing a PWA for a completely different industry and use case (enterprise sales), but I'd love to compare notes sometime - especially on ios & ipados side.
[+] zaind|5 years ago|reply
I've had a lot of experience in and around this looking after both my grandparents. Would be great to learn more about your experience and what you've got planned - would you be interested in a chat?
[+] vas123|5 years ago|reply
I have been working on EMR and EMAR applications for the past several years. This is a space that interests me.

If you would like to collaborate and need a programmer let me know :)

[+] mkl|5 years ago|reply
- Make things that solve problems you have.

- Make things that seem interesting/fun to you.

Borrowing ideas from other people seems unlikely to be very engaging, and making things just to learn skills has the same problem.

Lacking side project ideas seems kind of incomprehensible to me, as I have far more ideas than I could ever put into practice, even if I didn't need to work for a living. Therefore, I suspect you do have suitable ideas, but maybe aren't recognising them as such for some reason?

Scripting repetitive or annoying things is an easy place to start. Maybe start with simple website-improver GreaseMonkey scripts, to fix things that bug you, or make your life easier?

[+] dgb23|5 years ago|reply
There is an initial phase, where a creative person is just starting out. In this phase ideas are rare and sometimes seem precious.

I don’t quite understand what happens but after a while this phase passes. I think one of the core factors might be just doing stuff out of curiosity, playing, implementing things that are your own, fueled by curiosity.

Then, day after day you get showered in ideas. Good ones, crazy ones, boring ones. All kinds of solutions or new ways of doing things come to mind.

Today I find it much more challenging to filter and evaluate ideas than to get them.

Some important virtues that help in both cases: patience, practice, playfulness. Also respect of other people’s work.

[+] closeparen|5 years ago|reply
Consider building completely ridiculous, useless things. It removes any mental pressures towards commercialization/viability and shifts the activity from more like work to more like art, which can open up space to flex the skills you want to flex.
[+] Dumblydorr|5 years ago|reply
I don't want you to take this personally, but your post seems very low effort. How can we devote time to helping you if you only put 10 seconds into making this post without reviewing it?

For one, writing skills are important. You will have a hard time selling your project to anyone on its merits if you write incomplete sentences with lackluster English.

Second, you haven't taken the time to list out what your strengths and domains are, therefore HN can't leverage its vast knowledge to point you in the right direction.

If you want to build a useful project, you'll need to be more detail oriented and persuasive than your post here. Take the time to do things right. Feedback is worth its weight in gold, and you've given us zero to offer feedback upon except for your scanty quick query.

[+] DoreenMichele|5 years ago|reply
And yet it's got more than 200 votes and more than 100 comments (which is extremely good for an Ask HN). The first rule of writing is "know your audience" and he seems to have that part nailed.
[+] schwartzworld|5 years ago|reply
Actually, I think your response is really pathetic. Not everybody is good at writing, and for many, English isn't their first language.

If you don't like his question, don't answer, but finger-wagging over commas and punctuation makes you look bad.

[+] goshx|5 years ago|reply
I love how your points make sense and seem reasonable at the same time that they were completely irrelevant to attract the right audience and feedback from the community.

A foreigner does not need a perfect English (or English at all) to create and sell a product in their countries. Please keep in mind this is an international community.

Foreigners should not be discouraged because of a broken English.

[+] fallenatreus|5 years ago|reply
This. Despite being a management graduate and IELTS score of 8 bands I struggle to form cohesive sentences and almost lose the essence of my message especially in online forums like this.

I have seen people reply with so much consistency and grammatically well-formed sentences I almost cringe how they have honed their craft to this level. What's the secret? Any ideas on how to work on improving writing skills especially in formal settings & forums.

PS: had a boss who was so consistent in his writing that he used to reply in full sentences even on IM with punctuation and all that. I secretly admired him.

PPS: Is Grammarly premium worth it?

[+] tuesday20|5 years ago|reply
What tasks do you do manually in your life/job that is boring? Automate it wherever possible.

Help users of nonprofits understand them better - watsi, Kiva etc share data that can be visualized in a variety of ways.

Teach (blog, video etc) - this is especially effective in topics you already know, but have gaps. Teaching forces you to clear those gaps.

Do exercises from project Euler, Rosetta etc

[+] tobr|5 years ago|reply
I counted at least six mistakes in your question text, so I would recommend you to work on your writing skills. Luckily, writing is a universally useful skill, and almost any side project you pick should give you an opportunity to practice writing.
[+] zoomablemind|5 years ago|reply
If your goal is to 'make skillset strong', then I assume your want to learn. It's hard for us to guess what your interests are, so the most straightforward advice would be to join an open-source project that uses the desired technologies (language, framework, etc.) and go from there.

There's usually an issue-tracker and mailing list for the project to get some contact with other devs.

Pick an issue that has attention and which you feel you can understand. Replicate it, then try to solve it.

It's impossible __not__ to aquire new professional knowledge in such process.

It's also ok, to drop it and try to find another project, perhaps, more up to your present skill level.

The more you try, the more you'll learn...about yourself.

[+] furstenheim|5 years ago|reply
I think it's important to find feasible projects. A full stack project will probably be left unfinished. A way to find projects is to do tasks that you'd at work if you didn't have deadlines and were allowed to do more exploratory work.

That said. If you like nodejs, you might try to do a Babel plugin. They would allow you to do meta programming and it's an area mostly unexplored (because of the great breadth). In my case that was https://github.com/furstenheim/babel-plugin-meaningful-logs to improve error messages.

If you like java and use Intellij, give it a try at creating a plugin. You'll be able to simplify your flows. Since it's mostly self tailored it will be most probably not done. It's not extremely hard, in a couple days you might have something workable. In my case it was adding support for ZPL language, which is very niche. But most probably you can find something tailored to your dev experience.

[+] toohotatopic|5 years ago|reply
What's your level? Are you a beginner or do you already have some experience?

Also: What's your language, your target market? Suggesting a backend project for a frontend language or vice versa doesn't help you much.

In general, start with a game. You can be as creative as you like, there are no limits. On the other hand, you can keep it as simple as you feel comfortable.

That said, if you have some experience, look for an open source library that needs support. You improve the library, you improve your resume and you will get constructive feedback.

[+] srawat1001|5 years ago|reply
- I would suggest make a small app with just basic crud operations. It should have a front-end, backend and a database and then work incrementally to the other steps mentioned below.

- Use k8s to deploy and run your app.

- Add more business logic where you will be needing more tools like elasticsearch, message-queues, etc.

Some examples from the top of my head are Stock Ticker app, Ticketing software like Zendesk, Food delivery App, etc.

Note: Start small, add one feature at a time.

[+] askytb|5 years ago|reply
Build an app for finding lost pets with facial recognition. Recognizing cats is the easiest thing for neural nets, yet I haven't seen it used for lost pets yet.

Basic idea, if my pet is lost, I open up your app, upload a few images of my cat and set a monetary reward. On the backend your neural net learns how that specific cat looks like, then other users of the app can snap pictures of random cats on the street and the app will tell them if that animal is lost or not. If someone snaps a picure of a lost cat, they'll get connected to the owner and the reward is transfered, the app can take a small cut of it.

[+] la_fayette|5 years ago|reply
Neutal nets can definitely identify cats and also tell if it is a black or white cat. But identifing a specific cat might be difficult...
[+] giantg2|5 years ago|reply
It can be difficult to find a worth while idea. I feel that it is important to come up with the idea yourself so that you feel more committed to it, but that might just be me.

Look for something you are passionate about, or for something that is useful to you. The idea doesn't have to be unique or original. For example, there are apps that track your run time and distance when exercising. Some of these apps collect your data. You could create an app that tracks your run so you know your data isn't being collected by a company.

[+] truebosko|5 years ago|reply
Build something that you wish you had, not what you think people need.
[+] cameronbrown|5 years ago|reply
Build something simple, and make it a product/tool that doesn't require many active users to work, aka, doesn't require a network effect.

I built http://feedsub.com for this reason. Only a few users, but it indexes thousands of feeds and I make plenty of use out of it for myself.

My current project is deploying this app on a Raspberry Pi based cluster, and I'm going to write all the software for this myself to learn distributed programming.