Hacker News new | past | comments | ask | show | jobs | submit login
Bountify - Crowdsource small coding tasks (bountify.co)
92 points by danabramov on Oct 17, 2012 | hide | past | favorite | 57 comments



Hmm, it seems to me that for any task small enough to be appropriate for this site, it will be more work to describe the task and verify the result than to just perform the task.

This leads us to those who don't have the capabilities to do the task: They will risk asking for the impossible (the syllable counting task[1]) or accepting the unacceptable (the ZIP-code form solution includes a PHP script with a gaping security hole).

1: So this task has been requested by 'bevan' who appears to be the founder of the site, and in a comment dumbed down to only having to work for the given set of tests - the given solution will be little better than just manually counting the syllables.


There are two related cases I can think of where a task is easy to describe and reasonably easy to do, but tedious enough that I'd consider paying someone. One is 'port functions x,y and z from library A to language B' and the other is 'implement algorithm X as described in paper Y using language Z'.

Basically cases where the description bit is already done by someone else and a reference implementation to test against already exists. In fact I have just such a task that I've been putting off (I have a paper and a matlab implementation, and really want a python/numpy version), that I might throw up on the site to see what happens.


You're right that users will ask the impossible, and accept the unacceptable, but I think that a good enough feedback mechanism could over-come this, and sites such as Stackoverflow have implemented feedback mechanisms that could work.

Eg. by allowing comments on answers, the glaring security hold in the ZIP-code form answer could be raised, addressed, and fixed.

Allow moderators to say 'this task is too big/the bounty is too small', while simultaneously limiting the maximum bounty to something small.

IMO, the 'right' solution is for libraries to be more easily broken in to pieces while simultaneously easier to use together so that just the form part of the 'big ZIP-code PHP library' could be used in this case, but barring that, this is a neat attempt at code-by-documentation, given that most of the problems I saw were easier than homework problems.


> but I think that a good enough feedback mechanism could over-come this, and sites such as Stackoverflow have implemented feedback mechanisms that could work

But people are on SO out of a desire to help other people, and SO specifically encourages general problems - so saying "that's not possible" is the right answer to the syllables problem instead of some messy thrown together code that doesn't actually work.

By introducing the financial reward system, this goes out the window. I get nothing out of commenting on bounties, explaining why answers are wrong or requests impossible because I'm not contributing to a community of being helpful to future people running into a problem.

> IMO, the 'right' solution is for libraries to be more easily broken in to pieces while simultaneously easier to use together

Sounds good, but that's not how software development works. The cognitive skills required to break down a problem into such pieces is significantly higher that those required to write code that performs the task.


> I get nothing out of commenting on bounties,

The system could easily pay a pittance for commenting, and then more for distinguished answer; and hell, a monetary penalty for poor answers/spam.

Also, correct me if I'm wrong, but it seemed like the accepted answer, along with its code, was freely available, so future people do get the benefit of your insight.

> The cognitive skills required to break down a problem into such pieces is significantly higher

...so why should they waste their valuable time doing both the documentation and implementation?


I like the idea of being able to nitpick someone's code for credits. I also like the idea of being able to take [some of] their $ if I can prove their method is wrong within a certain amount of time of being accepted, or possibly all of the $ if they really screwed the pooch.


Thanks for the feedback. I agree that not all coding tasks are appropriate for Bountify, and that there'll always be potential pitfalls whenever you outsource bits of work. But I'm hopeful coders will recognize those pitfalls and learn to use the tool effectively. Let me know if you have any ideas on how to mitigate those risks you mentioned.

By the way, if there's a security hole in the accepted solution to https://bountify.co/B, you should post a better one or even just mention it- I might tip you for it! :)


That's another problem - I'll help you for free because I'm nice and this is HN, but if I'm to consider money as a motivator, $5 (or a tip which must be assumed to be less) is downright offensive.

The problem is this PHP:

<?php echo @file_get_contents($_GET['url']);?>

