It's so strange seeing these numbers and thinking "Really, I thought we got paid more?" It's making me think that perhaps I'm in a bubble. Everyone I know around me (friends, coworkers, etc.) makes at least 200k combined income, with the average being in the high 200s. This is at FANG, mind you. Are the salaries outside of FANG really that much lower? Even in LA/SF? Can anyone comment on that?
They don't once mention total comp, it's all about salary, outside of large corporations this isn't far off, but for FANG this makes a big difference. Even if they are including RSUs, there's no way they can reasonably value ISOs which are huge for the middle-tier startups.
The other thing is the average/median is almost certainly being brought down by the loads of juniors, and tiny ramen-style startups that aren't paying shit. On the flip side, they may be excluding some engineering management roles on the top end.
Also, remember that outside your bubble there are a lot of companies of all sizes that need software engineers and don't have access to the same talent pool. There are an awful lot of people hanging out pulling a salary that have absolutely no business being software developers, and are happy to make $50-80k by just knowing enough to fly under the radar in a big shop.
Yes? Most companies don't start new grads at $120K+ and don't heap thousands of dollars of stock on their employees every year. Developers rotating between the FANG companies can also negotiate larger pay bumps than the rest of us.
They can be, yes, but only in cities where cost of living is not driven by technical talent. For instance, downtown DC's cost of living is rapidly approaching that of SF, but engineering roles here can pay nontrivially less than those in SF because a lot of the CoL is driven by legal, lobbying, and niche defense/IC work, and most companies hiring talent aren't right in the heart of the city. General engineering doesn't have the demand to drive the price wars you're seeing in cities like SF.
I mused on SF pricing as well in a different top-level comment here, and I'm solidly convinced based on what data I've seen that devskiller's numbers here are objectively misrepresenting the current state of talent pricing in SF. Can't comment on LA, but it wouldn't surprise me if LA was similar to DC in that CoL has skyrocketed because of other inflows of liquidity, e.g. passive income through the entertainment industry.
I don't know anyone making $200K outside a bank. Senior salaries in NYC (which is a high-price/high-salary city) tend to run around $150K, give or take 20% (for 10+ years of experience, not someone with 2.5 years experience and a "senior" title).
+1 . I always see these comments about "developers in NYC make well over 200k at established companies" and I'm yet to see instances of this.
AFAIK, only Google and Facebook have fairly sizeable engineering offices here and pay that much.
Even the large financial institutions pay most of their engineers less than 200k, maybe around 150k.
I've heard of "quants" (engineers / mathematicians) who sit at the trading desks making bank, but that was in the days of when trading actually made a ton of money, and I have to yet meet someone in person to ask them how much they made.
Everyone on HN makes $300K, drives a Porsche and has a supermodel boyfriend/girlfriend. Look at every salary thread here, you’ll see it over and over. Self reported salary data is always going to skew high because of ego.
Actually it probably means salary + RSUs, which are generally substantial for FANG-type jobs. If you're only looking at salary, you're missing half the picture.
These numbers are low for Atlanta - unless I too am in a bubble - all of my friends with 10+ years of experience are making 120K to 145K. These are standard corporate jobs. Atlanta is not high cost of living place. You can easily get a new build - 5 bedroom 3 bath 2800 square foot house in the northern burbs - for around $350K. Even in one of the wealthiest cities in America (Johns Creek) houses are going for between 400K - 600K.
Of course they are lower out side of 'FANG'. The big companies will always want to attract the best of the best and to do that will need to post the bigger salaries, because as pointed out in the infographic; salary is darn important to people choosing where to work.
You immediately lost any credibility when you complained that the 2.4 GHz processor is the "same" as the one back in 2010. Clock rate has nothing to do with performance these days. Skylake is 25-35% faster across the board (and multiples faster for number crunching) than whatever Nehalem or Core2 was in the Macbooks in 2010.
I get though that it doesn't feel like Moore's Law type growth for system speed though, which is perhaps what people are hoping for. I have a hard time imagining that the 2016 model feels 16x as fast as the 2010 model.
I've got a 2010 MBP with an SSD, and it feels pretty much the same as my 2013 with an SDD, and expect this 2016 one to feel roughly about the same for most tasks (35% isn't a difference I'll notice for most tasks)
It's probably closer to 90% as another person notes, with far greater power efficiency. If that's not enough, feel free to complain to intel or alternatively, the laws of physics
If you expected shit to shrink linearly over time, our transistors would be occupying negative space right now. If you expected clocks to increase linearly, we'd need liquid nitrogen and shit would be full on behaving like waves. That is the reality until we leave silicon land.
This is the most self congratulatory self-justification I've ever heard. Really? Lazy man's track?
I'm sorry but if you're GIVING away your life for a company that you don't hold SIGNIFICANT stake in for a regular salary (even at 200k/yr) then you're the chump. Guess what, your time isn't endless. Your 20s-30s (hell, even 40s) will pass away. All you've done is provide free labor so some executive can cash in on his/her 7+ figure income.
This is not even considering the romantic and naive assumption that working 12-hour days will give you success. Or that "stress and success" are in any way correlated. Oh well. This is how tech companies lure naive people into such hours.
This is speaking from someone that's had 9-6 with lunch "lazy man's" jobs that paid 200+k/yr.
Meh, that group of developers didn't really die out. People tend to forget that there's tons of people still worrying about performance.
I personally do computer graphics in video games. We still worry about every byte, cycle, cache miss, and instruction that we write. We still spend days trying to eek out another 100 microseconds from that tricky piece of code.
Not every software developer is a web/business developer. Hacker News tends to forget that.
I develop thermodynamic code for the oil & gas industry. I count the number of divisions in my code. Because a division is a really expensive operation if you need to do it billions of time.
So yes, there are still a lot of people worrying about performance, but a lot of them are coding in Fortran and this is definitely not sexy. Ok, now we also use CUDA, so this can go through the HN filter ;)
Seems to me we oftentimes also forget the "not so outspoken" devs, that just tinker away, doing their thing, without announcing every fart to the world.
People doing great work, without putting themselves into the spotlight.
HN culture doesn't merely forget about them - in fact, it aggressively excludes them.
Brilliant assembler programmer who likes to finish up at the end of the day and play with your kids? Fuck you, where's your GitHub profile.
Developing novel algorithms and prefer playing guitar at home to drinking at the pub? Fuck you, where's your conference talks.
etc, etc, etc. The broader culture of which HN is a microcosm spends a lot of time and effort devising filters to make people invisible if they don't fit a relentlessly self-promoting profile which has a questionable relationship with the quality of their work. I don't see Knuth and Cutler spending a lot of time on Twitter.
We cannot read what does not get written. We cannot discuss the merits and demerits code that is not public.
I'm in full agreement that HN is an informational bubble. I'm not so clear on exactly what HN is doing to aggressively exclude people. And where you see exclusion, I see an attempt to encourage people to join the discussion: "hey, why don't you put this up on GitHub so we can take a look", "this would make such a good topic for a conference talk."
We programmers are in a strange place that almost all of our work is covered by copyright such that it can't be shown to other programmers. People can assess our output, but not look at our code. We can't build a portfolio and take it with us.
I spent the first twenty years of my career as an embedded systems engineer and there are two specific advantages I gained from that experience:
1) When your writing code for an underpowered microcontroller, you have a plan before you start. This plan includes execution speed and memory usage targets.
2) When you're sending thousands (hundreds of thousands or millions) of non-reprogramable devices into the field, you have a test plan (and comprehensive test suite) that guarantees correctness and performance.
Do you know your "machine"? For instance, if you're working with a language that runs on the JVM have you read the JVM specification? (It's the equivalent of your micorcontroller's data-sheet). The part of this manifesto I agree with is that you should thoroughly understand everything "beneath" your application.
>you have a test plan (and comprehensive test suite) that guarantees correctness and performance.
I value the work you do, but please don't imply that tests can guarantee correctness. Tests can never prove the absence of bugs! To guarantee correctness we need to treat programs as mathematical objects.
>The part of this manifesto I agree with is that you should thoroughly understand everything "beneath" your application.
Say someone (a full-stack developer if you want, or jack-of-all-trades-master-of-none) uses Photoshop and Illustrator but also is coding against Firefox, Chrome, and Safari, and their stack includes node.js, Express, Angular, and PostgreSQL.
At some point, you can't thoroughly understand every cycle of every rendering engine. (Which is what what you've stated implies.)
It is quite literally impossible - as in, a physical impossibilitiy, of "thoroughly understanding everything 'beneath' your application." You just can't - there are not that many hours in the day. You would have no application left.
If you froze technology today you could thoroughly understand all of the mentioned technologies in 10 years. But by then there would be new technologies.
Instead, you just have to abstract it away, code against some framework that compiles down to javascript, and only understand that. You can't thoroughly understand every single thing your databse engine is doing either.
Otherwise you can just never get anything done. The modern world is made up of applications whose combined reference materials total without exaggeration millions of pages of text. You just can't read a million pages of text.
This is completely different from a single microcontroller's architecture. Which is basically a single layer. On the web, even your target is a collection of competing browsers.
Why should someone building a front-end site but also using the basics of a database somehow, take months out of his or her life to gain a deep understanding of every cycle of that database engine or what exactly it's doing?
What does it get them?
Cycles - even billions of cycles - are cheap.
It's like asking a farrier[1] (someone who cares for horse's hooves and then puts shoes on them) to learn all the intricacies of metallurgy, really go back to where metal is mined in ores. Oh, and since, "A farrier combines some blacksmith's skills (fabricating, adapting, and adjusting metal shoes) with some veterinarian's skills (knowledge of the anatomy and physiology of the lower limb)" I suppose this farrier suddenly needs to be a complete veterinarian and really fully understand all layers of the horse?
It just doesn't work that way. At some point the farrier has to work with an abstraction, and not know what is going on at lower layers, and at some point the full stack developer has to just use an interface that compiles down to javascript that will access a database he or she doesn't know. While you may lament this, beautiful and functional sites have been built this way.
It's not fair to ask someone to fully understand everything. Even as a microcontroller coder, you didn't understand the circuitry in the microcontroller at an electrical level - you didn't even get the diagrams. You, too, worked with an abstraction.
I never said you had to deeply understand your tool-chain ... the use of Photoshop isn't at all relevant (though understanding the produced image format might be). PostgreSQL on the other hand becomes a lot more powerful the more you learn about how it works "beneath the covers". Of course there are limits ... I knew the timing of my microcontroller's signals but ignored details of the physics behind the microcontroller's implementation.
The first computer I built was a COSMAC Elf (based on an RCA 1802 microprocessor) - I didn't have billions of cycles so there was a limit to the work I could do. Now I do have billions of cycles and do my best to make sure there's a linear increase in the amount of work I can do.
<old-guy-voice>In the old days, we spent large amounts of time reading data-sheets, specifications and application notes - probably more than we spent writing software. What you're implying is that you're too impatient to do engineering but you're willing to be a programmer (or hacker).</old-guy-voice>
So I agree with the premise that we should be producing smaller, faster and less buggy software than we are. I don't think we need everything related to our systems - I certainly used ICE when available to avoid the code/burn/test cycle required using EPROMs.
There is (of course) a finite limit to what we can learn, but that doesn't mean we shouldn't want to know everything. One important skill is being able to discern what you need to know, what you need to understand and what you can safely ignore - this is hard. Knowing is also a choice. I can learn more than most because I don't watch TV or spend inordinate amounts of time wasting elsewhere (I have a few vices like HN).
The distinction you start with between stack and tool-chain is fair, so let's cut out photoshop and illustrator. However, the three mentioned browsers are certainly part of the stack, and the browsers are the ones executing the cycles of anything running in the front end, which these days is a lot. Nearly all projects are literally targeting all of these disparate browsers.
To cut a long story short: when you say "What you're implying is that you're too impatient to do engineering but you're willing to be a programmer (or hacker)" - this is correct. The only way for many people to get projects off the ground is not to engineer them, but just to throw them up.
By the by, I actually in a couple of spare hours toyed with the idea of formalizing this into a project, where we would teach some valuable skill in 15 seconds. (I applied to a YC fellowship with it but wasn't selected.)
I didn't write the tutorials up there now, and many of them are too long. But the idea is there: in a few seconds, you can often learn and incorporate something into your stack that you know next to nothing about.
Do this a few times and you have a complete web app serving dynamic, database-backed content - and you've still been able to focus on what you know rather than engineering.
There are 3 billion people out there who deserve to use some of the tools that are available. You, too, deserve to use some of the modern frameworks that are available. Without investing hours, days, weeks of your time into it. I know lots of technologies whose basic usage could be uploaded to someone's brain in 15 seconds of video. Git, to name one.
No, you won't understand how it works or why - but you can commit and roll back (reset), which is all anyone cares about until they start caring more. The advantage to using the git that you can learn in 15 seconds, over copying files and continuously renaming them - is - simply put, astronomical.
Many parts of the toolchain, and many layers of the stack, are quite similar. Who knows what cycles MongoDB is running? Who cares?
"Learn X in Y minutes" is an awesome concept! Let me know if you ever decide to run with it. I guess I don't fit the CoffeeScript is a hipster language profile very well but I still enjoy writing code in it ;)
I basically agree with everything you've said (in both posts) ... you can be successful while wasting cycles. And if you're working on a low-volume and/or internal only application, you'll probably never face the limits of a modern server.
If you need to operate "at web scale" [1], or run into an uncommon (or common) bug, you'll need to know more about the frameworks and systems you're code relies on (e.g. MongoDB configuration for systems over 2GB [2]). Blog posts like the one referenced are completely unfair to those that developed MongoDB - read the manual and understand how MongoDB works OR use it at your own risk.
So I'll switch arguments and help you make your point. We have an application written in Oracle's Application Express - while we have extensive expertise in Oracle's database software, we have this one system which was completed for expediency's sake. It's kind of horrific but (mostly) works at the scale required. It would be financially foolish to dig into more deeply into ApEx for this one dead-end application. Everyone is happy.
Thanks for the reply! (I didn't actually build those tutorials, i.e. learn x in y is another person's site, like I said I only spent a couple of hours on the concept of a site like this and the current tutorials are external. I did add the time analysis.)
I like your final example - and remember, you guys are Oracle experts: you're the most qualified people on the planet to learn ApEx properly from scratch, even though you haven't.
Now switch gears and imagine a college student who just has an idea for some cool project, but barely codes in any language. This describes the computing needs of 3 billion people. They're not qualified to quickly become experts and engineers at anything. But they still have a computer in front of them that does a trillion operations every few minutes. The gulf between using that to surf facebook or building... anything at all, even very poorly, is immense. (Like git that you can learn in 15 seconds, versus manually copying and renaming files for version control.) Thanks for the encouragement.
You might be surprised at the depth of knowledge your average Farrier has about both horses and blacksmithing. They might not have a degree in metallurgy, but you can bet they understand the crystalline structures of iron, and how to use that to their advantage. You can also bet on them knowing more about the hooves and related structures of a horse much better than your average vet.
The problem with your hypothetical worker is a lack of depth into any one topic. If they're half artist and half front-end developer and half back-end developer, of course they're not going to be able to get into great depth on any one topic.
I firmly believe in the value of such a Jack-of-all-trades, but I'd be silly to not value the full time artist who can create better works in a third of the time, because they understand their tools and their craft.
Yes, it takes three times as long for a jack of all trades to draw something that is a tenth as good as what a full-time artist can do in minutes.
A tenth as good isn't good enough. But on the web, for many parts of the stack, a tenth as good really is enough. Even using too many cycles by a factor of three orders of magnitude is still good enough. You just don't need to know.
I agree. The fact is that I can now build a database and front end as a team of one. Ten years ago that would have needed a team of maybe 5 developers. Abstractions slow things down at the computer level, but bring a great deal of developer productivity. As always its a tradeoff.
"Also be aware that this page is large and is meant to provide a lot of important information. It is not for the tl;dr; (too long, didn't read) set of people with minimal attention span. It contains lots of that scary thing called "text" and "information". It is assumed that you can make use of the education you have been provided with that allows you to read and comprehend what has been written."
I rolled my eyes at that one. This is an example of the pretentiousness and snark directed at users that people complain about in open-source projects; especially Linux-related ones.
I have a habit of looking through comments before I go to the linked website. This is because of two reasons: first, I don't trust titles and want to know a bit better what is on that site and second, unfortunately, reading comments is often more entertaining and provides much more content ('text') than the site itself (I enjoy reading large amounts of text... I know, I'm weird).
There are direct quotes in comments sometimes and, sometimes, after reading them, I don't want to visit the site anymore.
This is not the case.
Whoever wrote what you're quoting made me feel like he wrote it especially for me. He managed to describe one of the worst problems that, in my opinion, Internet has and he promised that this problem won't be present on his site.
I'm grateful for this quote. Thanks to this visiting the site suddenly become my priority and I feel that I won't be disappointed.
And this reply is a great example of the entitled "the authors must coddle my particular insecurities and do what I want with their volunteer time" bull crap that turns so many people who want to just write themselves some software away from keeping their project up to date.
I don't think that is a good excuse for being rude. Sure it's their project they can do what they want. But if they have any desire of attracting users that is not the way to do it.
To define accessible, you must first define your target audience. Is it so horrible that someone is developing software for linux and isn't targeting some mythical 'computer illiterate grandmother' user?
However, having an abstract if you are going to present lots of information is definitely always good style. The scientific community require them on all papers - to help people decide if they should bother spending time to dig into the material or not. Not to make the material accessible for grandmothers.
And I think in the case of a complex piece of work like E17, that a simple 'what has changed since E16' list somewhere might help people who have already understood the Enlightenment way of working to get up to speed.
They have no obligation to give you a tl;dr summary. Expecting users to be educated and be able to consume information is a reasonable expectation in a civilization.
It is also an example of the stuff that these particular unpaid volunteers, working on their own project for fun for years on end, wanted to write.
Open source projects are not always about marketing, adoption and being friendly to everyone. Heck, this particular project didn't even have a stable release for over 10 years...
Obviously as unpaid volunteers they're not obligated on any level to be polite, neutral, and professional. But that's not the whole point.
There are two ways to deviate from a neutral, professional presentation. You can be snarky, mean, or just plain evil (negative), or you can be silly, colorful, and nice (positive). Each of them breeds more emotions of the same kind - excepting those who would wish for a professional presentation, regardless. I want to live in a world where everyone would wish only to breed positive emotions, or none at all.
Samsung is backing the development of the EFL libraries behind E17 for the Tizen (http://en.wikipedia.org/wiki/Tizen) initiative. Possibly a hedge against Android.
On a similar note: I recently watched the movie "Act of Valor". I had no idea it was one big propaganda piece before I got in. As soon as the movie started I thought "Yep, here we go. 110 minutes of pure army PR".
What I thought was more interesting were the comments on the reviews on Rotten Tomatoes. You can check them out for yourself here: http://www.rottentomatoes.com/m/act_of_valor/
It is a shit movie; no doubt about it. What I find interesting are the comments on the reviews that the critics gave.
Critics of course correctly pointed out how this movie is basically an advertisement paid for by the Navy. However, any critic that dared to give a bad review or even mention the word "propaganda" was attacked by countless posters that were shouting how he is a "damned liberal" and how the soldiers "die for [him] everyday to protect [his] freedom".
I do not understand the glorification of soldiers and I probably never will. War is a horrible, horrible thing. Soldiers are professional killers. As Voltaire said: "All murderers are punished unless they kill in large numbers and to the sound of trumpets"
There is no glory or honor in war (more specifically the current situation in Afghanistan/Iraq). The soldier sure as hell did not die for you. He most likely died protecting his comrades that he has been living with for the last 4 years. The soldier probably doesn't even give a shit about you. The Army is not defending America's "way of life". Terrorists do not hate you because of your "freedoms".
As a Canadian, I really don't understand why my opinion is so frowned upon in the US.
This is a sentiment I also have had a hard time sharing and even understanding. The adulation and worship of the military that has risen in recent years is a strange bird indeed.
It's essentially unpatriotic to not consider every single service member a "hero", or fail to thank them for their service. It doesn't make sense to put the military on an unrealistic and imaginary pedestal.
You say this in way that seem to mean that for you education do not "pay". But I really don't know how one could affirm that education do not "pay".
Heavy focus on deep, large, long and high-quality education to their offspring is the most important reason, if not the only one, for elite people to stay in the elite. It is also the most rational explanation to why some people are often perceived as more successful than other, eg Chinese and Jewish.
It is easy to come up with counter examples of some guy who did not have the best traditional education cursus and did manage to be successful despite this. But exceptions are not the rule. The mainstream, average rule is that people in power have had good or excellent education.
So this little chart about "education pays" is just a confirmation, among others, to a well-known fact. It has a lot of shortcomings, and shortcuts (like using the income as a measure for success) but it is some value, at least as a reminder.
NB: I may seem hot on the topic. Yes, I am hot on this. Why? Maybe because I live in China, where I see everyday a lot of people who struggle extremely hard, save each yuan they can, in order to push their offspring to the best universities.
What is not clear to me is why people with degrees are always trying to promote that others also get degrees. The exclusivity of the degree is what makes it interesting and valuable.
Not knocking the education component, education is always a good thing (whether it comes from school or some other avenue), but the perception of success you talk about is because it is still somewhat of an exclusive club; probably doubly so in developing nations. However, thanks to the pressure on students to go to college, that gap is continually shrinking and constantly devaluing the value of the degree.
If you buy a Ferrari, you are perceived as more successful than others. You are going to be afforded luxuries that others do not have, just because you are signalling that you are "better". If we did some studies, I bet we would even find that Ferrari ownership, like a degree, pays – through better contacts and opportunities to make money because of the signalling. But I don't see Ferrari owners out there telling everyone that they need to own a Ferrari. They understand the importance of being part of a select few.
If education pays, you would think you would want to keep that under wraps. Given that, it always feels like there are some insecurities at play every time the topic comes up.
I realize this post is a little tongue-in-cheek, however, you cannot use it to draw any meaningful statistical conclusions. This data makes no sense until you factor in the relative popularity of these languages on Github.
We don't know if PHP has little swearing because if it is a great language, or if PHP is rare on Github. Similarly, the reason Javascript and Ruby score so highly is most probably due to the fact that they are extremely popular languages on Github.
I don't think it really matters. It may be that PHP developers that swear a lot don't use Github, or that Ruby developers that don't swear use Bitbucket, etc..