hacker news with inline top comments    .. more ..    27 Aug 2011 Ask
home   ask   best   8 years ago   
Ask HN: What's your favorite UI Mockup tool?
5 points by knarf55  41 minutes ago   3 comments top 3
abbasmehdi 0 minutes ago 0 replies      
pwg 4 minutes ago 0 replies      
Paper first, a Tcl/Tk mockup second.
graiz 26 minutes ago 0 replies      
A piece of paper.
iPhone vs Android app sales: numbers from an indie developer
254 points by bignoggins  23 hours ago   84 comments top 27
dpcan 22 hours ago 1 reply      
I agree, the bloodbath of "Payment Declined" orders in our order inbox is downright infuriating. This is especially painful when customers email us saying that they purchase apps all the time on Android and their card didn't work only when they tried to order our games.

Agreed, this problem needs to be solved.

avgarrison 22 hours ago 5 replies      
It may be worthwhile for me to chime in here with my own stats, which are far less impressive than bignoggins. I recently ported my iOS app, BridgeBasher, to Android. I took a different route though. Since I had no users on Android, I thought the best thing to do would be to create an ad-based version on Android, mostly because I've heard a lot of people say that Android users are less likely to pay for apps. I decided on using Mobclix for advertising, and here are my stats:

Date - Android / iOS

 8/7/2011 - $2.16 / $142.00

 8/8/2011 - $1.68 / $97.00

 8/9/2011 - $1.15 / $84.00

 8/10/2011 - $1.82 / $76.00

 8/11/2011 - $0.98 / $78.00

 8/12/2011 - $0.57 / $103.00

 8/13/2011 - $0.59 / $88.00

 8/14/2011 - $0.72 / $102.00

 8/15/2011 - $0.43 / $74.00

 8/16/2011 - $0.44 / $75.00

 8/17/2011 - $0.18 / $88.00

Total - $10.54 / $1,007.00

This is obviously comparing apples to oranges, since the iOS version is paid ($0.99) and the Android version is ad revenue only, however given bignoggins success with a paid app on Android, I'm thinking I have made a mistake going the free route on Android.

Pewpewarrows 23 hours ago 0 replies      
Glad to see actual numbers rather than the usual circle-jerk of "only iOS makes money".
edawerd 20 hours ago 2 replies      
Regarding #3, I wrote a script that automatically emails the 20% of customers who get their orders declined, asking them to purchase the app directly through me using PayPal. A surprising number of them do. It's not a perfect solution, but at least it recovers some lost revenue. You can have this feature available for your app through http://www.AndroidLicenser.com
hello_moto 1 hour ago 0 replies      
Do you have any automation test? How's the testing and build infrastructure in both Android and iPhone/iPad?

Would love to be able to automate the build/test/deploy using some sort of continuous integration or something.

utnick 22 hours ago 1 reply      
Interesting, what kind of marketing are you doing for the app? How are people hearing about it, just market searches?

1000+ downloads of a 2.99 app in the first couple weeks is pretty impressive, well done

zmmmmm 19 hours ago 1 reply      
Thanks for helping to dispel this myth that has somehow developed that Android users "don't buy apps". I don't know how this idea got so entrenched. You can definitely make an argument that they buy somewhat less, but it's completely misleading to say they never buy any, which is what you will see commonly stated around the net.
baconner 22 hours ago 2 replies      
Another android dev with (much) lower volume here. Curious how you know about errors driving that 20% number. Is there a report somewhere with this detail or is it just inferred from customer emails? The only failures I ever see come through are declined credit cards or the regular cancellations from users who used the 15min refund window.
seancron 23 hours ago 1 reply      
Any reason you didn't include iPad sales? There are also Android tablets, so unless none of your sales are for Honeycomb users it might not be a fair comparison.

I'd also be interested in seeing how it changes when you take into account ad revenue and in-app purchases. Do the numbers stay as close when you add them, or does one platform take the lead?

rudiger 21 hours ago 1 reply      
Just want to say thanks. I bought the $2.99 iPhone app, and the ease of managing my team has definitely made me a few hundred dollars from bets with our pool over the season.
alohahacker 4 hours ago 1 reply      
you said you are ranking 250ish on android right now.

what is the best way to find your ranking on android? is their a website or tool or did you just go on the market and scroll down and counted till you saw your app?

awesome numbers btw! thanks!!

kjbake01 50 minutes ago 0 replies      
as an iPhone to Android refugee, I'd add that android users are driven more by function rather than magic, and that probably affects the value they place on apps.
avgarrison 22 hours ago 0 replies      
Thanks for posting your figures! What did you do to advertise the new app on Android? I have recently ported one of my games from iOS to Android and even though it is free on Android, it is really having trouble getting traction, and this is even after sending an e-mail to 40k people and several hundred dollars in Admob advertising.

Edit: Ah, nevermind, I see you already answered this in your reply to utnick.

g-garron 5 hours ago 1 reply      
For 75%, it well worth the effort of porting the app, instead of creating a new one for the iPhone.
stevenwei 23 hours ago 0 replies      
Thanks for the raw data. We've been considering doing an Android port but were not sure whether the resulting revenue would make it worthwhile. I'm glad to see that the Android paid app market is picking up steam.
g-garron 5 hours ago 0 replies      
Thanks for this post man, It helped me a lot with this
http://news.ycombinator.com/item?id=2931430 question.
switchrodeo720 23 hours ago 3 replies      
It doesn't look like this is a fair comparison. If you ported your app from IOS to Android, then presumably the IOS version has had the opportunity to gain popularity already, which the Android version has not. I'm not a mobile app dev, but I assume that it takes some time before an app can gain popularity and hit it's sales peak.

It may make more sense to compare the first two weeks of IOS sales to the first two weeks of Android sales, even though they'll be different dates. Or, maybe that is what you're comparing and I just missed something.

jwatte 12 hours ago 1 reply      
Taking credit cards is hard. You get random declines from merchant banks all the time. I bet the app store simply doesn't tell you about it.
Not a single decline in 15 months? Hardly likely. 20% of all attempted virtual purchases bouncing sounds not unreasonable if you compare to other markets (pc, game credits, etc)
dageshi 22 hours ago 1 reply      
Very useful, thank you, could you keep us updated perhaps? It would be interesting to see how this matures as your app becomes more established in the android marketplace (or if this makes any difference at all).
sounalath 20 hours ago 1 reply      
just curious, what is the magic formula for high iOS downloads whether paid or free? good graphics? games? how do you go from zero downloads to many with new apps?
caseorganic 22 hours ago 0 replies      
Thanks so much for this.

This is helpful information and something I always wanted to see side-by-side. It's also very nice to see that it seems like in some cases it is worth making an Android port, but that you, even as a Java/.NET developer by profession find it more difficult to create a quality app on Android.

iaskwhy 23 hours ago 1 reply      
Thanks for the details. Feel like sharing numbers for the iPad too? Please?
jtellier 15 hours ago 1 reply      
I have actually found my Phone 7 has 4x my android, blackberry, WebOS, and iOS app sales combined.... Probably because the market isn't flooded yet. Android was my lowest, iOS next, then Blackberry, followed by webOS. If you can hit markets people do not yet find viable, that may very well be your key to success.
mrpither 22 hours ago 1 reply      
Any plans to add winphone7 version now that it's mango time??
usagi7 23 hours ago 0 replies      
Pretty awesome stats. Great job, man! Good insight.
haydenevans 19 hours ago 1 reply      
Simple yet biased answer: Android owners want free apps, iOS users are more willing to pay.
marquis 22 hours ago 3 replies      
There are huge issues buying content on iTunes. Apple doesn't fix it or tell you, or help you get in touch with the developer to work around it.
Show HN: Eight - A social magic 8 ball
4 points by safetyscissors  2 hours ago   2 comments top
amccloud 1 hour ago 1 reply      
Cool idea. The font is kinda hard to read though.

I think "voting" should be open to anonymous users. The public's consensus is the value you are offering. Without volume there is no value. Attracting that volume is key, meaning low barrier to entry is necessary.

Ask HN: Suggest the best books on software architecture
3 points by g123g  3 hours ago   1 comment top
mfalcon 3 hours ago 0 replies      
The Architecture of Open Source Applications: http://www.aosabook.org/en/index.html
If Software Is Eating The World, Why Don't Coders Get Any Respect?
541 points by throwaway37  3 days ago   257 comments top 75
Spyro7 3 days ago  replies      
This is a fantastic post. It is well written, and I agree with many of the authors points. Far from being angry, I think that the majority of people reading here on HN actually appreciate this type of critical analysis, and I think that it is a shame that it had to be posted on a throwaway account. However, I would like to present some alternative viewpoints for a few of the issues brought up in this post.

"As a doctor, however, someone like this - a top professional at the peak of their career - would probably make about $400,000. Partners at big law firms commonly net a million a year. Investment bankers are making several million (post-crash!). Top management consultants easily clear $500,000. Even a top accountant - probably a partner at a big 4 firm - would make two, three, or four times as much."

Hold on a second. What is the point that you are trying to make in this post. You say that you are talking about comparing computer programmers as compared to other highly skilled professionals, but then you narrow your focus to the highest percentile in each category. How many lawyers are partners in a big law firm out of the total number of lawyers? How many of these top management consultants clear $500,000?

The top performers in every industry will always make a salary that is amazingly higher than the median. However, unless you know the exact distributions of the salaries in each industry you can not meaningfully compare top performers. What good is it to know that a certain lawyer makes a million dollars a year without knowing how probable that outcome is relative to some more dreary alternatives.

When I started reading your post, I started reading it with the expectation that you were talking about the general market for programmers. Then about halfway through, it seemed to me that you had switched to talking about the very highest performers in the highly skilled labor market. Well, if that is what we are going to be talking about, then we should focus on it.

Look, the highest performers in the computer programming field are no longer called computer programmers. They are called CEOs and there is a high likelihood that they are very, very well compensated relative to the best performers in many other industries. However, as I said earlier, it is pointless to throw around anecdotes about how this 99.999th percentile individual made millions or this one made billions.

So, let's get back down to earth, and try to find some passably good numbers (not perfect, but better than nothing) to use as comparison points. Let's look at some numbers that may be more relevant with what someone around the 50th percentile would experience. All of the following links display ranges for salaries in each field. No, they are not the best samples available, but they are better than going without any data whatsoever.

Note: As stated on the site - all compensation data shown are gross, national from the 10th to 90th percentile ranges.

Physicians: http://www.payscale.com/research/US/People_with_Jobs_as_Phys...

Note: Physicians must have several years of residency as well as an M.D, so a programmer would already have 5 to 9 years of experience compared to a physician that is just beginning.

Lawyers: http://www.payscale.com/research/US/Job=Attorney_%2f_Lawyer/...

Lawyers in the states typically need a J.D. before they can actually begin being a lawyer, and law school is very expensive. I should also note, that the gravy train is slowing down dramatically for lawyers - http://www.economist.com/node/18651114

Software Engineers: http://www.payscale.com/research/US/Job=Software_Engineer_%2...

Sr. Software Engineers: http://www.payscale.com/research/US/Job=Sr._Software_Enginee...

Sr. Business Analyst: http://www.payscale.com/research/US/Job=Sr._Business_Analyst...

System Admins: http://www.payscale.com/research/US/Job=System_Administrator...

Computer Programmers: http://www.payscale.com/research/US/Job=Computer_Programmer/...

Management Consultants: http://www.payscale.com/research/US/Job=Management_Consultan...

Investment Banking: http://www.payscale.com/research/US/Job=Associate_-_Investme...

Accountants: http://www.payscale.com/research/US/Job=Accountant/Salary/by...

Sr. Accountant (numbers look a little screwy here): http://www.payscale.com/research/US/Job=Senior_Accountant/Sa...

Looking at those numbers, it does not seem to me that there is anything particularly wrong with computer programming as compared to other highly skilled professions. As a matter of fact, given that one can become a programmer without needing additional certification, it seems to me, at least, that computer programming is a great field to be in.

"What \"programmers can get rich in startups\" really means is \"entrepreneurs can get rich in startups\", whether they're programmers or bricklayers."