It does nothing to validate the request, and will trivially proxy any request to not just any webpage in the world, but any file readable to your webserver.

What you want is something like:

  <?php 
  $zip = $_GET['zip'];
  if (preg_match("/^(^\d{5}$)|(^\d{5}-\d{4}$)$/", $zip)) {
    echo @file_get_contents("http://www.webservicex.net/uszip.asmx/GetInfoByZIP?USZip=".$zip);
  }
  ?>
Not tested, but that's the general idea.


Thanks for the explanation, no offense intended. My point was that there's a mechanism (imperfect though it may be) to help catch flawed solutions.

BTW, the winning solution doesn't appear to have the security flaw you pointed out.


I like this site's idea, but I'd still place my tasks on http://freedomsponsors.org. Disclaimer: I'm FS's founder. I think the "pre-paid" bounty system makes users feel uneasy about whether they'll get something for their money or not.

I believe that the "pay what you promised, after you've gotten it" model works best.


"Programmers compete to provide solutions within 1 week."

Sounds like logo contests: spend your time on work that you might not get paid for. And given mseebach's[1] "accepting the unacceptable" - people without the capability to write these small code tasks themselves are not qualified to evaluate proper solutions.

1 - http://news.ycombinator.com/item?id=4663884


The lack of a guarantee of payment may dissuade some potential solution providers. However, I think most users provide solutions for fun. At least one repeat user can't even accept Paypal payments in his country. BTW, you can also send your winnings to charity if you wish.


Well I'd say this is targeted more towards people who have already done it. 10-25 bucks seems to be the going rate (25 dollars for a non-trivial/non-100% NLP task? Come on) now to write it from scratch is not worth it unless it's like, a half hour thing you already know how to do. Now what would be worth it is if you already had a solution that you don't mind selling. Like the zip example, supposing I'd already written something like that the five minutes to look at it, make sure it works, maybe tweak it for 10/15 minutes to suit what they want and then upload it for 25 bucks seems worth it especially since I'd guess the majority of people posting bounties are going to take the first working example.

tl;dr: post code you already wrote and then get a coffee with the proceeds.


So I just Selected an answer for the bounty I posted: https://bountify.co/G

I got two good answers pretty quickly, which made it a bit hard to choose. I selected the one that used the most standard libs, instead of the first answer. I sent the first responder a tip as thanks.

Some thoughts now that I've used it: - Got two good answers quickly - loved that part. Saved me a lot of time. I'm going to use it again immediately for a the same thing in PHP (https://bountify.co/H).

- How about the ability to copy/clone a bounty so I don't have to rewrite the whole thing? Just a thought.

- I felt as though the price you add to tipping is a bit excessive. It was $1 per increase ( $.99 for a $1 tip, $1.99 for a $5 tip, $2.99 for a $10 tip).


I'm glad you got solutions so quickly!

I've also had a hard time selecting a winning solution when several correct ones are posted. I'd like to avoid duplication of effort by solution providers when possible, but finding a way to do that is tricky (I plan to at least implement a 'view count' to give would-be solution providers an idea of how many others have seen the problem).

Thanks for the feedback regarding the tip fees. I'm considering reducing them, as I want to encourage tipping as much as possible (especially considering that tips are often awarded to solutions which may be as good as the winning solution, and I want to encourage rewarding those efforts so that good solution providers stay around).

Cheers!


Probably echoing other concerns here, but immediate thoughts:

- Filter open bounties (or have a sort option and default to open bounties at the top of the list; not much use in seeing expired bounties)

- Payment should not occur until an answer is accepted, and you should be able to do this via Stripe without much additional effort. Not everyone values or appreciates being forced into a charitable donation when they are attempting to spend money to solve a problem.

- The fee structure is quite exorbitant. Charging an extra $22.44 on top of a $250.00 bounty? The Stripe fee is only $7.55. Same for the $100.00 bounty--Stripe fee of $3.20, and an upcharge of $11.79. That's ridiculous.


Thanks for the feedback.

1) I'll add a filter for open bounties.

