That doesn't conform to my experience (European / working in the industrial sector / hiring developers but not a developer anymore myself) at all.
Pay is mostly based on the sector you work in and the origin of the company you work for. You will have an incredible salary if you work for an American web company especially a big one. You will have a fairly good salary in finance which might become an extremely good salary the closer you get to trading. Meanwhile, some of the guys working with me were experts in sensors fusion, embedded development and highly available systems with decades of experience and were paid peanuts (that was in the defense industry). They all stayed out of a mix of loyalty and the conviction they wouldn't find something as interesting somewhere else (probably right founded from what I have seen).
Meanwhile, I left and am now making double, in some cases triple, what some of my old coworkers are making, all because I'm in a hotter industry infused with VC cash, not because I'm any better.
And I absolutely miss it and understand why some of those people don't leave. The problems you get to work on and the access to classified data and close collaboration with so many world class research laboratories is unmatched. You'll never get that level of intellectual engagement working for a web company until you're in one of the handful of moonshot programs staffed by PhDs, but you will get money, so I chose money.
There also seem to be some areas where highly skilled workers will take a pay cut to work on something they love. This of course leads to lower pay in that field. A common example is the video game industry.
Your previous job sounds like it might have been affected by both lack of a money printer and lots of folks who take lower salary because they love the work
Specifically, the point of geointelligence is we're trying to gain a long-term strategic advantage over all other enemy and competitor countries. To the extent we succeed at doing this, the government itself doesn't earn a profit from it. Everyone else does. We try to tax them in order to pay ourselves, but people don't like taxes and they frankly don't understand the ways in which spycraft is benefiting them because all that ever gets publicized are our failures. When what we do works, you never hear about it.
Absolutely bullshit also designed to turn workers against each other to the ownership class's benefit.
We live and die by the quality of each other's abstractions. If everyone is writing shit, I can go it alone 1980s nolstagia style, or swim in molasses. If everyone else is writing excellent libraries, I am flying with a jet pack.
There is definitely attempts with certain bootcamps, anti-intellectual languages like Go, to beat programmers into submission. The "superstars" may do fine in the short term, but will not survive this trend long term.
Meaning...?
I generally agree with your class argument but don't see how Go fits into it, nor what an "intellectual" language would be.
I'm not a huge fan of Go (more of a Python/Rust person--to promote my bias) but I can't think of how it would be "anti-intellectual" (either). The statement was way out of place.
How can we tie compensation to ownership?
We've seen software die as the abstraction falls into disrepair. There's a huge numbers of frameworks to try and solve this, WINE, Dosbox, SCUMMVM, Dolphin.
Flying with a Jetpack is great until it runs out of fuel
It's all down to how well you are able to market yourself. Granted possessing actual competence makes that easier, but really, the world is full of competent, smart but not particularly pushy people who get ripped off.
Technically savvy folks with a low influencer score may get paid less.
Technically savvy folks who do not negotiate well may get paid less.
The modern market rewards folks based on their "basked of skills".
I'd say superstar is probably 10 years minimum of experience. And even then it doesn't just come to a person. Most will forever be mid and that is ok
I agree that the pool of superstar devs is tiny.
But it sure as hell takes years of experience to achieve certain status
I doubt there are many superstars under the age of 28 minimum
https://resources.sei.cmu.edu/library/asset-view.cfm?assetid...
> Focus only on Programming Effort (limit the scope)
> This is for small programs that should not exceed normal capability
Yes, when you eliminate most of the sources of variation, there is a lot less variation. The most efficient developers aren't more efficient because they churn out boilerplate code faster.
Those skills are often tied to specific domains that are not quickly transferable so what talented engineer A does efficiently or makes them a superstar is specific to engineer A. Talented engineer B probably does something a bit different or has their own sets of expertise they're superstars at.
There are a lot of misguided organizations hiring on the wrong premise though, that there are developers who just churn out implementations at 10-100x speed so they can reduce their workforce. What they should focus on is engineering talent that makes sure they're tackling the correct problems and focus on the right solutions to those problems as opposed to something silly like developer velocity.
Well, not really but maybe 1/2
He talks about the data processing framework he built that's ingesting "hundreds of terabytes, approaching a petabyte a day".
New technologies let small teams do tons of work.
Let the employer know how much you want the job. Know the details about the company. Practice answers to questions. Treat this like you’re training to win the US Open. You would be surprised how little effort most people out into preparing.
Also keep in mind that you won’t get every job you apply for and it might not even be your fault. When hiring managers are building a team they may be looking for a specific “personality or subtype” to fill out the team. Where If they had multiple head counts they would probably hire you but are holding out for the perfect fit.
My first job was 50k/year and I lost money just by getting to work (gas, fees, parking, etc). Told my boss and in 6 months I got a >50% raise to 80k/year + stocks + parking space.
Next job was 120k + stocks + remote for a company in the valley.
Each job hop will net you a pay increase similar to this. It'll also give you new perspective on software engineering.
My email is in my profile if you want to discuss in more detail!
People who are really good can recognize each other.
At some point in the interview process they'll sit you down in the room with a couple of their other really good people, you'll "grok" each other and be hired. (If that never happens, decline the offer, they have no one and no clue.)
Those places are rare. But for the majority, my tip would be:
- Get comfortable with a couple of languages, learn good style, and get familiar with the toolkit.
- Learn the fundamentals of CS.
- Commit to some side projects.
- Seek out internships/work experience
- Do fairly well in school.
- Learn teamwork and soft skills.
I don't think any single/individual point above is enough to signal "awesome developer", but the sum of them will surely correlate with high potential.
Small trivial projects on github profile do not count for much. Contributions to some established OS project are great.
The upper end of the biglaw salaries was capped because of an unspoken "cartel pricing cap". Big law firms don't want to compete for the upper-echelon talent.
Not sure if tech companies will be able to informally collude in such a manner to cap the upper end of the bimodal curve.
[1]https://www.cnet.com/news/apple-google-others-settle-anti-po...
It was basically a death-march to see who'd stick it out long enough. Only a few would make partner anyway, so they needed to shed a lot of people to make their cost structure work, and so they'd work them into the ground and use who stays as the selection method at the lower end.
The location based pay argument depends on if you're an average or superstar employee.
Average employees (e.g. building CRUD websites) will get location based pay because that's what the market dictates.
Superstar employees, people that are unique on the global scale, will get superstar pay, regardless of location. In the Spark world, there are few people that are able to understand the source code, optimize Catalyst plans, write huge data processing pipelines, etc. These types of employees won't see location pay adjustments.
Basecamp pays superstar rates for superstar employees.
Factory workers that perform "routine functions" earn location based wages.