What is the percentage of bricklayers that get rich creating a startup? I don't have the number offhand, but I do know that there is no "Silicon Valley equivalent" for bricklayers. If there was really that vibrant of a bricklayer startup industry, then, due to agglomeration, you would expect there to be at least a few geographical areas where there was a high concentration of bricklaying startup business being conducted (think something like Wall Street).

"I think it isn't. I think the country would be better off if MIT computer science students, like their neighbors at Harvard Law School, could dream of growing up to be President. And I think we'd all be better of if computer science wasn't just seen as a major for socially awkward nerds."

I agree completely, and, actually, I agree with many of your other points as well. That's the thing though, when you are talking about programmer respect it seemed as though confused several different "types" of respect - compensation, entrepreneurship, political pull. With regards to the first type of respect (compensation), I disagree with you because the data for compensation suggests that an alternative hypothesis may be true. With regards to the second type (entrepreneurship), I cannot definitively definitively say either way but neither can you because the data needed to compare the numbers of successful entrepreneurs in different industries does not seem to be readily available.

With regards to the third type (political pull), I agree with you, but I think that perhaps their are deeper things. I have some hypothesis:

1. Perhaps the skills that it takes to do well in politics in the U.S. are somewhat orthogonal to the skills that it takes to build a multi-million dollar software firm from nothing and run it? How could an engineer win an election where the campaigning generally consists of 5 second soundbites and smear campaigns?

2. Maybe the problem is the general youth of the industry. The software industry is in its infancy. Maybe, over time, as it grows deeper roots, it will acquire more political power and influence? This is a fairly likely hypothesis.

Finally, I would like to address one last point:

"When the government wants to bring in more workers from overseas - which obviously lowers salaries, and reduces job security - who do they bring in?"

The problem is actually not so obvious:

* Are the programmers entering the country working in the same exact fields and at the same levels of expertise as the programmers that are local? If this is not the case, then the impact on pre-existing salaries would be negligible.

* Are the programmers entering the country located in similar geographical areas to the programmers that are local? If this is not the case, then, again, you are not likely to see much of an impact.

* Do the programmers entering the country require additional training as compared to local programmers? If this is the case, then they would have lower compensation not because they are willing to work for less but because they are being compensated in the form of additional training.

* Is the industry rapidly growing? If this is the case, then it may be conceivable that existing programmers and programmers entering the country would both benefit as the growing industry has room for them both.

* Of course, one can always increase pay through artificial scarcity, but the problem with doing this is that it ends up costing society by resulting in a deadweight loss - consumer and producer benefits that are never obtained due to artificially high market prices.

* There are quite a few other things, but this post is now more than long enough, and I really need to get back to work.

wheels 3 days ago  replies      
There are a lot of very fundamental misunderstandings of economics and labor structures in here. But I'll start with the general objection that you'll run into:

The core of your argument is entitled whining.

Computer programmers can make truckloads of money the same way that everyone else can: by seeking it. If your professional goals are aligned with making money, then your chances of making a lot of money go way up. Top lawyers aren't paid the most because they know the law the best; that's ancillary. They're paid big bucks because they win money for their clients, prevent their clients from losing money and build networks to people that have money to give them. Likewise, programmers who define their goals economically (which broadly includes creating value for users) have nearly unparalleled earning potential.

8 of the 20 richest people in America are (or have been, at least nominally) programmers.

The crux of things is that you don't get rich for being a skilled technician -- and I use that word broadly. Lawyers don't get rich for knowing the law, bankers don't get rich for understanding economics and programmers don't get rich for slinging code. You get rich by creating value (or at least tying yourself at an opportune moment to a benefactor whose goals are so aligned).

The rest of folks are compensated at prevailing market rates for their technical skills -- and incidentally, American programmers are paid better than in almost any other country.

But claiming that "computer programmers don't get respect" is broken on so many levels. First, computer programmers are certainly among the most respected trades. You need to interact with a broader cross-section of society if you believe that not to be the case. Second, the baseline for becoming a programmer isn't very high -- certainly nothing on the order of becoming a doctor or lawyer. The median programmer has jumped over far fewer hurdles than the median doctor or lawyer. (I got my first programming job at 17. I'd have needed another decade of non-trivial training before I'd have been able to get a job as a doctor.) The spectrum is far broader for programmers, and as such, the respect a programmer commands has more to do with their actual status within those ranks than simply being a part of that trade. But again, the spectrum extends up to "richest person in the world", so we're hardly being shafted.

If being respected among the elite is something that you want, align your goals with that. If it's not, enjoy the fact that you're in a trade where even untrained, mediocre practitioners reach the top 10% of American incomes.

patio11 3 days ago 3 replies      
There are many people who sling code who make as much as a doctor or partner at a law firm. More than a few people on HN fit that description, actually.

A partner at a law firm is a businessman first and an individual producer of lawyering second. He has people to do that for him. Many - but not all - ways to do extraordinarily well as a programmer involve becoming a businessman first and a code slinger forty-second. There are many people on HN who run consultancies. If you're unaware how the numbers shake out, ask them what percentage of the money they get came in from billable hours programming and what percentage came from e.g. the delta between what they charge for consultants and what they pay them, or the line-item fees which have no associated hours.

I keep giving this advice: stop calling yourself a programmer. You're right, it is anomalously highly paid and low status. So call yourself something else. If you sling code and make businesses serious money and are sophisticated about extracting that value, you will be quite highly paid indeed.

With regards to social status: most white collar laborers don't really have it. You could be a payroll clerk, so count your blessings. If you want it, either a) find a peer group where you have it or b) use code slinging to achieve something society values. You know how teachers have status? Try the line "I helped X million kids learn to read last year" out some time. (Helpful if it is true, obviously.). Or you can just wait until society moves in the direction of Programming is Sexy. (Not as far fetched as you might think. My girlfriend and her circle of friends loved Social Network. If I had reputational stock I'd be IPOing right now.)

mechanical_fish 3 days ago 1 reply      
Quite a few good replies in this thread already. Let me just add a couple points:

Engineering, done right, is an invisible art. Doctoring and lawyering done right are intensely personal activities, service businesses with one-on-one human attention. Good engineers fade into the background. Engineers make objects and the objects speak for themselves. You probably can't name the engineer who recorded and mixed the sound on your favorite new record. You almost certainly can't name the engineers who designed all your local bridges and rail systems. We don't even know how many people designed, say, the smart cover for the iPad 2. All of this is by design.

Engineers also rip and mix and burn and create things that are the sum total of a lot of individual efforts. I don't even know if I'm the engineer responsible for the test software that tested the wafer that spawned the chip that went into your cell phone that filters the RF frequencies in your cellular radio. There are very good odds that I am: I wrote such software, and last I heard it was still running and my old company is still selling chips. Again, this is how proper engineering works. Many of the best people you'll ever meet work outside the spotlight, quietly making their corner of the system better.

Engineering is a worldbuilding activity. The objects become famous, not us, but even the objects' fame is fleeting. The marvel of one age is the boring infrastructure of the next. But, hey, at least you get to change the world. Fame isn't everything.

nirvana 3 days ago 3 replies      
I think you make several excellent points, and I unexpectedly found myself agreeing with you. I thought $150k was a lot of money, but had never stopped to think about the fact that the other alumni of my school who became doctors are making far more.

I think the reason we're seeing this is that programming has been commoditized quite successfully by an industry that saw they needed programmers but that did not know how to judge the quality of a programmer. Doctors certainly vary greatly in quality, but doctors are unionized after a fashion by the AMA, and they have managed to put into place artificial supply controls (regulation and licensure) that keep incomes higher.

The software development industry has gone the other way- instead of limiting the number of programmers (not necessarily a good thing, but it would boost incomes) we've developed quite a bit of process to try and make programmers interchangeable. I'm talking about much of the "best practice" and even the entire attitude that programmers should not be "lone guns" but part of a homogenous collective of coders. Everything from pair programming to test driven development to code reviews serves the process of making programmers homogenous and interchangeable, and thus more easily replaceable.

I also think that the Legal and Medical and Finance professions have developed for centuries in an environment where they were able to artificially limit the number of practitioners, and artificially boost the "Establishment credibility" that they received. I don't think most politicians are lawyers because lawyers are good leaders, but because lawyers were able to establish that career path as one of their own.

Software development, in contrast, is much newer, and currently is much closer to a free market.

bignoggins 3 days ago 4 replies      
I think one of the reasons programmers are not paid as much is that by and large, we are seen as interchangeable cogs. There are definitely exceptions, but I think the companies that think this way are large enough to set the market rate. For example, I used to work for a large defense company that probably had more software engineers than every startup in the world combined (we hired 10% of all CS graduates in the country every year). The prevailing attitude was to pay as little as they could get away with because there is always some new naive college CS grad to replace those who left.
makecheck 3 days ago 1 reply      
As a programmer I'll comment on why I wouldn't fit into some of the molds you've suggested that programmers might join. (Personal opinion, of course.)

1. As a general rule, I am very unwilling to put up with crap...life is too short. I also want to be productive with the energy I put into something. If you are hired in a technical job, you can reasonably expect to be around competence (and if you're not, you leave). The biggest reason I would never see myself joining Congress, or upper management at some companies, and similar jobs, is this: I can already see who my co-workers would be, and they're horrible people. I've seen what a lot of these clowns are capable of, and you couldn't pay me enough to be the only smart man in the room. It would be day after day of banging my head against the wall and wasting my breath.

I believe that the only way you'll ever see engineers enter these kinds of jobs is if you can simultaneously replace a huge percentage of an organization with new people: the kind of people that engineers can believe in and work effectively with. It has to be appealing from the outside, and right now it just isn't.

2. I enjoy most work. As long as I'm making cool stuff and I can be proud of what I produce, I'm pretty happy. I am more stressed about things that have technical consequences (e.g. somebody pushing for a change that I know will be a long-term negative), than I am about salary.

In other words, if it wasn't so easy to find enjoyable work doing actual programming and the "important" jobs weren't so maddeningly filled with annoying individuals, you probably would see engineers doing other things.

onan_barbarian 3 days ago 0 replies      
This is a startling array of claims, which is unfortunate, as there's a reasonable debate to be had here.

Unfortunately, I think starting off with a tl;dr rant, including such howlers as comparing the growth rate of a developing and a developed country isn't the way to get going, not to mention citing Microsoft's current leadership as evidence that programmers can't get anywhere. Erm, I vaguely recall someone else running Microsoft on its way to success... Bill someone?

As an aside, given the vast amount of political crackpottery - plenty of which is in evidence here at HN - among programmers, I have to say that I'm not hugely saddened that congress isn't stuffed with developers.

There's a serious debate to be had here, but not with this wild, ranting start from a throwaway account.

kemiller 3 days ago 0 replies      
I don't see this mentioned anywhere, but one very important difference between programmers and the other professions is that doctors and lawyers have not only a high bar to entry, but a legal monopoly. There is outsourcing of legal review and radiology, but still not on the scale of programming. There's also the matter that doctors save lives, and lawyers either bring justice to the aggrieved, or keep you out of jail. OK, most of them actually don't do those things, but those are the images we have in our minds, and that's part of what makes them respectable.

If we professionalized and forced anyone calling themselves a programmer to meet a very high bar of competence, things would look pretty different. The median salary would be higher. My guess is that we wouldn't see anything like the dynamism of the startup community. Think of how slow-moving and conservative both medicine and the law are compared to programming. You could argue that that's not a bad thing, but it would certainly be very different.

I would love to see the top programmers get respect for doing what they do, instead of having to become marketers, but I'm just not sure it's how the world works. To make money, you have to convince someone else to give it to you. Most people working in a job only make it linearly because they only have a relationship with one customer. Many more fortunes are made by figuring out how to serve MANY customers than are made by finding a single customer with very deep pockets who needs you badly.

wladimir 3 days ago 0 replies      
"Are programmers top government advisors? Are they national heroes? Do doctors and lawyers and policemen tell their children that, if they work hard and practice, one day they can grow up to be a programmer? No. Obviously not."

No. Because a majority of people don't like software, programmers and automation. They don't see programmers as an example because they don't want it to be this way.

1) They are perceived as eating their jobs. You can explain increased productivity all day, but someone out of a job due to a computer program curses you.

2) It is hard to understand for laymen what they actually do. A doctor's jargon is also hard to understand, but at least solves problems visible to most.

