Ask HN: What would you work on, if money was of no concern?

67 points by swalsh ↗ HN
I'm sure plenty of you work on projects with no motivation for financial returns, but suppose you could quit your job right now, and work on any project full time. What would it be? Why?

122 comments

[ 0.23 ms ] story [ 162 ms ] thread
I've had two non-profit ideas I've wanted to work on for a couple of years now but haven't had the opportunity to because of financial obligations:

- Kickstarter for scholarships

- A cheaper, more effective means of transportation for third world countries (essentially creating a better bicycle)

How would the kickstarter for scholarships work? Sounds interesting
Funny enough, I've had a similar idea in my notes.txt for a few months.

"microscholarships, crowdsourced, donorschoose for people"

I suppose students would have a page about themselves and donors would pick students to support based on their circumstances, talents, grades, and personality.

So really it woud be more like Kiva; loaning money to people based on charity. The problem with that is what makes Kiva so rewarding is the quick turnaround times, where you loan someone something and you get part of it back only a few months later to help other people with. That wouldn't work with student loans.
Except that it wouldn't be a loan, rather it'd be a scholarship or fund. The student should not be expected to pay it back, so I guess it would be someone like 'ChipIn' in that regards. If the site were built similarly to KickStarter, where the student posted a video and could post their grades, they could more easily solicit donations from friends and family. The organization could send the money to the university as a grant rather than to the student directly to lower the chance of the system being used for fraud.
(comment deleted)
I expect you will have a very hard time outdoing the bicycle.
Give it better tires and suspension for dirt roads and you've got a winner!
Suspension is properly handled by using the right tires. Anything else adds significantly to weight and cost, and detracts from durability and pedaling efficiency. Also, the existing infrastructure for parts and manufacture has to be considered. I agree that it's a great goal, but those machines have been evolving for a long time.
It's a lofty goal but within the realm of possibility, given enough time, resources and effort.
Most expensive very fancy restaurant in the heart of Manhattan.

If only money was of no concern!

I'd go after fixing the software deployment and packaging issue. Actually getting software on systems is still a PITA.

There's a huge gap between dev and ops here - I'm thinking that building tools that allows a developer to make an ops ready deployable package as easy as pushing to source control would be the ideal. Then tools, that work against source control and can generate packages off any revision/flavor would be great for both continuous testing and eventual distribution.

We've been stuck in the "download the tarball and compile it" mindset for far too long.

Yes, exactly, and most of all - something non-language-specific.
An ambitious machine learning project that I was not sure would work out in the end. I think with a lot of machine learning projects it's the journey of discovering trends in data which is the most interesting. However, it's only after you start the project and learn what the actual challenges are that you know if the solution is even possible, much less accurate.
Games. More specifically: 3rd person RPG games for the iPad. Games are the reason I started programming, but somehow ended up being a web developer.
Do a proof of concept, and do a Kickstarter, and make one. There's really no reason not to do cool projects that people would enjoy in 2012.
I specifically see "games" a lot from developers and I always wonder if they have all 5 or 6 talents necessary to pull it off.

I think most developers are interested in the engine development (a known quantity) but when it comes to the art assets (3D models, animations, textures, level design) that seems like a giant unknown to me.

I would enjoy working on a rendering engine, but if I had to model characters and animate them, I think I'd release the game 6 weeks before my 97th birthday.

If you have talent in all the required spots to do this, I'd agree with the other poster... so 2 or 3 proof of concepts in the app store to hone your skills.

  1. Game 1, simple terrain traversal game. Get used to open-world rendering.
  2. Game 2, character-focused game with stats. Get used to modeling and animation.
  3. <some more stuff>
  4. Game 4, Skyrim for iOS
Step #3 is critical; don't skip that :)
Between coding OpenGL and jumping into web dev, I spent 2 years professionally working as a 3D artist. As a kid I worked a lot on video and audio editing, and as a front-end developer I've mastered Photoshop. I have the talent but need the money safety net before leaving everything behind and pursuing a "crazy" idea like this.
Keep in mind I don't know your situation or what idea for a game you have in your head, but are you coming at this from too much of a black-or-white angle?

No you can't create Skyrim iOS edition in your free time, but you could create something much much sillier and simpler right?

Get the ball rolling, the creative juices flowing and a few apps in the respective app stores before quitting and going full-force?

I realize there isn't anything prophetical here; if you are an all-or-nothing type, then that will just be a much harder decision to make and I am hoping you get a chance to make it at some point.