2) It would be nice if payment could occur after a solution is accepted, but in practice that presents some thorny issues. Notably, how would I ensure the bounty creator pays after they receive a working solution?

3) What would you suggest as a more appropriate fee schedule? Considering expenses, of course :)


1) Awesome. That's the biggest usability improvement right now.

2) Accept all CC info at time of posting a bounty and create a Stripe customer record. Charge automatically when the user accepts an answer--acceptance is the delayed "confirm payment" step, so to speak. Create a system whereby the deadline for bounties applies to both parties--poster must accept an answer within 7 days, unless there are no answers or something. Figure out how to handle bad answers, etc. Or make it so they will be charged automatically in 7 days unless no answer is provided, and the bounty will be applied equally to all the responders or something. Get creative. The forced charity thing really shouldn't be happening. Give the money to the people who take the time to answer questions, leaving it up to the poster to ensure they award the full bounty to the right person. Keep a reputation system on a post:accept ratio or something so responders can get an idea of whether they're likely to be awarded a bounty from a given poster or not.

3. That's a bit tougher one to answer from the outside. I can't figure out how expenses could be as high as the upcharge. I completely understand wanting to make money off the service, and think you absolutely should. But, upwards of 300% is a bit much. The reason this sticks out so much is that people will accept fees, but when the fees get excessively higher at different steps in a way that is not an equal percentage across all steps, it becomes obvious that there is something wrong. I think this is highly likely to be noticed among the audience using this service. So come up with a flat rate that applies across the board--say, 10%. Enough to cover Stripe's fee & have a bit extra left over. You should be making money off building up a vibrant service, not off gouging your users.


I was thinking about this problem recently, primarily around a service for outsourcing the optimisation of functions (e.g. inner loops).

For this it would be useful to be able to define unit tests and set execution time limits.

Done well, this is a kind of part solution to problem 6 "Bring Back Moore's Law" of Paul Graham's Frighteningly Ambitious Startup Ideas: http://paulgraham.com/ambitious.html


Bootstrap. Please don't make its usage so obvious.

Also, is there a way to see only unsolved bounties? Seems like a main feature to me for programmers.


Do you believe that most people know what Bootstrap is? Enough to recognize it on sight? And that they care enough to not use a site that was built with it?

And of those people, are they the kind of people who would find a site like this one useful? That is, are you saying that in your opinion, this site will suffer noticeable financial consequences of having used Bootstrap and not sufficiently disguised it? And that that lost revenue would offset the costs of changing the design?

I'm not sure that I can agree with you if that's the point you're trying to make.


The people who use Bountify (ie, programmers) will almost certainly know what Bootstrap is, and that stereotypical Bootstrap "look" gives the impression of laziness and a lack of care. Whether that impression is correct or not is debatable, but the fact remains that form is often just as important as function when it comes to making a sale.


Really? I don't think it matters. After I learned about bootstrap I started noticing it everywhere but beyond "oh hey, they're using bootstrap" (and stealing ideas like crazy when I notice) I don't get offended if someone is using it.


"Mac application. Please don't make its usage so obvious."

All snarkyness aside, it's interesting how our values shifted from consistency to variety in the last few years.


Good point. I think the difference is that in a "closed" environment like OSX there's value in having a consistent look and feel (pretty much set by Apple, for the most part). Not that it's a bad thing, but culturally that's just what has happened.

On the web, which is a more "open" environment (ie look and feel not set by a single company), there's perceived value in uniqueness and originality in design.

That's not to say I agree with the sentiment (I don't mind the generic Bootstrap look either) but I think that's the difference.


Thanks for the feedback. There isn't a way to see only the unsolved bounties (adding that soon), but there is only one and it's on the front page. There were a couple unanswered ones a long time ago but they have expired.