A lot of people are borderline-luddites, others are more compromising and like applied technology as long as it serves them. But very few, I think only scientists and programmers (and the people that get rich from them) actually like where the world is going.

Not that it is possible to stop the software eating the world... It could be that the problem will solve itself, eventually, because the more of the world is 'eaten' by computers and software, the more powerful the people controlling them will be.

kenver 3 days ago 2 replies      
My girlfriend's a finance lawyer for a really big firm, she earns about 50% more than me and I image that in a couple of years will probably earn even more.

To get this she is required to work any weekend clients need her to (even if it means cancelling a planned holiday), any evening they need her to (pretty much all of them) and she has to read boring stuff constantly.

I on the other hand finish work after my 40 hours and go home. If I want to get some extra work I'll ask a couple of contacts if anything is going and go to the cafe with a couple of beers and have some coding fun.

I don't accept that we earn a lot less than other professionals. My pay/hours is certainly comparable to any other professional in the area I work, and I love doing what I do. If I ever earn $500,000 I'm pretty sure the hours I put in will be astronomical, and if that happens I'll probably die before I get to spend the money anyway.

BrandonM 3 days ago 0 replies      
It's really hard to get rich in the world by following an easy path. All things considered (prerequisite education, initial debt, work hours, desirability of everyday work), the average cog-like computer programmer is somewhere close to the top.

If you want to make money, stop whining and go make it. Negotiate a better salary with your company. Find someone with a problem and solve it. Realize an inefficiency in the world and fix it. The people who make money and love life don't do it by lobbying.

Here's a secret: you don't have to have any education to make good money. My stepmother started breeding German Shepherds when I was a child. She now sells them for $2000+ each, for family pets (http://minternsgermanshepherds.com if you're interested). She didn't even finish high school. She now pays a couple teenagers to help with the laborious task of caring for dozens of dogs.

My brother turned down a pharmacy scholarship to join the Marines. By the time he finished his five year tour-of-duty, he had established himself in the field of performance diesel trucks. He's helping people make 7,200-pound trucks do 10-second quarter miles (think Fast and the Furious). He runs his own garage (http://dieseladdiction.com if you're interested). He gets there at 6 AM and doesn't leave until 5 PM or later. He's booking people a month out because his schedule is so full, and he just keeps raising his rates. He now has two guys working for him and will be looking to hire another soon.

By and large, the people who make lots of money do it by working really hard. They develop their expertise to a point where there are perhaps one or two competitors even close to their level. The product they provide is something that people want and are willing to pay money for. They grow their business beyond themselves and enable others to make a living, too.

I don't want to work that hard. I'm happy to be able to use my expertise to improve my stepmom's or my brother's business operations. I can build them websites, automate some of their clerical tasks, and otherwise support what they do. But I don't lose sight of the fact that they are the ones creating the value in the first place. They put in the hard work to make the lives of thousands of people better in some small way, and I just grease the gears.

People want great pets. People want fast trucks. People don't want computer programs, they want better lives. When programmers actually align themselves with something people want, they do just fine.

If we want to be able to clock in at 10 or 11 and leave by 6 or 7, to enjoy what we do, to avoid taking full ownership of the product, to be generally stress-free, to not take some fucking initiative, then no, sorry to tell you, we're not going to do better than a well-above-average salary. You don't get rich by being lazy.

olalonde 3 days ago 0 replies      
I think it all boils down to the fact there's no such thing as free market capitalism in America. All those well respected jobs you mentioned have special privileges provided by the government. Banking, finance, law, accounting and healthcare are heavily regulated industries. They don't have to compete with third world countries nor with Americans without the proper certifications.

Call me a libertarian, but I truly believe there lies the problem.

alsoathrowaway 3 days ago 5 replies      
I think you're misrepresenting a few things, so I'll take a stab at it:

1. Senior software engineers at Google in Mountain View make over $200k all told.

2. Senior software engineer is in the middle of the Google ladder. The bulk of engineers at Google are senior level, so it's not special. The very best engineers make more.

3. You are vastly overstating the salary and difficulty of other fields.

3a. Doctor - You have to go through medical school and residency. Medical school incurs a ton of debt and residency pays shit. The average salary for a doctor in Silicon Valley is $200k.

3b. Investment banking and management consulting - first of all, in these fields, a few people make a ton of money, but most don't make nearly as much. Both of these fields are known for their horrendous hours. I'd rather work 40 hours at $200k than 80 hours at $500k.

4. There are also big winners in the programmer world. People who went to good startups early (Facebook, Google).

5. Many programmers _enjoy_ their work. How many can say the same about investment banking, lawyering, or management consulting?

wyclif 3 days ago 1 reply      
I'm partial to some of this, but since others here have covered other problems with your argument, I'll limit myself to one of your points that hasn't been dealt with. You say:

Is it good for the country that Silicon Valley, arguably the best-performing sector of the economy, has next to no influence in politics

Next to no influence in politics? Seriously? All the major software companies (GOOG, MSFT, APPL) spend enormous sums of money on lobbyists to influence the passing of favourable laws in Washington:

[Google] now has 12 lobbyists and lobbying-related professionals on staff here -- more than double the size of the standard corporate lobbying office -- and is continuing to add people.

Its in-house talent includes such veteran government insiders as communications director Robert Boorstin, a speechwriter and foreign policy adviser in the Clinton White House, and Jamie Brown, a White House lobbyist under President Bush.

Google has also hired some heavyweight outside help to lobby, including the Podesta Group, led by Democrat Anthony T. Podesta, and the law firm King & Spalding, led by former Republican senators Daniel R. Coats (Ind.) and Connie Mack (Fla.). To help steer through regulatory approvals in its proposed acquisition of DoubleClick, an online advertising company, Google recently retained the law firm Brownstein Hyatt Farber Schreck.


PostOnce 3 days ago 0 replies      
Some of the mentioned professions, law, accounting, medicine, legally require a degree, a minimum number of years invested in school, continuing education, and a license. Then there are malpractice suits, longer work hours, doctors being on-call, etc. If you fuck up as a doctor, someone dies. If you fuck up as a programmer, you might cost someone some money. Usually nothing happens, you just fix it.

Computer programming is one of the very, very few fields where you can make a lot of money doing very little work without having even a GED.

Plenty of programmers make 80-100k/yr, and a great number of lawyers make less than that. How many state-level attorneys make <70K? You'd be surprised.

In summary, programmers have other advantages than pay, and still get paid rather well considering the low barrier to entry in that profession. My work situation is pretty plum, and I don't exactly have a formidable resume. I'm grateful. If I were aiming to be a doctor, lawyer, or accountant, I'd still be in school. And in the long term, I'll end up making more than if I pursued one of those paths, I'd wager.

shawnjan8 3 days ago 3 replies      
Dare I say it... but could part of the problem be a complete lack of unions? Not to suggest every programmer who wants a job needs to join a union, but AFAIK there are very little programming jobs which are part of a union. Here are some thoughts.

The reason hockey players have agents is because the hockey players focus on playing hockey, while the agent focuses on understanding how much value the player brings to the team, and tries to extract at the margin the price a team is willing to play. Likewise with unions, they have negotiators who understand the value that these employees bring, and try to extract how much the company is willing to pay these employees at the margin to still turn acceptable profits.

Programmers do not seem to have this - many program because they enjoy it, and companies take advantage of this fact. I believe many doctors are part of organized unions, as well as other engineering professions. I do not suggest that startups should have unions, but maybe unions should be introduced into companies which employ a large number of software engineers, that way they can worry about coding, and the union can worry about salaries being fair. Thoughts?

pradocchia 3 days ago 0 replies      
Barriers to entry in programming are still low, and programming itself is still fiercely creative and competitive. Just look at all the languages, frameworks and platforms.

By comparison, law and medicine have long since circled the wagons. It used to be that to be a lawyer, you only needed to pass the bar in your state of practice. Sure, many aspiring lawyers did attend law school, but the profession was not hermetically sealed. Today, you have to pass the bar and have graduated from an accredited law school, at tremendous cost. Same story w/ medicine.

So these $400K salaries do not translate to $400K in value produced. Maybe $100K, maybe $200K, but the remainder is rent-seeking. Meanwhile, your modest salary of $75-150K if anything undervalues your product. And this is good! You have a produced a surplus. You are the engine of progress. Yes the rentiers will take their cut, but the rest returns to society and benefits society.

baltcode 3 days ago 1 reply      
One of the big reasons that lawyers and doctors make a lot more money is because they use regulation and the coercive power of the state for the benefit of their cartel. You are going to get a top of the line lawyer and pay through the nose because your business, freedom, even your life may depend on it. The number of lawyers and doctors is limited to an artificial shortage due to bar exams and number of residency spots. Non-US bar exams and residencies, no matter how qualified, are not recognized. That means a top neurosurgeon from the most prestigious hospital in any country can not practice in the US unless he spends 6+ years in a US residency program.

Now, does that mean that programmers should clamor for more regulation in their trade? Of course not! for one, that would mean that the current lead of the US in the tech industry would be replaced by over-priced, substandard products and harm the culture of innovation and freedom. Instead, if many of these regulations in other areas were brought down, young programmers making 60k won't have to pay exhorbitant sums for simple things like getting a root canal or registering a business or fighting off patent harassment.

mnutt 3 days ago 1 reply      
One of the many differences between programming and medicine, law, etc is that entry into the latter fields is tightly controlled by governing bodies. Anybody can read a programming book and start working, but only so many law students graduate each year. So in that sense it's not that programmers' salaries are artificially low, it's that those other professions pay artificially well.
gcv 3 days ago 0 replies      
(Lots of great comments in this thread, on all sides of the issue. Bravo, HN!)

One thing to keep in mind when comparing programming to law and medicine: a high-school dropout can be an adequate programmer and earn a good living writing Rails (between 65k and 90k at start, depending on location). Most other high-end white collar jobs require extensive education. A physician has to put himself through college, pre-med, medical school, residency, possibly a fellowship, and only then commands a high income. A 30-year old orthopedic surgery resident making 45k probably isn't thrilled that he has another five years of indentured servitude before he can claim a serious income and start paying off 250k of medical school debt. Law school is similar. Using an MBA to switch careers into finance is similar.

In essence, programming jobs can trade off relatively high income early on for an income which maxes out in the late 20s or early 30s. Law and medicine start with much higher requirements, take much longer to spin up, but have much better-defined career paths leading to higher income.

Entry-level Wall Street jobs (I mean real Wall Street jobs, not IT) work a little differently, in that they do offer excellent income up front and a lucrative career path, but require a degree and high GPA from a top school to get in. So they aren't really representative of an opportunity which most people have.

webrakadabra 3 days ago 1 reply      
Respect and money are two different things. Armed forces command great respect and little money. Doctors command good respect and earn good money. But Lawyers command little respect but earn lots of money.

Doctors save lives, Soldiers defend lives, Lawyers win you lives, Teachers build lives. All of them impact lives, This is where respect comes from. And Software programmers ? They make software which at best speeds up, accurate up other primary professions. In that sense, Software programmer supports the other primary professions. I say software programming is a support profession.

And then money ? Money comes from the value provided by a profession to people's lives. As of today, Software makes our lives easier but does not add much of a value to life as other primary professions do. Software profession helps but not create/add value to life by itself.

Even for a support profession, It takes time to mature and join the big league of primary professions. Software programming is relative new entrant in league of professions. It can wait until the day it will impact lives in a way we have not known before rather than helping already known ways !

kayoone 3 days ago 0 replies      
Doctors, Lawyers etc usually work and bill by the hour. Be a top software consultant and you can make $200k-500k a year as "easy" as those other fields.
Of course its still not easy to make $500k a year, but it also isnt that easy for the other jobs you mentioned.
You need to be really good, have good clients with deep pockets who have lots of work for you and its probably easier to reach that kind of money than with other jobs.
alexro 3 days ago 1 reply      
Software is eating the world and we are part of that world, so software is eating us too!

But unlike lawyers, doctors and bankers we don't have artificial barriers make the industry protected.

alexro 3 days ago 0 replies      
Don't you think that the real reason for their prosperity is that doctors, lawyers and bankers create their wealth collectively and sometimes collaboratively robbing people?

They create work for themselves with some hardwared awareness of their needs.

One doctor doesn't do all the job on yourself, sometimes does a bad job on their subject matter and you get to spend thousands to have this fixed.

Lawyers set up laws that everyone needs to follow and you need other lawyers to help you with that.

I don't even start talking about bankers ...

When programmers become congressmen or create a closed industry like medical services then we can talk about wealth y developers.

billconan 3 days ago 2 replies      
agriculture is important, crucial and fundamental to human beings, while farmers don't usually get paid too much.

Maybe lawyers shouldn't get that much money. Sometimes, they just don't contribute to humankind. Look at the patent war.

Maybe programmers are underpaid, But I think someones else are overpaid.

jezclaremurugan 3 days ago 0 replies      
One reason salary is too low for programmers,
a normal engineering grad joining Infosys, TCS, Accenture, Cognizant etc. in India, is paid approx $10,000 and you guys compete with them for jobs.

PS: I am an Indian, working in one of those jobs.

hxa7241 3 days ago 0 replies      
There is a big confusion here between personal credit and objective physical properties.

Software is 'eating the world' because it is the most super-efficient building material ever invented.

You could say the wheel 'ate the world', but not because each person making each wheel is a genius, but because of the general physical properties and value of roundness. The overall benefit is not a matter of individual credit or respect, it is a matter of physics.

We should be paying the total programming workforce for the total (personal) effort required, not the absolute (objective) 'value' returned. The excess of value is gain: you do not need to pay anyone, it is a free gift from physical reality.

Now, whether programmers' pay compares 'fairly' with anyone else is still an open question, but the physical facts of software being great stuff does not (or should not) seem to justify one side or the other.

HaloZero 3 days ago 0 replies      
I think one issue that maybe takes into account is that all the professions mentioned that do have respect (except wall street bankers of course) are professions that directly interact with people.

Software Engineers on the other hand build a product, which faces the user, but you never really get to see the programmer or interact with him. Our impact on society is a second step from the software that we create.

kelleyk 3 days ago 2 replies      
There are a number of points I'd like to disagree with, but to start:

- $150,000 is much less than a top-flight engineer like the one you're describing might make; it's not out of the realm of possibility for what an engineer with a good pedigree might make his first year out of school, if he went to work for a big company.

- The engineer went to school for four/five/six years and then went to work. The doctor who earns $300-400k went through a four-year university degree, four years of medical school, and a residency or fellowship before he started earning money. Some specialists, like neurosurgeons, take at least 11 years after getting their undergraduate degree before they really "get their wings." Not only are their then-substantial salaries offset by the huge delay in getting those salaries (residents make, what, $35k?) but they also have to pay for things like malpractice insurance, which can be in the six-figure range.

nihilocrat 3 days ago 0 replies      
Because our main job skills do not revolve around self-promotion and manipulation of others.
bglbrg 3 days ago 0 replies      
Regarding governance - most ambitious politicians appear to be extroverts. I'm not an engineer but there are many in my family and they're not the most gregarious sort. Is this an inaccurate stereotype? I wonder if despite highly intelligent, moral attributes, our technologists, research scientists, etc. are not attracted to the intense social demands and / or rewards of politics. Are our smart, worthy introverts "opting out?" If so, it's a shame. But on the other hand, no-one will be coming by to tap you on the shoulder for such roles, even my neighborhood councilman has to hustle.
hessenwolf 3 days ago 0 replies      
To the business world, you work in IT. They don't understand the difference between the person who plugs in the monitor and the person who designs their perfectly modularised accounting software landscape.

It sucks, but there is a major education gap amongst non-techs about what computer people do.

grammaton 3 days ago 0 replies      
Programmers are janitors.

Everyone wants software, but no one really respects the developers. Just like everyone wants a clean building to work in, but no one really respects the janitor.

arethuza 3 days ago 0 replies      
"To be one of the highest-paid, most-wanted jobs. It isn't. Why not"

Because the barriers to entry are really low and there is a vast supply of people willing to have a go.

And, I have to say, compared to many fields most development isn't actually that difficult - I suspect a reasonably intelligent and motivated person could probably be trained to do 95% of all development jobs within a year or so.

SudarshanP 3 days ago 0 replies      
The lawyers/MBAs and doctors will be disrupted. This is already happening... Then they will be on the streets. all the low level jobs in Backoffice and law is getting outsourced. So if u r getting into law... u should actually be capable of creating value. Just look at all those industries that Apple Amazon etc are disrupting... No Newspaper also means the news paper does not need expensive lawyers, MBAs etc. Of course you could say Apple,Amazon,Google etc. will need the lawyers MBAs etc. But these few players need far less external help and glue coz they have captured most of the supply chain.

Imagine a device where u put a drop of blood/urine etc and out pops a diagnosis. Imagine a pharma company in a box which synthesizes a medicine on demand using basic raw materials. Then there are diagnostic solutions like IBMs Watson...

Education and healthcare will take much longer than Print/Retail/Music/Advertising/Communications to get disrupted... When these get disrupted, they will hurt more than they needed to coz of enjoying the protectionism.

There will always be demand for Good Doctors/Teachers/Programmers/Lawyers/MBAs... But those whose existence depends solely depends on protectionism or monopolies are going to see their jobs disrupted.

jmra 3 days ago 0 replies      
The world runs on electricity, education, petrol, food, construction, clothers... what is really happening and what Andreesen should be saying is that now software is totally mainstream, not a hobbie or a hackers thing. And as so, we are part of society. But, you know, most people work in important industries and yet doesn't have the respect they deserve. Think in food supply or water supply, when was the last time you found someone famous related to water suply, which who was awarded and so?
mattm 3 days ago 1 reply      
Anecdotal but I was recently contracting for a place that was developing web software for the first time. Even though I had pretty much wrote all the code on their system with them having hired and gone through 5 other programmers, the comment that caused me to leave was

"Why are we paying this guy when we could just hire someone from high school for $10/hr?"

brndnhy 3 days ago 1 reply      
Once the fruits of someone else's labor is a concern, you've lost.

Stay interested and keep working hard.

We're people who build things.

Our fortune is a natural one -- not money and not even respect.

It's that we are getting paid to learn new things every single day.

scottjad 3 days ago 0 replies      
> Given how important [education] is, then, you'd expect [teachers] ... to be one of the highest-paid, most-wanted jobs. It isn't. Why not?

The wages for teachers and programmers are set the same way as the price for any good, e.g. bananas.

Not by vague notions of importance, value, or respect, but by supply or demand.

When people start arguing that foo good (profession) with a low price (wage) is inherently more important than bar good, I think of a person arguing that bananas are more important than apples and should have a higher price, disregarding their supply and demand differences.

seri 3 days ago 0 replies      
The content of the orignal post may be questionable, but I feel it was written in a way that would trigger a heated debate. For that, mission accomplished. There has been many wise comments, but they all choose to take a branch of the post to dig into. Not to blame them, as the question raised here is basically:

    The software industry has huge impact on human lives 
but such impact has not been materialized in terms of
both cash and social status for its practicioners.
True or false?

And it boils down to too many things to talk about all at once. Maybe it would help to break them into sub-topics to make it easier to link the seemingly disconnected but insightful points posted here:

1. Are lawyers and investment bankers overpaid? If they are overpaid, one can't say software engineers are underpaid by comparing to them.

2. So the software industry impacts lives, but is it all positive? Maybe society isn't that much better off with all this digitalization. There is a chance that the total value of the industry is being inflated.

3. Are we concerned that the median and average salaries of software engineers are too low (a), or are we concerned that the elite programmers are not being paid as high as top attorneys (b)? We can solve (a) by raising barriers to entry, much like in other elite fields, but is that a good thing to do? As for (b), elite programmers are now called startup founders. If entrepreneurship is made easier in the software industry, then things seem fair.

4. Now speaking of social status, I think programmers aren't cool because nerds aren't cool, not because they are paid less. Pick a programmer and an accountant with the same salary, and the accountant is more likely to shine in social outings. But if the whole industry raises its average salary, then yes, the social status of being a coder will increase. We are back to the question raised in (3a).

5. About political power, I think this is more of a problem with motivation. To be motivated enough to run for office, you have to be hungry for fame and power. However, it's a good point that the government could benefit from having more top engineers. See a related post: http://lemire.me/blog/archives/2011/08/22/linux-and-the-fina...

6. Is China really on the right track?

nivertech 3 days ago 0 replies      
Software is just automation.
You need to know problem domain to get any respect.

Traders in Hedge Funds will always get more respects than quants.

Physicists and Electronics engineers in Semi industry will always get more respect than software engineers.

Sales guys will get more respect than programmers in companies like EMC or VMWare.


oldpond 3 days ago 0 replies      
Interesting post. I have to agree with you that there is something wrong with our line of business. I think part of the problem is that we are still feeling the affects of the "lights out operations" fad from the nineties. This was when "Big IT" convinced all the companies to automate an outsource. That's when we first became a liability to our companies instead of an asset. Since then there's been a couple of distractions in the IT industry (Y2K, dot.com bubble, and the current get-rich-with-the-cloud phase), but for the most part I still feel business sees us as an unfortunate necessity. My kids have had a keyboard in front of them since they could sit up straight, but neither of them are interested in an IT career. I think we are a lot like plumbers now; everyone wants a flush toilet, but nobody wants to deal with the pipes.
rameshnid 3 days ago 0 replies      
In my opinion, software is a risky business, like hollywood. You probably can act better than Depp but you are struggling because you have not yet been noticed or given an opportunity.

Your best bet is to love doing what you are doing - acting or programming. Also plan your life according to what you are making and be content. Leave the rest to fate.

analyst74 2 days ago 0 replies      
Aside from the many good points being raised here. I'd like to add 2 more:

1, in terms of making money, there is a mis-match within programmer world. You earn respect from other programmers by being great programmer, not by making a lot of money. So you are in a hard-spot if you strive to be a great programmer and rich.

While on the other hand, most dentists, lawyers, bankers's status within their own circles are highly related to their financial success.

2, the world of programming does have barrier of entry, not to the general run-of-the-mill programming jobs, but to programming jobs creating high values. You can come off the street and make a website, which don't make you rich, but you can't just start doing financial programming, or work for Google without some proven track record.

tomjen3 3 days ago 0 replies      
We don't get any respect because people respect those with power (notoriously not programmers) and those who can put on a good show (sport stars, politicians, celebrities).

Carrying the world on ones shoulders (if that is indeed what programmers do) is not something that gives respect.

adamrneary 3 days ago 0 replies      
I'm surprised that so many of the comments/replies to this post accept the premise that programmers are underpaid and don't get respect.

Everyone I know who writes code is making a hell of a lot more than people who aren't. The people I know at Google aren't making $150k. They are making a lot more and would be making a lot less as a management consultant or a politician or whatever else.

In fact, to say that top management consultants clear $500k is true, but top engineers clear a lot more, both of those industries strike me as massively paid industries.

Then there's banking. Engineers at banks make ridiculous amounts of money just like non-engineers working at investment banks.

Sure, there are engineers working for $60k just like there are management consultants working for $60k.

But I know a lot of unemployed management consultants, and I don't know a single unemployed engineer.

So I think people have raised very interesting thoughts about why doctors make more or less, but I couldn't get past the premise of the article. I think engineers are making a ton of money, and they deserve a ton of money. I think they get a ton of respect, and they deserve it.

Maybe that's just what I'm seeing. But particularly when you then say that teachers are paid more than the average American, I start to wonder who this mythical "average American" is, particularly knowing that my sister is a high school teacher and has to buy her own chalk. She would probably disagree with the article based on all the corvettes and teslas sitting in the Google parking lot.


perfunctory 3 days ago 0 replies      
> Saying there's a "shortage" is economically the same as saying that "we don't want to pay you guys enough to meet the demand for labor".

Indeed, it's like saying that there is a shortage of super yachts for people.

wehriam 3 days ago 0 replies      
Bill Gates, Larry Ellison, Jeff Bezos, Larry Page and Sergey Brin started as software developers and among the richest people in the world. Top tier IT professionals - directors or C level, successful entrepreneurs or finance standouts, all make gobs of money by almost any professional standard.

Software developers have unique opportunities and a culture of meritocracy. (It's hard to imagine a freelance actuary.)

Atropos 3 days ago 0 replies      
Some of the professions you mentioned like biglaw firms, bankers, management consulting are lucky to operate very high up the "value chain". Look at the Motorola-Google deal: $12,5b purchase prize, and a $2,5 billion fee that Google has to pay Motorola if the deal falls through for any reason. At these high dimensions the exorbitant bankers/lawyers fees are more like a rounding error. Of course you can say it is not "fair" in a higher sense that they get to capture this value, but to say they don't add value is unrealistic as well.
hpguy 2 days ago 0 replies      
If everyone visits a restaurant every now and then, why don't waiters get any respect?

If everyone needs a house, why don't builders get any respect?

If everyone needs their streets clean, why don't cleaners get any respect?

If everyone's children need babysitting, why don't baby-sisters get any respect?

If you don't think you receive enough money and respect being a programmer, why don't you do s/t else, being a doctor or management consultant for example?

Why someone has to pay 500K for a job that s/he could hire a H1B person to do at 1/10th the rate?

Comparing job to job is like comparing orange to apple. Let the market decides how much software engineers should earn and are respected. If Adam Smith is correct, the market is pretty good at that.

SleepingBear 3 days ago 0 replies      
Overall good post, but I have one problem. You say that because China is run by engineers, it is on the right track. First, economies are very complex and there could be several factors that are causing China's economy to grow, I doubt having leaders as engineers matters too much. The US economy has grown too, and it wasn't run by engineers. Shouldn't we also give the lawyers and politicians in charge credit for the times our economy was growing, instead of grief for what's happening now?

You also say:
"Sure, they have problems with pollution and corruption, but so did the US when we were industrializing. Overall, though, they're on the right track, and the US is not."

If engineers were better leaders than lawyers, wouldn't they be able to industrialize with minimal pollution? Instead, they're industrializing in similar ways that we were.

Also, China seems like a lousy place to live compared to the US with regards to personal freedoms, but I wouldn't go out and say that lawyers care about freedom and engineers want to govern with absolute control.

Sorry if I seem to be focusing on only 5% of the post, I just wanted to get that thought out. All that said, you bring up some very thought provoking points.

ClintonWu 3 days ago 0 replies      
Great thought provoking post. I think two sentences in your post truly answer the question "Why Don't Coders Get Any Respect?"

"But for some reason, unlike just about every other profession, programmers seem to have an aversion to asking for more pay and more respectability." and "And I think we'd all be better of if computer science wasn't just seen as a major for socially awkward nerds."

As a non-programmer, I think the perceived lack of communication/influence/negotiation "soft skills" has become the group's reality. Obviously there are exceptions, but the natural tendency is to think programmers are introverts, who don't innately have or haven't been taught the skills involved in negotiating higher salaries and gaining power through office politics/informal communication methods.

Maybe the act of programming in the US creates a natural selection bias towards a certain type of person and maybe that person isn't a natural fit in positions where communication, both formal and informal, is a key requisite. Or maybe the programmer just doesn't care. Either way, I think these skills can be learned to some extent and wouldn't mind seeing more programmers in power positions in companies and in the government.

vesrin 3 days ago 0 replies      
What I don't understand is why you are trying to compare programmers with doctors and lawyers. Why not choose fields that are more closely related and let's see how the average software developer is doing vs. those working in those fields?

For example, let's say, electronics engineer - I would hazard to say that the average software developer is earning higher than the average circuit designer.

Sure, you are saying that software is pervasive in our lives and extremly important - but all software runs on some hardware, which was designed by an electronics engineer.

Engineering and science related careers have never been amongst the top paid jobs in the society we live in - and you could argue for many engineering fields that they are amongst the most important jobs in our current economy (be it construction engineers, automotive, aerospace engineering, energy production, whatever). I don't really see why programmers should earn much more than people working in these fields.

cpeterso 3 days ago 1 reply      
Is dress code a factor? Would you want your lawyer or doctor to have Star Wars toys and Nerf guns in their office?

I propose "Formal Friday", where programmers wear ties and nice shirts (or skirts, as appropriate).

petervandijck 3 days ago 1 reply      
One data point: companies that hire programmers seem to work a lot harder at making it a fun/good place to work than companies that hire laywers.

Perhaps programming is just more fun?

Draconar 2 days ago 0 replies      
It strike me as odd that nobody here talked about happiness and about enjoying her job/work life. I read in some book from Dr. Martin E. P. Selligman that law is the profession in which people are more susceptible to depression and other mental health issues (statistically speaking). So much for your millions and society's appraisal, eh?
felipemnoa 3 days ago 0 replies      
Plumbers and Garbage Man don't get much respect either, even though they are very important functions and everybody needs them.
josepsanzcamp 3 days ago 0 replies      
It's true and false for me. I think the main problem lies in ourselves. We must go around with their heads held high and announcing to the whole world: we are a programmer. The real problem is that we ourselves, the programmers, do not see the value of our work. Thanks to the doctors, people do not die and are cured of their diseases. Well, thanks to the programmers, computers can run programs, and increasingly, higher quality. I have programmers friends that his dream is an MBA or something else required to climb in the profession. To my mind, I think are wrong. They tell me that not want to be 50 years old and continuing with writting code. I differ from them because if I want to be 50 years and still write code. I understand that the first change require that we change our work perspective. It's needed to understand that programmer it's an inportant piece of the current society. Without programmers, a lot of companies die directly. The programmers, are currently working the lines of the future and they are the responsible of stablish and maintain the social status. It's important understand that only the programmers can do the programmer work and must appraise the done work. Until the programmers don't understand that programmer work it's important, serious, complex, with responsibility, that requires constantly study, then the society does not change the view of the programmers. It's our work demostrate the importance of our work, the value of our thoughts and our contributions to the society (as the doctor that cure the diseases).
gdilla 3 days ago 0 replies      
A simplified view is supply and demand. There's only like 600 major league baseball players and their average salary is 4mm. Rare group to get into. There's fewer doctors than engineers or coders. And it's not like you can jump on elance and have someone remove your tonsils. And with greater supply comes greater variability in skill and salary.
beezee 3 days ago 0 replies      
One major flaw with comparing programmers to doctors and lawyers is that there's no acknowledgement of liability. It is far more often the case that a lousy lawyer or doctor puts lives at risk than it is a lousy programmer does, and liability is one of the most justified determinants for compensation.
Joshim5 3 days ago 0 replies      
There is nothing stopping MIT graduates from having government positions. The PM of Israel, Binyamin Netanyahu, is a graduate of MIT.
nosnhojn 3 days ago 0 replies      
I think there are some good points here but I always find the premise behind posts/articles/arguments like this a little silly. I don't think there's any correlation between respect and salary. And getting too caught up in what others think of you and your work is effort/thought/time wasted. Pick a career you like, do it well and respect yourself. If you get more out of it than that, great, but don't expect any more than that. Setting out on a "quest for respect" is more than likely going to end in disappointment regardless of whether you're a doctor, lawyer, engineer, bricklayer or some poor, poor programmer.
factfinder 3 days ago 0 replies      
Work hard and replace all those professionals with robots. But make sure that the robots are under your control. At that time all of the payments will go to the computer professionals.
TomGullen 3 days ago 0 replies      
Supply and demand, can't really say much else. That's usually the biggest driver for wages and something you have neglected to recognise.
entrepreneurial 3 days ago 1 reply      
You have to earn respect no matter what profession your in. Zuckerberg is a Coder. Sergey and Larry, Bill Gates, Jack Dorsey, etc.
r15habh 3 days ago 2 replies      
HFT programmers earn a lot, so its all about creating value http://j.mp/p6Sl45
known 2 days ago 0 replies      
Writing software != Selling software
mh_ya 3 days ago 0 replies      
China is definitely not on the right track...
gogodream 2 days ago 0 replies      
vynch 3 days ago 0 replies      
why dont programmers get respect? -> who is John Galt?
wingman007 3 days ago 0 replies      
Great article! I totally agree with the points.
rimmjob 3 days ago 0 replies      
you care way too much about what other people think
guillaume_a 3 days ago 0 replies      
Yakedee yak yak. Typical software engineer soapbox rant, all about ego boosting.

If you want the life of a rockstar or an investment banker, go do that instead.

BasDirks 3 days ago 1 reply      
As a doctor, however, someone like this - a top professional at the peak of their career - would probably make about $400,000.

Yes, but doctors have the most important skills I can think of. Don't think so? I'll come ask again when one of your family members gets cancer.

Coding and hacking have yet to grow to anywhere near their potential awesomeness.

Ask HN: Help!! Need to learn to build stuff - within 2 weeks!
7 points by no-go-mojo  10 hours ago   5 comments top 4
kingofspain 9 hours ago 0 replies      
Try http://www.appcelerator.com/ - you can easily have a basic app up & running with JS in no time. Take a look at the kitchen sink demo and just rip out/adapt the parts you need.
bdfh42 9 hours ago 1 reply      
If there is a USB driver that allows you to connect your Android phone to your PC/Mac then you could go that way. Java is a C like language and there are masses of tutorials and introductory texts on the web for this platform. I would have thought that someone who has had 5 years programming (at some time in the past) would be able to get something quite presentable up and running well within this time frame.

The Eclipse IDE has an Android "plug-in" that helps out nicely.

justustrees 8 hours ago 0 replies      
Why the 2 week time limit? Anyway, you could probably set up a site on Heroku and start building something with Ruby on Rails pretty quickly. It would be a marginal task to connect a jQuery Mobile application to the RoR app on Heroku. I think you should learn jQuery and jQuery Mobile if you want to build a mobile application, then use PhoneGap to build it for both Android and iPhone. The quickest way to start building a nice interface is to use something like jQuery with jQuery UI or jQuery Mobile for mobile apps. Ruby is very popular and there are lots of resources and tutorials available. If you want to build things really fast with less of a learning curve than Ruby, check out ColdFusion. It is proven, stable, fast, compiles to Java, supports OO, has great frameworks, supports full scripting or xml style markup and many other cool things. It's your call, but building in HTML / CSS / JavaScript (using jQuery) will be the quickest way to a front-end, building it with PhoneGap will be the quickest way to Mobile, and doing the backend in a rapid framework with lots of learning resources like Rails or ColdFusion.
Ask HN: Can I be a parallel entrepreneur?
2 points by sathishmanohar  4 hours ago   4 comments top 3
abbasmehdi 1 minute ago 0 replies      
Read Steven Blank's 4 steps to the epiphany. Then rethink.
NickNam 2 hours ago 1 reply      
I say when you're starting, do as much as you would like to do. If you feel yourself gravitating towards one project more. Then focus on that more (meaning, be able to drop a project that doesn't interest you any more. Don't feel obligated to follow through with it.)

At the beginning I feel it's more important to figure out what you like and what's working more for you. (Kinda like dating.)

However once you figure that out. It's time to buckle down and go for the win. It's much harder to execute than to talk about. But I'm sure you can do it.

japhyr 3 hours ago 0 replies      
You won't get far with a mediocre product, so you have to be able to do at least one of them very well. That said, a second project can be a break from the first one. Don't let doing both distract you from doing either one well enough to succeed.
Which web language to pick up for a new developer?
7 points by signinsignout  13 hours ago   19 comments top 9
adam-_- 8 hours ago 1 reply      
With all this talk of dynamic scripting languages, I just wanted to mention Perl.

We also have a powerful framework - http://www.catalystframework.org/ and there's an excellent book: "The Definitive Guide to Catalyst".

There's also a great, freely available, introductory Perl book: http://www.onyxneon.com/books/modern_perl/index.html. For any framework you pick up you'll need some grounding in the language as whole.

Many would consider Perl to be not as shiny and modern as Ruby or Python but we keep stealing their good ideas anyway:

* Rack/WSGI -> Plack.
* RVM -> Perlbrew.
* Bundler -> Carton.
* Sinatra -> Dancer.

Not to mention the good ideas emanating from the Perl community itself:

* A strong commitment to testing, which has lead to a central repository for cross-platform test reports for every Perl library released http://static.cpantesters.org/
* An advanced, powerful object system http://www.iinteractive.com/moose/

Much as I enjoy programming Perl, there's not really a bad choice between: Perl, Python, PHP or Ruby. Some would argue that the inconsistencies of PHP make it more difficult to learn but I'd argue that if you're on a Windows platform it's probably the best choice. The ubiquity of cheap PHP hosting is another benefit for a beginner.

Try learning enough to write a simple script in each of Perl, PHP, Python or Ruby. Then a pick a framework for the language you felt most comfortable with.

gry 12 hours ago 1 reply      
From by biased perspective scripting languages are leaders for web development.

* Ruby
* Python
* JavaScript

These are also the most brittle because they invent and change quickly.

I used to be a PHP developer and I thought the frameworks borrowed heavily from the stable Ruby and Python ideas for web app development. You'll find the crazy ones in Ruby and Python and a safer ground in PHP. Safest in Java. My bias.

Vibrancy != longevity. Rails 3 bit me tonight because I didn't understand a 201 status code and I almost hacked the path and then what was going on…it felt like the most correct, wonderful thing to do. I'm happy with the result, especially because the code is clean and browsers honor it without a fussy redirect.

Ruby and Python are vibrant, hungry communities.

PHP is vibrant, more stable.

Java is stable and most difficult to introduce an idea to unless it's a language atop the VM. :)

revorad 9 hours ago 0 replies      
If you're looking to double down on one specific idea, just pick any popular platform and run with it.

If you're more flexible and just looking to learn, build little apps on as many platforms as you can and see which one you like best.

conductr 11 hours ago 0 replies      
In terms of ease of learning for someone with no programming skills, I say PHP, Ruby, or even Python. The community for each is large and not going anywhere.

PHP is a good intro language because you can easily run with it (build a simple site), it has great documentation, and the hosting is straight forward (thus it is easy to launch). Once you get more accomplished with you skill-set, you may get picky and want a more robust language, but 99% of the beginner type stuff can be done with PHP.

Also, Javascript is great, you will use this regardless of the "server side language" as it is "client side" (in the browser). jQuery will help, as it standardizes many common and/or complex problems.

lien 10 hours ago 0 replies      
A year ago I started learning web development and found that you have to start with a framework. I used CodeIgniter (PHP) as the code is pretty clean. It's been around for a long time so there are a lot of communities where you can ask questions. There are also a lot of books based on it.

some popular php frameworks include Zend, CakePHP, CodeIgniter.

I looked at all 3 and tested it out. I went for CodeIgniter.

michaelpinto 13 hours ago 2 replies      
My understanding is as follows:

a. A good developer should be able to know a few languages, and to keep on learning new languages.

b. In theory you pick the best language depending on the requirements of the project.

lien 10 hours ago 1 reply      
ugh...Java...i took Java in college and found it to be a horrible language. loads so slow and not the best web dev language around.
friendstock 12 hours ago 1 reply      
ruby on rails (on heroku)
TMK 13 hours ago 1 reply      
Javascript + JQuery and for server scripting PHP
Ask HN: Recommend a book on Machine Learning and/or Graph Theory?
13 points by spxdcz  1 day ago   8 comments top 8
apsurd 23 hours ago 0 replies      
Disclaimer: I'm a total n00b on this topic.

I'm trying to learn how to classify items as related within a dataset. I know http://directedge.com does this (funded by yc, run by #wheels) so I had a look at their articles which are a helpful beginners intro. http://directededge.com/tech.html

In one of the articles #wheels recommends http://oreilly.com/catalog/9780596529321

so I'm going to pick that one up but to be clear I really have no idea if this book addresses graph theory specifically; at this point anything and everything is helpful to me.

mindcrime 1 day ago 0 replies      
It isn't published yet, but you can get the early access (MEAP) of Machine Learning in Action from Manning:


A good basic graph theory book is:


Depending on exactly what you're trying to do, you might also find some value in something like:


spxdcz 1 day ago 0 replies      
I realise somebody asked a similar question about Graph Theory books already - http://news.ycombinator.com/item?id=865749 - but that discussion is two years old, and I was hoping there'd be something newer by now!

Also, I've found this free online (downloadable) book on Graph Theory to be really useful: http://code.google.com/p/graph-theory-algorithms-book/

pmiller2 20 hours ago 0 replies      
For graph theory, I recommend Doug West's Introduction to Graph Theory. http://www.amazon.com/Introduction-Graph-Theory-Douglas-West... It's somewhat expensive, but worth the price. Also, Doug is a cool dude.
glimcat 18 hours ago 0 replies      
The Elements of Statistical Learning is pretty good. It's also available for free.


bradleyy 23 hours ago 0 replies      
Hilary Mason's machine learning video is good:


It's more of a primer, but it seems like most of the other material assumes that you're already a practitioner. It does have enough depth to actually be somewhat proficient after watching it.

linhir 21 hours ago 0 replies      
I would suggest Pattern Recognition and Machine Learning by Bishop.
iamsidd2k7 11 hours ago 0 replies      
Whats missing on the list is interesting works of Jon Kleinberg. Hes CS professor at CMU checkout this link http://www.cs.cornell.edu/home/kleinber/networks-book/
Ask HN: Best cloud host?
9 points by ltamake  21 hours ago   7 comments top 7
nesbot 5 hours ago 0 replies      
I have had a great experience with https://www.stormondemand.com/ so far. They offer both shared and bare-metal dedicated and they always seem to be cheap compared to others. They were rated quite high by the cloudharmony benchmarks. Not to mention their support twitter account, when needed, are really responsive.
fuzzythinker 11 hours ago 0 replies      
Trying out ep.io now. Docs are lacking a bit, but support seems superb. Ask again or contact me in a few weeks, I should have more to say then.
rawsyntax 20 hours ago 0 replies      
I tend to use heroku's free plan for testing out ideas. I wrote a post detailing how here: http://rawsyntax.com/post/8737142015/host-your-side-project-...
AdamGibbins 21 hours ago 0 replies      
You need to define your interpretation of "cloud host". It varies a lot. Are you looking for a virtual machine host with a decent API? Or are you looking for someone to manage the stack of your software? In which case, what is your stack?
detour 21 hours ago 0 replies      
We've been using dotcloud (https://www.dotcloud.com/) and are quite happy with the results in testing. Haven't gone to production yet though so we'll see how they pan out in the long run.
goshakkk 21 hours ago 0 replies      
If project is written in Ruby, take a look at Engine Yard and Heroku (it also supports node.js, Clojure and Java).
masonhensley 17 hours ago 0 replies      
We've been trying out pagodabox and love it. (PHP)
Ask HN: Features you would find useful in an information management application
4 points by ZukmoTeam  14 hours ago   4 comments top 2
trussi 11 hours ago 1 reply      
This is based on a love of b2b saas products that focus on increasing productivity...

First, ditch consumer. They don't pay and are very fickle. Lots of lookie-loos. And it's really hard to actually solve a problem for them because they don't even know it's a problem.

B2B is way more lucrative. Getting a SMB to pay $100-500/mo for a product that adds value is easy. Try getting that amount from a consumer!

On the site UI: design, colors are good. Make the tabs animated so it scrolls through the features.

On the content: you are stuck where I (and most other techies) get stuck. You are focusing on features. You have to focus on the benefits. Answer the question: what's in it for me.

I see there's a bunch of features. Strip all of it down to 2-3 things. That's it. You have to focus everything into 2-3 key things. And you have to present them as benefits to the customer. For example, 'distribute to social media' is a definitely a feature. 'Share your pictures with all your friends in one click' is a benefit (I think).

Think of it like this: a feature requires the customer to connect the dots to answer the question of 'what's in it for me'. a benefit connects the dots for them. It's like the "because..." of a sentence.

On the product: my goal with all my b2b work is to try to simplify the process until it takes zero clicks to perform it (i.e. fully automated). if something takes 3 clicks, figure out how to get it to 2 clicks. If it takes 2, get it to 1. And if you can get 1 click down to zero clicks, you have reached productivity nirvana! :)

Second, you have to pick a really specific niche in SMB to go after. DO NOT BUILD A ONE-SIZE FITS ALL PRODUCT! You will fail.

Pick Info Management for dog groomers or Info Mgmt for funeral homes. Go very specific and build a product that is custom-tailored to that niche. This reduces competition, decreases customer acquisition cost and will get you delighted customers.

Once you pick your niche, you have to fully understand that customer and their processes. This is impossible for you to do unless you were a dog groomer in a previous life, so you'll have to find some subject matter experts (SMEs) and pick their brains.

Then, pick the part of their process that is the most painful for them, that technology can help fix and that they will pay money for. Solve that problem and you make money.

You might get lucky and your existing product will cover some of what's needed to solve that problem, but it might not. You'll probably want to identify SMB niches that you think might have a problem related to info management as your starting point.

The biggest thing you want to be aware of is that when you are talking to SMEs, keep a wide open mind and ask all sorts of questions. Don't try to force your product or your presumption of what their problems are. You will most certainly be wrong.

Good luck and keep us posted on your progress!

Dhamu_R 9 hours ago 1 reply      
i tried it out with your firefox button. it is really packed with a lot of features and though i couldn't try my hand at everything, i can see its use as a cloud storage option for my favorite webpages & rss feeds or for my desktop documents or other online apps (like google docs, twitter etc). Notes seemed very basic to me and needs improvement because i could only add text. i like the fact that i can generally search on any word within the web page to find it. i have a couple of questions. how can i use the multimedia service ? you have mentioned sync to devices but i didn't find any mobile app ? overall its nice and good luck with it.
Ask HN: Why do most popular programming languages not have headers?
6 points by SeoxyS  18 hours ago   5 comments top 5
marssaxman 16 hours ago 0 replies      
What you're describing is an accidental feature; so far as I know it only exists in Objective-C, and it exists because of a historical accident. Obj-C inherits the use of header files from C, but its Smalltalk-derived use of dynamic dispatch means that you can call methods whether or not you have seen a declaration.

Header files don't exist because someone once decided they were a great linguistic idea; they exist because they were a clever hack for making compile-time type checking work across source files on a machine with less than a megabyte of RAM.

Objective-C has had little or no impact on language design. It has been around for over twenty years, but until recently it was just an obscure little branch of the C family tree that never went anywhere. Only after the iPhone took over the world did anyone start to pay attention - but that's because Objective-C is the only way to write iPhone apps, not because everyone suddenly decided the language itself was great.

From a language design point of view, there's not much going on to inspire interest. It's an old familiar way of thinking about objects bolted onto an old familiar way of thinking about systems programming, and what's surprising is simply that it works smoothly despite the awkwardness of the marriage. The language design community isn't really interested in that stuff any more; they've moved on and are all about functional programming and algebraic data type theory now.

pseudonym 18 hours ago 0 replies      
I won't get into the debate of whether headers are required; it feels like something that's more personal preference, like the One True Bracket Placement Method.

I will say that when it comes to well-documented code, your constraint is less the language than the people who make the code in the first place. Every non-header language I work with has at least one piece of automatic documentation parser that will grab the comment block directly above the method declaration and turn it into an easily-readable API.

(I will note that for me personally, I prefer to keep well-commented and documented code in the one file, instead of needing to do odd window splits or jumping between open files to make sure my method declarations are in sync with my implementations. Header files seem, to me, to fly in the face of idea of not copy-pasting code-- function definitions that have to be modified by hand in multiple places just feel wrong.)

dbattaglia 1 hour ago 0 replies      
Coming from C++ originally, I actually like header files for code organization, but that is mainly on smaller projects. Once you get to anything substantial I feel like they make life very difficult. Sometimes I feel like you end up literally coding around them just to allow for a circular reference between 2 classes. Its not the end of the world or anything of course but I can see why the world at large has moved away from them. I remember the first time I tried C# and saw the single .cs file per class and module/assembly level includes (via references) rather than header-level includes, it was like a revelation, and life felt so much simpler after!
glimcat 18 hours ago 0 replies      
For one thing, talking to other developers is what comments are for.

I tend to dislike header files because it means the information I need to grok a piece of code is squirreled away in more places. This is less a systems problem than the fact that developers often take it as an excuse not to adequately explain what I'm looking at where I'm looking at it.

But I'll go with whatever the convention is for what I'm working with.

maushu 18 hours ago 0 replies      
It's one more file that you have to support and keep in sync with the rest of the code.

I absolutely hate header files. If I want to get the high view of a class I just collapse the code to definitions (eg: Alt+0 on notepad++), all decent editors are able to to do this.

Ask HN: What did you do on the first day of your start-up?
5 points by nibo  18 hours ago   3 comments top 3
mindcrime 18 hours ago 0 replies      
I can't even tell you what the first day of my start-up was. I suppose you could argue it was the day I sat down and started writing code on the current iteration of the project I'm working on, in which case the first thing I did was something like:

[prhodes@voyager quoddy]$ grails create-app neddick

followed by

[prhodes@voyager quoddy]$ grails create-app quoddy


[prhodes@voyager quoddy]$ grails create-app heceta

After that, it was just lots and lots of coding, up until I discovered Steve Blank's The Four Steps to the Epiphany at which point I stopped coding for a while and started doing Customer Development.

benologist 18 hours ago 0 replies      
I hacked away on what would eventually, months later become my startup. It wasn't on that day though, it was just a site I wanted to make that had no users, no code, and only a fraction of an idea. It had the perfect name that ended up being dumped though because it was too short sighted.
nesbot 17 hours ago 0 replies      
We setup computers (AMD K2-350 !!) and desks in the morning and played a 2 person LAN game of DoomII for the afternoon. On the 3650th day we played some LAN counter-strike (with a lot more people). Lots of blood, sweat, tears and counter-strike in between. On the 3651th day I left.
Ask HN: Remote Recruiters?
4 points by mattm  16 hours ago   1 comment top
scottshea 14 hours ago 0 replies      
I wish I could help you but the best I can come up with is finding some that work with larger companies that support telecommuting. Most of the smaller companies that support remote work generally use networking, ads or independent recruiters. Telecommuter jobs collects the Craigslist ads that mention telecommuting but the results are spotty. Dice.com might have a better search but I cannot recall if they have a telecommuting filter; if they do you could look for recruiters that post there.
ScummVM in Javascript
2 points by cedel2k1  9 hours ago   discuss
Ask HN: What is your preferred Python stack for high traffic webservices?
181 points by bigethan  5 days ago   66 comments top 18
espeed 5 days ago 3 replies      

  * haproxy - frontline proxy
* varnish - app server cache
* nginx - static files
* uwsgi - app server
* flask - primary framework
* tornado - async/comet connections
* bulbflow - graph database toolkit
* rabbitmq - queue/messaging
* redis - caching & sessions
* neo4j - high performance graph database
* hadoop - data processing

b14ck 5 days ago 1 reply      
I'm a fan of Django, so my ideal stack looks something like this:

  * puppet - managing server packages / infrastructure
* monit - monitoring server processes / fixing things
* django - primary web framework and ORM
* amazon mysql - it's hosted, and works via plug-ins with Django
* amazon s3 - storing static assets (images, css, javascript, etc.)
* amazon elastic load balancer - for scaling incoming HTTP requests across multiple web app servers
* amazon autoscale - for spinning up new web app servers to handle spikes in traffic
* rabbitmq - message queueing
* celery - processing async tasks in a robust fashion. must have
* memcahed - no explanation necessary
* git
* fabric for deploying software
* jenkins for testing / building software
* nginx for buffering elastic load balancing requests to web app servers

antimora 5 days ago 4 replies      
I am considering this stack off the shelf in my next big project:

- uWSGI - performs better than gunicorn and has support for async apps using gevent

- nginix - front end server

- pyramid - web framework

- mongodb - database

- mongoengine - mongodb and python mapper

- zeromq - messaging and communication

- jinja2 - for template engine

- gevent - for async processing

- gevent-zeromq - to make zeromq non-blocking and gevent compatible

- socket-io - JS lib for realtime communication

I still need to develop robust session management. I considered various options and came to conclusion if I want something fast, truly distributed and not using sticky session I should come up with my own session manager demon hosted on each node. I would use ZeroMQ to communicate to it.

andybak 5 days ago 0 replies      
You should find Simon Willison's talk about Building Lanyrd very relevant.

Slides and video here: http://lanyrd.com/2011/brightonpy-building-lanyrd/

kingkilr 5 days ago 0 replies      
* nginx
* gunicorn
* Django
* PostgreSQL
* memcached
* Whatever else I need to implement the logic of the site (redis, celery, etc.)
timc3 5 days ago 1 reply      
This is what I am using currently:

  * haproxy - frontline proxy
* nginx - static files and back proxy
* supervisord - service uptime
* gevent/meinheld - wsgi
* django
* gevent/eventlet - websockets/comet
* postgresql - Database obviously
* memcached - caching for django
* rabbitmq - message queuing
* celery - message processing
* fabric - deploying
* hudson - building

BarkMore 5 days ago 0 replies      
nginx - frontline proxy, static files

tornado - web

memcache - cache

mysql - database

jsherer 5 days ago 0 replies      
Surprised at the low number of CherryPy posts in this thread. Not only is it a great framework, it supports Python3 out of the box. My stack:

- ubuntu/debian - apt ftw

- python 3

- haproxy - proxy

- nginx - w/ uwsgi

- cherrypy - framework that supports PY3

- sqlalchemy - orm and sql

- postgres - relational storage

- mongodb - "mandatory" NoSQL

- 0MQ - messaging

lightcatcher 5 days ago 2 replies      
Its not a high traffic site, but I'm running a app that served average of 5 req/s with Mongrel2 + wsgid + MySQL + django and thats working pretty well.

Also, the benchmark of Python web servers that gets linked everywhere (http://nichol.as/benchmark-of-python-web-servers) is getting old. I'm planning on doing a new benchmark, probably this coming weekend. As of now, I'm planning to test gunicorn, uWSGI, tornado, bjoern, eventlet, and gevent over HTTP, flup over FCGI, and uWSGI and wsgid over zeroMQ (behind Mongrel2). Thinking of it, I probably need to put all of the HTTP servers behind nginx for a more fair comparison. Am I forgetting any servers that people would like to see benchmarked?

MostAwesomeDude 5 days ago 1 reply      
Twisted/Twisted/Twisted/Twisted. >:3

More seriously, Twisted/Flask/SQLAlchemy has been the formula for the past two deployments I've done, and I'm happy with it.

ConceitedCode 5 days ago 2 replies      
uWSGI, nginx, pyramid, sqlalchemy, postgresql, mako, beaker and fabric to deploy

My preferred setup that works for most cases. All reliable and fast.

amitutk 5 days ago 4 replies      
I am newbie to using python for web services. Will django be better to start with or should I consider pyramid/flask/uWSGI as suggested here?
z0r 5 days ago 0 replies      
At my job, we are running tornado w/ gunicorn and membase w/ haproxy to load balance (and not much else) and handling quite a bit of traffic. If I were to write my own from scratch I'd want to learn some erlang first ;)
gtaylor 5 days ago 0 replies      
nginx + gunicorn + pgbouncer + postgres, S3/CloudFront for -all- media. The gunicorn app server sit behind one of Amazon's Elastic Load Balancers, but could just as easily be HAProxy.
lacion 5 days ago 0 replies      
Varnish / Frontline server sends static media to nginx, and other request to uwsgi cluster.
Nginx / static media servign
UWSGI / app servers
Django / Web Framework
PGSQL / Relational Database
Redis / NoSQL / cache / sessions
*RabbitMQ / messaging queue

we use varnosh as a frontend server it handles the load balancing betwen our UWSGI servers, and if the request is a static file its send to our nginx server. we them use redis to store all of our cache and sessions, we cache everything so everytime there is a read from our database via the django ORM our api grabs the whole object returned and stores it in redis so next time we need to retrieve it we just hit redis.

steve8918 5 days ago 2 replies      
Does anyone have any opinions on web.py? I played around with this and it seemed pretty easy to use.
samuel1604 5 days ago 1 reply      
antihero 5 days ago 1 reply      
PHP 4 running on IIS.
What do I need to research & understand to negotiate equity?
8 points by planckscnst  1 day ago   6 comments top 3
robfitz 1 day ago 0 replies      
First off, it strongly benefits both sides to reach the 'correct' agreement here. If you over-negotiate and get too much equity, the CEO is duty-bound to fire you once they realize their blunder, since it's irresponsible to the other stakeholders not to. Similarly, if you are given too little, you'll come to begrudge them and quit, significantly hurting them.

If you started with any salary at all, you don't have a good argument for a founder-sized chunk. An early, key engineer is going to be somewhere in the 2%-10% range.

If you started without salary, and thus took founder-style risk, you might be playing more in the 5-20% space.

For the overall company breakdown, You can assume the structure is something like 10-25% employees/option pool, 75-90% founders.

For example, the founders might choose to give 5% to each of 2 key engineers, leave another 10% to spread among all future employees & advisors, and divide 80% between the founders.

Vesting is a clear "yes", for everyone on the team including the founders. Founders & employees should be on a 4 year vest with a 1 year cliff (if you get fired or leave within the first year you get nothing, at the end of year 1 you get 25% of the equity you are entitled to, and then another 1/48th of the total each month from then on).

The vesting thing is more like... if the founders don't do it, you don't want to work for them because they're clueless. So you should insist on it because otherwise the company isn't being run properly. If the founders don't vest themselves, quit immediately because they are mis-aligning themselves with the future of the company.

You always talk about equity in %, not a # of shares. Companies can be started with an arbitrary number of shares (my last one had 7 million, some go with 10 million, some 100,000). # of shares is totally meaningless -- talk in percent ownership. Founders saying "And you get 20,000 shares!" are trying to trick you.

My advice here is to make yourself a mock cap table, and try to play with how you would set it up to keep everyone properly incentivized, as if you were an outside board member wanting it all to run smoothly.

So assuming there are 3 founders (1 of whom is the engineer), plus you, plus 4 other engineers, you might end up with something like this (where you are the high-value engineer):

Founders: 75% (30/25/20), Current engineers: 15% (8/2/2/2/1), Future Pool: 10%

trussi 10 hours ago 0 replies      
There are a bunch of triggers you want to include in the agreement, like what if one of the founders become incapacitated or gets divorced? Will the survivor/ex-wife now be your boss? You'll need to either dig up a well-written agreement or get some good legal advice.

If you're attorney costs less than their attorney, you're most likely going to leave an opening for you to get screwed in the future. Even if your other founders aren't dicks, a future investor might be (i.e. screw over bob and kick him out or you don't get my money).

Remember, this is like a pre-nuptial agreement. You have to write the agreement as if you are going to get a divorce.

You want to make sure you cover owner equity distribution in the agreement. If the other founders are pulling money out of the company, you should get an equal share.

And you might want to consider a buy-out clause. This gives the other founders an option to buy your shares. They will really like this. And you might give up some upside, but still walk away with a nice pile of cash. Make sure to structure it as best you can, so it's your option to take or not take. This gets tricky, but is doable.

If you really think there is some potential for the company to make some serious profit, you need to go find a $350-500/hr attorney to help you get into the right agreement.

damoncali 1 day ago 1 reply      
Talk to a tax accountant now - before you take any stock/options. You need to understand the tax and cash flow consequences of options. If you don't plan this right, you can wind up with a huge tax bill and no money to pay it with. To make things worse, if the stock then goes to zero, you'll still have to pay the taxes, even though you never saw a cent.

Negotiate vesting. Negotiate triggers (what happens if you get acquired/fired/relocated). Negotiate the length of time you have to exercise options after you no longer work there.

As for how much? As much as you can get. It's that simple.

Ask HN: Advice for interviewing/first time hiring
5 points by benologist  1 day ago   4 comments top 3
mathattack 3 hours ago 0 replies      
Some thoughts:

1) In addition to technical skills, look for values and fit. Is this someone you want representing your firm? Is this someone you want to share 2000+ hours a year with for the next few years?

2) Do your best to have each hire bring something unique that nobody (especially you!) else is good at.

3) Look for trajectory in addition to location. For example: If there are two people of the same ability, and it took one person 7 years to get there, and the other 3, the junior person is learning faster. You don't want to hire people who have already peaked, as your organization and it's needs will grow.

4) No matter how busy you are, it's always ok to wait if you haven't found the right person. The cost of a bad hire is enormous, and it's a large market. It's ok missing three good hires if the process allows you to miss one bad hire.

5) For more tips, go to www.joelonsoftware.com and page down to the section listing his posts for recruiters. You don't have to follow 100% of what he says, but investing a few hours will help a lot.

ecaroth 21 hours ago 0 replies      
1) Make sure your personalities meld - I hired people multiple times for their coding chops when we didn't necessarily 'jive' and it made working with them over a long period pretty painful, especially when brainstorming or doing stuff like critique

2) Make a test with problems unique to your space - aka if you write scheduling software, have the test use some date/time functions or if you write a search engine have them write a simple DOM tree parser. Nothing crazy complicated, but enough to give you an idea of what they are made of. Let them take the test home to complete, then give them feedback about their answers after they return it and see if/what changes they make in response to your feedback. This gives you a good idea if they are willing to adapt and learn in your problem space, and if they can take constructive feedback.

bo_Olean 1 day ago 1 reply      
My 2 cents:

1.Do not hire devs without taking a test.

2.Hire developers for their "skills" and not for your affiliations with them.

3.Hire someone who is self learning and knows type of product/platform you are working on.

Why you may ask:

1. Test measures the work speed and efficiency

2. Respect people for their skills not for your relationship with them (eg. friend, relative etc..)

3. So that you won't waste time giving them keywords to Google.

Ask HN : Is hacker a good terminology?
5 points by bo_Olean  1 day ago   9 comments top 4
T_S_ 1 day ago 0 replies      
It's not a bad way to discriminate between people based on how much they think about technology. The less informed only see the term when it appears in a bad news headline. Others know there is more that one meaning.

At Hacker Dojo we have experienced this first hand. Once we had a tv crew show up asking about the arrest of some Anonymous members. Nothing at all to do with us. There have been a couple of times we wished the name was the Mountain View Yacht Club.

gharbad 1 day ago 1 reply      
The term hacker as someone who fiddles with technology out of curiosity predates the negative term for a malicious computer user. I believe it even predates computers.
mkr-hn 22 hours ago 0 replies      
People think a lot of wrong things. It's more productive to inform them when it comes up than it is to change the word you use.
thetabyte 23 hours ago 2 replies      
This will answer all your questions: http://catb.org/~esr/faqs/hacker-howto.html
Ask HN: What happened to the flagging option?
5 points by chollida1  1 day ago   5 comments top 4
allenbrunson 20 hours ago 0 replies      
I read a comment from pg once that he "grades" flags based on how many articles you flag that actually do end up being killed. So it stands to reason that if you only flag honest-to-god spam, which almost always gets killed, then you'll get a high "grade" for your flags. But if you flag stuff that you think is merely off-topic, that mostly does not get killed, it just languishes with low points. So those flags would be counted against you. I of course have no inside knowledge about this. He may have changed the code since then.

For what it's worth, I go through /newest about once a day and flag only honest-to-god spam, typically three or four at a time. I've been doing this for a couple of years now, and I can still flag stuff.

ColinWright 1 day ago 0 replies      
I've heard that there is a detector for excessive flagging. I used also to go the "newest" and flag all the spam, and be a bit aggressive about keeping HN on topic, but I don't any more. There are literally dozens of posts that I see that should be flagged because, in essence, they are content-free. They contain nothing to make you think - really think.


But I don't flag much any more. If you want it back, no doubt you can email PG. Be brief and to the point - he usually responds quickly to sensible requests.

bartonfink 1 day ago 1 reply      
It's still here. I think you're on target when you guess that you may have flagged too much. I doubt it's a serious offence - you'll probably get the option to flag back in a little while.
ltamake 18 hours ago 0 replies      
I can see the flag link. You may have tripped a mechanism.
Tell HN: Sunspider Benchmarks for TouchPad, iPad 1 and 2, and Galaxy Tab
3 points by yahelc  18 hours ago   2 comments top 2
cygwin98 1 hour ago 0 replies      
I'm still waiting for my TP to be shipped. Can you update to the latest 3.0.2 and overclock to 1.5Ghz or 1.7Ghz and re-run the benchmark? That seems to be the norm from what I read in forums these days. Would like to know how TP perform in that setting.
TobbenTM 10 hours ago 0 replies      
Would that be the new Galaxy Tab? (10.1)
Ask HN: Monitor size
3 points by jamesbrewer  20 hours ago   8 comments top 8
daniel_solano 4 minutes ago 0 replies      
I use three monitors, all 22" 1920x1200. The centre monitor is in the landscape orientation, while the other two are in portrait orientation.

I am not sure what to think of the wide screen aspect ratio. In some cases it can be good, though sometimes I think it's just a bit extreme.

bobwebb 2 hours ago 0 replies      
1280x1024 17" monitor. I'd prefer something larger, at least 1080p resolution. I've tried using multiple monitors before, though. Doesn't do much for me, but then I mainly used them for playing video games and chatting on IRC...
nesbot 4 hours ago 0 replies      
I have 3 monitors.

Left 22" (landscape) 1680x1050
Center 23" (portrait) 1152x2048
Right 22" (landscape) 1680x1050

Pretty happy with my current setup. I have them on monitor arms which is the best thing... ultimate control over placement.

PStamatiou 18 hours ago 0 replies      
single 27-inch apple display at home. i hate switching between dual screens so this is a perfect setup for me
andymoe 19 hours ago 0 replies      
15" Laptop (MBP) + 21" LDC @ 1600x1200dpi. I like the 15 inch for the laptop and 19-23 for the external monitor though I don't mind a smaller monitor as long as it can run at 1600x1200 or above.
orangecat 19 hours ago 0 replies      
2x1920x1080 at home (21" iMac plus 21" external). I'd prefer 1920x1200, maybe even 1600x1200.
jamesbrewer 19 hours ago 0 replies      
It seems that the screen resolution is just as important (if not more important) than the monitor size. Is this a fair statement?
bmaeser 20 hours ago 0 replies      
@ home: 23" 1680x1050 attached to my 13" MacBookPro
@ office: 21" && 23" both 1680x1050 attached to my desktop
Interview Question: Why do you want to leave your company for this job?
3 points by isurfbecause  20 hours ago   7 comments top 5
davidst 20 hours ago 1 reply      
You just answered it. That's a perfectly fine, honest answer. The interviewer might follow up with a question about trying to get another position within the same company so be prepared to answer that.
brianm 20 hours ago 1 reply      
"Ready for something new" is the standard and boring, but fair answer to a totally unfair question.
matthiasb 19 hours ago 0 replies      
Interview is all about honesty. I think there are 2 things you could say. The first reason is that you have been in your current job for a long time and you have learned a lot and became good at it. But it is not giving you any more challenge and growth that you are looking for professionally. Another reason you should think about is why this company is a better company than your current one. There is got to be a reason why this is a better fit for you professionally and personally. It could be what the company stand for, what they sell, or the technology you will be using, you name it.
njharman 19 hours ago 0 replies      
Tell them the truth.

"My current work is boring and stale maintaining intranet web applications. Been doing this for 5 years. I believe I've exhausted all opportunity for growth at current job. I'm looking for a change and a challenge."

jamesbrewer 20 hours ago 0 replies      
I have no experience in this area, so you can pretty much ignore any advice that follows.

I think I would be very honest about this question. I would tell the interviewer that my current job bores me and I don't feel intellectually challenge, which is important to me. If the interviewer doesn't understand why this is a problem then this company might not be one I want to work for anyways.

Download.com wrapping downloads
156 points by forgotAgain  5 days ago   32 comments top 13
acangiano 5 days ago 1 reply      
My guess: Microsoft was probably ecstatic about this. Until it becomes a PR headache (it's just about to start). At that point, Microsoft will probably condemn this as misleading and something they don't endorse. They'll probably cut them off from whatever referral program they are currently on.
latch 5 days ago 1 reply      
There'll be a backlash. Microsoft will kill the program and claim that "Microsoft relies on a number of 3rd parties for its marketing. In this case, the 3rd party acted without consulting Microsoft and as soon as Microsoft was made aware of the issue, they cancelled the program"
georgieporgie 5 days ago 0 replies      
Assuming you have a piece of software which is supported by bundled toolbar installation, does this mean that Download.com effectively steals your slice of the pie?

(not that I advocate toolbar bundling, but it is one way that some apps make money)

tajddin 5 days ago 1 reply      
This really does seem like a violation. We develop enterprise help desk software and also offer it via Download.com and didn't receive a notification of this change.

It doesn't exactly look great on our software that a toolbar is installed alongside it -- especially for a professional business product.

fomojola 5 days ago 1 reply      
The upsell is here! They'll expose your direct download link to people who are registered. Who registers for download.com?!?!

And, if you pay them for the privilege of hosting your content with them, they'll let you opt out of it. This is how they try and make money.

Take your software down: its 2011, you can distribute yourself, cut out the middle man, and (unless you're getting 20000 downloads a day) still not pay very much for it.

ars 5 days ago 1 reply      
I wonder if you could bundle an uninstaller into your package - just for them. They install some adware, you uninstall it right after.
bradleyland 5 days ago 1 reply      
I'm surprised this doesn't violate the license of many of the applications available on Download.com. Time to abandon ship?
tlrobinson 5 days ago 0 replies      
Is this even legal? Did you give them permission to distribute your software?
ggchappell 5 days ago 2 replies      
(1) I really appreciate this post & discussion. It has been clear for a long time that lots of website owners pay little or no attention to the experiences customers have with fulfillment providers (and Download.com is fulfillment, in the larger sense). It's time to hold people accountable for this kind of thing.

(2) Microsoft has been associated with sleazy stuff for years. I'm thinking of the installation of all kinds of nonsense software when you buy "Microsoft Windows" pre-installed. I doubt this issue is the kind of thing they consider a problem. Sad, but true.

jgmmo 5 days ago 0 replies      
I cant find this issue with any of the software the company I work for sells via download.com, it looks like people who pay CNET millions of dollars per year are not affected.
scamsover 4 days ago 1 reply      
It's called "OpenInstall", see openinstall.com - after looking up the domain owner, old owners, servers and registration of the company as well as multiple addresses, I found it is the same company responsible for this:

"Viveli" or "GameTheory" are the company names, see comments on Cutts page. According to the posting, they even lost ties to their former toolbar partners Zugo.com because Bing.com shut them down for forced installs (like on Bright.com or on CNET).

http://www.openinstall.com/aboutus.html - seems like most of them are former founders of "FreeCause", a toolbar company that hides installs under the false impression of charitable donations.

The person behind it is Eduardo Vivas, who just opened up his new startup Bright.com, which is Co-Reg scam, if you look at the getsatisfaction.com support requests this becomes very clear. Sign up people, send them to education affiliate offers, cold call them from a call-center and have them download a toolbar to get access to job postings.


Ask HN: Is there a comprehensive calendar of programming/startup events?
2 points by MrMike  16 hours ago   discuss
Show HN: subscription flowers (to keep the significant other happy)
5 points by paulsingh  1 day ago   6 comments top 4
arkitaip 1 day ago 1 reply      
This isn't criticism of your service per see, but wouldn't scheduling flower delivery take out some of the magic and fun of receiving flowers? Maybe you could add some randomness so that the flowers are delivered within a interval instead of always 30 days apart?

Did you do some research to figure out the MVP?

I understand that you're in the MVP phase right now but what are your plans wrt to the web design? The current one is very generic. Maybe some kind of flower shop design?

I like the idea of the rookie plan :) How does your email reminder look like? I'm betting you made it easy to sign up for one of the other two plans, maybe even offering a rebate on the first delivery of roses?

You might want to align the plan boxes on /pricing as "rookie" is shorter than the others.

Tawheed 1 day ago 0 replies      
joshuacc 1 day ago 1 reply      
Love the concept. And I especially appreciate that you've got a free plan available.

One question: Why does the Anniversary Date field ask for a year? I'd expect it to refer only to day and month. Otherwise it's not an "anniversary" date but a "special date that I want to remember the anniversary of"

Also, after trying to sign up, I got the standard Heroku error page: http://screensnapr.com/v/IfIjVS.png

hartard 23 hours ago 0 replies      

I built a similar service for a [humorous] weekend project.

       cached 27 August 2011 19:05:01 GMT