Specifically, I'd start off even simpler than this. There's a lot more to it than "simple terrain traversal" and "open-world rendering".

Understanding things like a run loop, how game objects work/composed, and building your way up are crucial to success.

While we're on the topic, begin considering articles like these: http://www.pixelprospector.com/indie-resources/

And as you build a game, you'll hit that hump. Derek Yu of Spelunky fame talks about what it took for him to finish a game, and the topic in general. http://makegames.tumblr.com/post/1136623767/finishing-a-game

Here's things to start building, and build them COMPLETELY. This includes menu screen, level screen where appropriate, etc. etc.

http://www.gamedev.net/page/resources/_/technical/game-progr...

Something educationy, like khan academy.
Protecting animals from animal cruelty. Especially elephants,that are brutalized while alive for their tusks. The cruelty is beyond shocking.

Anyway, I would try and stop that, via a non profit organization.

World population of elephants: ~700000 Number of humans without access to clean drinking water: ~800000000
You should work on helping those without access to clean drinking water instead of wasting your time criticizing what someone else would like to do.
You probably meant, protecting animals from human cruelty.
PhD in computer science.
Out of curiosity, why? The prestige (completely legit answer) or are there topics you want to cover in depth that the PhD program will provide?

If so, which topics do you want to deep-dive on?

My thoughts as well, doing a PhD strikes me as a mean rather than an end.
If research is not appealing then a PhD program is probably not right for you. For some, reaching the edge of human knowledge in a certain narrow subject and then perhaps pushing it a little further is very rewarding. I am completely appalled when I hear of PhD candidates who are in it for the title or whatever but my thought is that most of these don't make it to the end.
Why does there need to be an end?
I did a PhD (not in CS) because I wanted to understand a set of scientific problems in depth, do the research, understand setting up experiments, monitoring them, etc. There are other ways, but it takes 2-3 years of semi-structured work to wrap your head around some of these aspects. At the same time, it helps to understand what you like/don't like and try out new methodologies and areas of research.

Not the only way to get there, but a very fun one.

I feel that there are certain aspects of cs that I really want to focus on for my own personal benefit. Sure I could study on my own (and do), but being in a program of pure laser focus for 3 to 5 years would be deeply rewarding for me.

I would most likely study some fusion of cs and art. These days I don't feel like I have enough time to move fast enough. I am trying to get into gpgpu (via CUDA at the moment) and I need to get into hardware. Having the full time to do this, without needing to worry about financials with my current lifestyle, is my dream.

That's what I did after a nice stint at Microsoft, and it's amazing --- working on compilers is even _more_ fun than you'd think!

But, there's always the gloom & doom at the end. Post-doc positions are easy to find, but there are very, very few academic research+teaching positions and competition is quite intense. Still, it's a great ride so far. And the worst-case "build compilers for a big bank" scenario isn't so terrible.

I'd paint all day and play the blues on my Les Paul! A really creative and joyful way of spending time.
I'd learn AI, machine learning, natural language processing, compilers, interpreters, drawing, playing guitar/violin/piano, snowboarding, martial arts, socializing better and effortless, programming/natural languages and whatever else I can come up with.

I'd love to come up with answers to questions others have not yet answered and discover questions no-one else has discovered, yet.

I'd also like to travel the world and get to know as much people as possible.

However I fear that even with unlimited amounts of money the real problem I will face is time which is why I hate procrastinating and even more the fact that I can't seem to stop it.

I'm extremely interested in machine learning and AI as well. Could you email me to discuss more?
Open source projects, stuff that's fun and creative. I had a great time with Hecl ( http://www.hecl.org ) for instance, but don't have a lot of time for it these days.
Work full time on data platforms for science
Education and Health.

I love electric cars and rocket ships. But my god there are some big ass problems I want to solve for my future children...

I'm probably cheating myself here, because what I want to do should be possible right now. If 'money was no concern' I'd finally lose all arguments against

.. learning system level C (embedded kernel/driver stuff)

.. commit full-time on open-source projects that I love

I know, I know.. I should just start!

What I have found helps me get over these "I know what I SHOULD do..." humps? If I pick up a book or find a good source of information on the subject and start reading it, I find that it lowers the barrier to entry for me just enough and starts filling my head with enough good ideas that I have to move forward.

You might pick up a good Kernel beginners book (do you know C? If not, start there.) and just start reading it... thumb through it... start seeing some of the API calls and comitting them to memory so the next time you see them you think "Oh yea, I remember that from Chapter 1..."