It seems like we got a competition (by we I mean http://carmivore.com/).

We're not this far yet though, so we better hurry! :)


Landing page looks great! Let me know if you want to compare notes sometime over coffee (SF or NY). Looking forward to seeing the product. All the best!


Thank you for the invitation, unfortunately, I'll have to pass for now as I'm from Slovenia, EU :)

Here's a small sneak-peek for you: http://cl.ly/image/001Y0W0y050X/o


That looks awesome! Nice UI!


Seems interesting, and I may have some items to post. Not sure that I like that if my bounty gets no answers my money goes straight to charity. Would tend to make me post lower bounties to reduce my risk, which may attract less attention, which may increase my risk, etc.

PS - The link to the MSF charity is wrong.


@impostervt, I'm the creator of Bountify- thanks for pointing out the broken link, I'll fix it asap.

Yes, I think the money-to-charity policy will dissuade some users from posting higher bounty amounts at first. My goal is to show that certain kinds of tasks can consistently get quality solutions on Bountify. So far I've been pleased with the speed and quality of solutions and the tone that's been set by the first users.

Feel free to share what types of tasks you'd consider posting. Thanks again for the feedback!


Just posted a bounty (https://bountify.co/G)- some thoughts:

-Looking up tags is painfully slow. -I agree to the Terms & conditions - missed it the first time through, lost my CC info. Kind of annoying. - Posting the bounty, from the time I clicked the Post Bounty button until the page refreshed, is also slow. Maybe a spinner at least next to the button so I know it's working?


Thanks for posting a bounty!

Sorry about the latency, I'll work on that. I'll also address the Terms and Conditions issue (by most likely removing it entirely, since there is a redundant notice on signup). Please let me know if you have any other suggestions or feedback, I really appreciate it.


I'm afraid this probably runs afoul of the escrow laws. Such laws vary somewhat by state, but they generally cover situations where you act as an intermediary in a transaction, holding money for one party until the other party satisfies some condition. The problem with this business model in general is that it provides a great temptation for embezzlers, as the amount of money being held at any one time can be quite large (being the sum of multiple pending transactions).

The easy fix is not to actually charge people when they place a bounty, but instead get a preauthorization; then you can charge them at the time the bounty is actually paid. Depending on how PayPal's API works, you might be able to do this without having the money actually pass through your account.

This would also give you the option of not charging them at all if their problem wasn't solved, but presumably you don't want to do that since it opens the system to abuse.


I was curious and actually posted my solution to this https://bountify.co/J

I should say that I will not be participating in this in future unless I am assured that my solution has equal chances of acceptance.

I posted my solution few minutes after the first solution was posted . ( my approach was completely different on handling the file uploading) later after some time I was shocked to see that the first answer was edited and was following the approach I had followed.

I am not saying that code was copied. what I am saying is that it's not good to allow other participants to see the different solutions . Also I would suggest that you maintain version of every answer. ( so that you can track the edits ) ..


Hi ing33k, I'm the creator of Bountify. Thanks for trying it out! In response to your comment, solutions are versioned, and there is now a Timeline feature for each Bounty, where you can see each edit made to each solution in order of creation. You can also see diffs for each solution. Let me know if you have any other suggestions!


I love this idea. I'm going to bookmark it and give it a shot when I get stuck on something that I need done in a hurry.

My thoughts: 1. The bootstrap theme is fine imo, unlike what others are saying. I'm assuming this is an MVP to see if you can get traction, and in this case the functionality is more important than the aesthetics. You'll obviously want to change this later on though.

2. Let me filter open bounties, or at least move those to the top of the list.

3. Your tag filters don't look like they are working properly. If I click 'javascript' for instance, I only get one record.

4. Can we set custom time limits? For small coding tasks, I don't want to wait a week to have them done.


Thanks for the great feedback!

2. That feature is forthcoming 3. Thanks for pointing that out, I'll fix that. 4. It started that way, but then I realized the time limit wouldn't have much impact on when the bounty actually gets answered, because solution providers compete to answer as soon as possible. So in the interest of simplicity I decided to make it a week. I'll consider changing it back. In practice, most tasks have been solved well before the deadline.


My thoughts on the time limits...

I have wanted a service like this a dozen or so times this year, and each time it has been when I'm stuck on a problem that I need to get sorted ASAP. If I have time, I'll figure it out myself (that's part of the fun).

I usually want a solution within minutes/hours rather than in a week. I would happily offer relatively high bounties for solutions if I get them quickly, but if I have a problem and I have to give people a week to complete it, what happens when I solve it myself the next day?

This might not be the standard use case, I don't know. But I had an SQL query I was struggling with a few days ago that would have been fairly easy for an SQL expert to correct and I would have happily put up a $50-100 bounty for it, provided It was done in a few hours.

In any case, I love the service, and I will certainly test it out next time I get stuck on something!


Thanks for your thoughts. I see what you mean about the time limit- I imagine that use case (people needing solutions quickly) will be quite common, so I'll look for a way to address it. My concern with adding time limits was that a shorter one might not increase answering speed (but it does seem that it would in most cases).


Agreed - I've wished for just such a service in the past and can totally see myself trying this out. I see it as a means to an end when you're punching above your weight, programmatically speaking.

I think a higher minimum with a 50% charitable guarantee might work better. $20 is probably enough to keep quality high (on the supply side) and definitely enough to attract skilled coders.


Definitely have a minimum price set. $10 would probably be worthwhile, maybe even $20 as a minimum. I'm not going to waste my time for $1. $10 is pretty iffy also.

Also like others said, I don't care about seeing expired bounties.


Is it just me or is a bounty just more likely to deter people from trying to give a worthwhile response?

I can see it turning to the point where the answers will degrade in quality as more and more people join the site in an attempt to make money. (Similar to Yahoo answers.)

Compare to Stack Overflow, where people are answering questions and solving problems for arbitrary points. (Mainly to help their fellow man.)


I love this idea. However, it would be helpful to get some RSS/Atom feed to follow bounties.


This is really neat, reminds me of Philip Rosedale's project, Work List, but with a lower barrier to entry. https://www.worklist.net/worklist/welcome.php


If you are in Slovenia (EU), how come you can use Stripe? Honest question, I'm in Germany.


I'm the founder and I'm in the US (the founder of Carmivore mentioned they were from Slovenia).


Ideal for school programming assignments?


wow some people are cheap


I see people are already paying out for their homework[1]

https://bountify.co/8


Actually, that's me (the founder), seeding the site with some bounties. I don't want the site to get a bad reputation as a cheating hub, so I'll be closing questions that are excessively homework-like. https://bountify.co/8 and similar bounties were inspired by Project Euler.


I will not try any new web app which uses default bootstrap themes.

I think that today, it communicates that you don't have too much appreciation for the final user experience, just want to test a concept.


It is probably because of one of the following reasons:

- The team is primarily technical with no design experience

- Followers of "Release Early and Iterate"

- Minimalism in design to focus on content

It is unfair to judge a book by its cover. Twitter bootstrap is godsend for many to create a website or webapp.


Can you quantify what is wrong with the final user experience? Hating on default bootstrap themes seems to be little more than snobbery.


And? What's wrong with your latter point? If anything, you should be more inclined to try a new web app that fits this bill. It means the developer is spending more time on getting the basic MVP up and running and isn't putting precious early-stage resources into pure aesthetics.

Try it out, see if you like it. Bootstrap is good enough - it's clean and straightforward - a totally reasonable "default" for the web. It says to me that the developer is savvy enough to know that Bootstrap exists, is perfectly fine for a V1 product, and that if we the users show the idea is good, they'll have plenty of money to put into a super-original design later on.


I think the issue with the UI can be traced down to his/her choice of using the default hero-unit on top, and the colors of the buttons. Change the color of the hero-unit so that the grey is not so obvious. Also, change the colors of the buttons from the default bootstrap blue to the lighter blue used in the nav bar on top or some other color that matches. The color of the primary button is just ugly.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: