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'.
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.
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.
I know of a university teacher who is looking into solving the arduous task of grading without going crazy. I approve of a tool being built to facilitate this.
I am torn on this issue as well: I strongly dislike formal education, with it following a metric of "teaching to the test" and "learning to test instead of retention." I wish that there was more systemic change towards a different way of assessment.
But not for one second will I assume to know what is best for the teachers in that space. If building a pre-grading (which is merely an example here) can help them shave off an hour of tedious work a day, I think it's a valid side project idea. It may even be a valid business idea.
The project that changed my life[1] was an EdTech productivity system that generated student feedback for online teachers working with young students in China. Student feedback as text-only is a horrible way of communicating individualized instruction. Yet we help teachers speed up that process, which allowed them to do one thing: teach more. Be more present in the classroom. Foster stronger relationships.
I would argue that making anything nominally more convenient is a good thing: it removes an inconvenience so that things that matter can take place. No teacher would call teaching inconvenient. Lots of them would call admin stuff very inconvenient.
Again, it's not about "teaching to the test" per see. It's about removing barriers to allow for meaningful, accomplished, and impactful work.
[1] https://thebootstrappedfounder.com/from-founding-to-exit-in-...
This is a different thing to me and a better suggestion: Solve the problem of someone you personally know whose work you believe in.
That's completely different in my mind from "pull some generic education-related blurb off the internet and build that." Even if, nominally, the two projects sound like exactly the same thing.
In practice, they probably aren't remotely the same thing, which is part of why we have memes like "Ideas are worthless. Execution is everything."
Why can't someone build a NLP model to test essays of middle schoolers or high schoolers graders on American history? You can look for learning objectives in the essay and grade upon that.
Why not build a tool with D3 or another modeling tool to teach chemistry? You could have them build compounds and then if they make a mistake, insert via a tool tip and tell them why. As they combine things, you read out what it is or test them based on the string they put in for the compound. You have to build it and name it correctly.
This sounds really cool and is completely unrelated to what I am saying "Please don't do."
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
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...
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.
Some of these I just really want to exist, so let me know when you do execute so I can be your first customer too! :)
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
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
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
> 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...
1. Most used apps are the browser, Facebook (marketplace only), Snapchat, Messages, Amazon, and RobinHood.
2. Browsing the web, browsing local listings, messaging people, shopping, trading stocks and options.
3. I wish the browser had better tab management and persona management. I wish Facebook Marketplace had a lot fewer ads and better categories. Also I wish it wasn’t Facebook. I wish there was a way to disable Snapchat notifications about the other person typing. I wish Messages had a way to disable notifications if I am, say watching a video or have some specific apps on (like games). I wish Amazon had a proper filter for “items I can get soon”. I wish RobinHood allowed me to list options bids/asks for longer than a day.
4. Of these the Amazon and RobinHood ones are the only ones that are feasible. There are alternatives to Facebook Marketplace and they are all worse/less popular. I doubt Apple would let me change their apps or OS code.
I suppose there is something here with an unofficial RobinHood API. Scraping Amazon is a popular thing to do but I don’t want to develop a complete clone of their app with just a single additional filter.
Let's see how it turns out this time.
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?
I created my own expense tracker and I use it to share stuff with my wife :)
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.
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.
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.
Chances are you can do it in an Excel spreadsheet without writing a single line of code, but where’s the business in that?
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.
Got any good resources on this that aren't focused on the Nanopass Framework?
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.
If you would like to collaborate and need a programmer let me know :)
- 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?
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.
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.
If you don't like his question, don't answer, but finger-wagging over commas and punctuation makes you look bad.
I don't think it's too much to ask to just proofread before you submit.
That's an important life lesson as well.
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.
Which worked out great, because otherwise most answers would have been specific to OP's emotions and interests and probably wouldn't be that useful to other people.
Questions like this don't get upvoted because of the effort put into them. They get upvoted because of the answers they attract. I'm fine with that if it means I get to read some interesting answers.
It is indeed low effort.
Your comment may be more insulting than the one you're replying to :)
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?
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
[0] https://www.onlinevolunteering.org/en/opportunities?f[0]=fie...
[1] https://brigade.codeforamerica.org/?_ga=2.40007591.405176958...
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.
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.
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.
- 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.
Local storage has the benefit of saving you bandwidth and storage cost, no matter how much your users save, and probably more privacy.
Databases on the other hand, allow you to „do stuff“ with the data when the user is offline, share it through cross-device sessions and things like that. However the users can’t be sure what you are doing with it.
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.
For the problem to solve in the first place, one might use a gps-tracker for pets or something.
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.
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.
http://writepay.blogspot.com/2020/03/the-textbroker-solution...
I've also previously talked about the fact that I live without a car in the US and when I was researching what small town to move to and using Google maps to try to figure out how to get there, if it can't give you a full solution from point A to point B, it will not tell you "There's a train that goes to X city, but that's only halfway" and it doesn't cover commuter bus routes between local cities.
I routinely went on Amtrak's site to find out how close I could get by train and then began searching for local transit options of some sort. I eventually found a solution and a city to move to and all this, but I was homeless at the time and spending all day at the library trying to figure out solutions to my problems.
As far as I know, there aren't any good apps for "How do you get there from here without a car?" for the US. Google maps does not have this problem space sorted and they seem to be the overall best solution (that I'm aware of) for finding out how you can get there from here.
Targeting a better skillset or developing just for making money most of the time does not result in good ideas or products - but a project of personal interest will motivate you for a long time.
Personally, i created software, that i always wanted to have, but did not find something, that fitted all my needs - and it is still fun to work on it... e.g.:
- A simple tool to transfer files
- A tool to improve scanned document images and create a pdf
- A tool to convert audio files
Just my 2 cents.Would you mind sharing the approach you used or the product page if it is public?
Incidentally, I was trying today to get two images combined into a single image and convert that into a single PDF. Tried with paint.net, MS Paint 3D etc., It was messy and the resultant PDF was also huge. Finally, gave up and manually pasted the images into a word doc and exported them as a single PDF.
e.g.:
slide #46 and #47: https://www.debian.org/doc/manuals/packaging-tutorial/packag...
Even if the coronavirus ended tomorrow, I think this would be a popular and widely used application.
Maybe an online tool for making SVG files from various types of image formats built on this fantastically brandable domain name?
I posted this a while ago and it never received attention: https://news.ycombinator.com/item?id=22604275
My goal is to bring a change on how software is developed using lean methods and based on user research and feedback so the devs aren't looked as sweat shop cheap labor from Asia.
I'm having trouble because I'm not sure how I should start. I don't think I'd want a VC to be involved. There are some great ideas here, I think approaching people and asking them about their problems and empathizing is not easy as an engineer myself but I'm learning.
Any pointers appreciated
- Graphics: Displaying 2d/3d graphics, using the GPU, shaders, etc..
- Multiple Clients: Dealing with multiple browsers or OS's
- Realtime Communication: Multiplayer will require sockets or web-rtc to provide a realtime experience
- Database Tech: Depending on what DB you choose, you'll learn CAP theorem and other trade-offs.
- Algorithms: Developing gameplay logic, rendering logic, AI logic.
- User Experience: Making the game fun, getting feedback and implementing sugguestions.
Making a game is also very satisfying, which is important to prevent burnout during the project.
Why do we still have to open our calendars, look through endless event notes to copy and paste a link into a browser that then launches the native meeting app? That's why I built an app called Meeter [0] for that.
[0] https://apps.apple.com/de/app/meeter-fast-call-initiation/id...
https://www.sideprojectors.com
See if you can make something better. :)
a simple blockchain in 100 lines - https://gist.github.com/selimslab/4ea8e87792dec4e23ecedfd435...
I include a, not very scientific, evaluation of each idea according to profitability, complexity and complexity. Also some real examples of each idea.
I've spent part of the pandemic automating OpenAPI spec with minimal annotations needed for an API. I was annoyed that the existing solutions wanted more annotations than actual code, when all the information OpenAPI/Swagger needed was already right there in my code. Just an example.
I've been doing that with https://alchemist.camp (screencasts for learning Elixir), and it's been a great side project. It's pushed me to learn more than I would have otherwise, built up a (small) profile online and generally lead to good things.
They release their research on upcoming trends. Some articles are awesome and lots of people seem to start side projects based on it. In addition, the community and FB group are solid. You can meet lots of makers if you have questions about a specific industry.
1. Grep, but as a web service for RSS/Atom feeds. Allows to filter a feed based on search terms, or by author, or by length of post, etc.
2. A feed reader (as a web service and mobile app) that specializes on YouTube (etc.) videos, with current playback position sync and other video-specific features.
Edit: add https to the URL
You could list things you are familiar with or use regularly and see if combining them in a novel way sparks the idea for an innovative product.
It's all open source, and I believe we will go into that direction very soon!
Projects like Holochain, IPFS, DAT and Holo-REA
A few things I might do in the near future: a PyQT tilemap editor which supports limited random generation; Reading CSAPP3 and work on the projects.
Saving time = value.
Try to make the goal short yet difficult.
That's a good skill to have!
Isn’t this also “I need a product-focused co-founder”?