Don't worry about coding, which IDE to use, which build system to use, installing Ubuntu on your laptop or moving in with Linus... just get that book and start reading before you go to bed at night.

It'll either break down the barrier to entry for you, or make you realize it isn't what you thought and you can focus on something else.

Absolute worse case scenario? You learn a few cool tricks and put the book on your shelf to collect dust. No biggie.

Might I suggest starting here? http://goo.gl/YBoJ0

I spent a considerable portion of my teenage years wasting away in front of books like Windows Internals in the hopes that I would be slightly better at writing rootkits and exploits than the next guy. It's a pretty fulfilling skill and meeting someone with real (I stress real) deep kernel knowledge basically never happens, which can give you a reputation for solving the unsolvable, which is both positive and negative. As you may have surmised however, it's effectively commercially useless to have reverse engineering, assembly or kernel mode driver development skills -- That considered, I'd highly recommend you give it a shot, 'Understanding the Linux Kernel' and 'Windows Internals' are some of my favorite technical books. If you have only a rudimentary understanding of memory paging and assembly, I'd recommend 'Reversing: The Art of Reverse Engineering' and 'The art of exploitation' both published by No Starch (Which also publishes two highly recommended, but certainly not my favorite - "Designing BSD Rootkits" and "Art of Assembly").

Best of luck!

How could an entrepreneur possibly answer this question?? You've already quit your job and work on a "project" full time.
Technology to enhance democracy through easier organization and participation.
It is possible here in Denmark. There is a very safe and unique ID for everyone, the kicker is that it costs $0.60 per user/year to utilize.
>"Suppose you could quit your job right now, and work on any project full time."

Well, I just did the former though I can't really justify the latter. :) However, I mostly quit because my work was again taking over my personal life, so the intention now is the find something a bit more humdrum than yet another poorly managed startup so I have the energy at the end of the day to work on the side project.

Similar to Ivan, games. I want to make a Dwarf Fortress-like game for iPad, with a top-down 2.5D perspective, sprite graphics in a cel-shaded style, and culled down to the core elements I find to be most entertaining (with influences from other games I enjoy). It's a game I want to play, but I'm probably the only person on the planet willing to make it. However I'd also like to raise Dwarf Fortresses's visibility through my work, and get it some additional exposure to ensure DF development can continue. I've also a few concepts for iPhone games that scratch some other itches of mine, but the iPad game I at least have written a basic rendering and pathfinding engine already.

However I need to line up other work for the time being (should only take a few weeks). I'm a perfectionist that prefers the "when it's done" release cycle.

I'd like to create a sprite-based 2D rpg, also heavily influenced by Dwarf Fortress, where terrain, cities, forests, rivers, people, monsters, quests, dialogue, groups, and stories are all generated procedurally. Push a button and an interesting game comes out. That'd be cool.
Well, Dwarf Fortress's scope is... impossible to match. I struggle to think of any game with even similar complexity. Making a Dwarf Fortress clone would take many years, however culling down the feature set (and the depth of each features) to the actual "fun bits" at least makes it possible. So it's not even cutting the breadth of features, but also their depth. No need for complex climate or economy simulations, etc. No need for insane descriptiveness of objects (save for artifacts). It's a lot of complexity that reduces its appeal to a lot of folks (though caters very well to a specific targeted audience). Dwarf Fortress with a touch interface and cute graphics won't magically broaden it's appeal -- the core game needs to be streamlined and no longer be daunting to newcomers.

For example, no massive world at worldgen with full history and legends. Most people don't want to deal with complexity, they just want an embark site to start in and get to work on. It takes a lot of time to create those things that the majority of folks would never notice or appreciate.

There's a lot of satisfaction with gathering/growing food, building basic shops and homes, defending against threats, creating a trade industry, and a bit of dungeoneering. However one of Dwarf Fortress's strength is it presents a lot of competing interests -- where you need to weigh building defenses with industry, etc. Plus the occasional "oh shit" moment where the game attempts to stomp on your sand castle.

From reading about DF, and especially the NYT profile of DF and the creators, I get the strong impression that DF is very much being done the hard way, even ignoring the C++ aspects, and one could cut down the complexity tremendously with good abstractions and things like DSLs.

(Think the Viewpoints OS strategy - with good enough abstractions and DSLs, you can do an OS or languages in very small sourcebases; I'm still in awe of their TCP/IP strategy - parsing the RFC illustrations! http://www.moserware.com/2008/04/towards-moores-law-software... )

That would be a project worth doing.

I'd go back to school and get a BFA in Graphic Design and an MS in Human-Computer Interaction. (I have a BSBA in Information Systems.)
I would make videos that fused extreme sports with special effects. Think Downhill Mountain Biker vs Dire wolf. Or Snow Boarder vs Dragon.
First, my idealistic and self-indulgent project, and second, the project that would assure me I was actually providing value to the world.

1. My self-indulgent dream: an IDE built around text editor integration. Think Eclipse, but constructed as an exoskeleton that Emacs and Vim could slip into and become real IDEs.

Of course my priorities would come to the fore. The core would be written in a concise but statically typed language, plugins could be written in the same language or in a clean, concise scripting language. It would be trivial to run code from within the editor. And it would be nice if one day it generalized into an application framework like Eclipse.

2. My actually socially productive work: interactive educational software. I would construct interactive software specialized for very small units of learning. An app to teach French verb conjugations, an app to teach the concept of electron valence, an app students could use to interact with a writing coach, an app to teach basic programming, and so on. I would try to implement what had been learned from studies about learning, and it would be awesome if I could provide a research platform for education research.

In the end, I hope that the software work on teaching individual subjects would generalize to a set of templates for interactive learning that would let people construct reasonably effective interactive learning tools for many different subjects, with a reasonable investment of effort. Just as a software engineer would look at a problem and construct a solution out of well-known systems, an educator could look at the material and skills they want to teach in a class and construct an interactive course from different parts: spaced repetition to teach certain information, an interactive coaching module and a drill module for medium-complexity skills involving several steps, a submit/teacher review/revision module for writing tasks, and a portfolio module for the semester project. Those are the kinds of general modules that come to mind now, but the aim of constructing completely ad hoc software for a variety of subjects would be to discover novel design patterns for interactive learning.

Custom modules created by teachers, researchers, and hackers could be trivially published, for free or for sale, and incorporated into course-specific modules or explored by self-guiding students. Utopia! (Whew.)

P.S. If I had to show ads to cover support and operations costs, I would only show them to adults, and I would let people pay to turn them off. (Nobody should have to feel guilty for running AdBlock, so I think it's important to let AdBlock users pay extra to turn off the ads they would see.)

I've been working on a variant of the latter idea on and off for about 4 years now. We got some funding (through an NSF grant) but I couldn't maintain full-time development on it. I'm presently working on a project that sprang up after I identified problems in the original design.

I'd love to hear more about your ideas; ping me @gmail if you want to chat.

Ah, but this is if money doesn't matter :-) My job is very challenging, and after eight hours at work, I can't sling code anymore, much less tackle an entirely different set of technologies than I use at work. Also, I don't think I could do justice to the idea without being face-to-face with teachers and students, which would be a full time commitment. I can't put myself in a position where I'll end up disappointing either my employer or a classroom full of kids.

My current job pays well, though, and I plan on retiring at least fifteen years before I'm too old to program, so the "money doesn't matter anymore" scenario is a realistic one. I have a feeling that whenever I retire, educational software will still feel like the right thing to work on.

Bless you a thousand times for realizing that interaction with real teachers and students is necessary for the creation of educational software.
"1. My self-indulgent dream: an IDE built around text editor integration. Think Eclipse, but constructed as an exoskeleton that Emacs and Vim could slip into and become real IDEs."

For the idea of Vim within an exoskeleton, you might be interested in these ideas:

http://blog.sanctum.geek.nz/series/unix-as-ide/

I would continue to do what I already do on the side: teaching my girlfriend how to do qa/support/product/design/engineering while working on our side project (dynamic documentation). She gets to learn some marketable skills and understand what my job is like, and I get to spend more time with her.
Without thinking twice, I would commit myself to working on projects that tackle the main sociopolitical issues that humanity faces today and will face in the long-term future.
You probably want to be Secretary of State.
Nice question, some answer are pretty sad though. Particularly the one of binarymax ("PhD in Computer Science"). Money shouldn't be an issue to learn.

If I have a lot of time (not only money). I would certainly work in Artificial Intelligence or Artificial Life. I believe this is where I would be the most efficient in discovering something useful for the rest of the Humanity.

Sadly, even with a PhD in Machine Learning, I lose most of time resolving trivial issues or making trivial softwares.

Personally, I would work on creating a school/open location that trains students to make fun things with code... games, simulations, or anything else that draws people in. I want it to be a place that is interesting so it may spark that fire that leads them to a life of programming.