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'.
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...
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
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.
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.
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.
- 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?
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.
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
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.
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.
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.
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”?