- A culture of burnout (really, really bad death marches, mostly because upper management had fucked up by dithering about what products to make)
- A lack of respect for engineering quality (when the build for your project is broken for weeks at a time, you'd expect management to get a clue -- I mean, what are managers for? -- rather than ask about how things are going with the schedule)
- A lack of respect for your time, realized as a reluctance to buy equipment (I got my build times down to two hours, from four hours, by buying my own computers. Yup, I probably spent $5K on computers while I was at MS because my managers didn't see the benefit in buying faster hardware), and by scheduling tons of nonsense meetings.
- Politics (oh God, the politics). MS needs to fire about half of its "partner" rank people. There are good eggs there, really smart people, but then there are the ones who . . . aren't. (When they do get around to axing half of the partners, I'm betting it'll be the wrong half).
A year and a bit later, I'm at a place where they realize that the most valuable thing is your time, and equipment is Not A Problem. It's a great thing when you're the bottleneck.
Let's say that a "good" desktop computer is $10,000. Just load the thing with enterprise scale SSDs, fast spinning disks, CPUs, RAM and so forth. I think you'll be hard pressed to spend that much on something that you'd want near a desk. (I'm assuming that you've already bought the developer the two or three large displays and a decent graphics card).
Let's say this gets builds down from 4 hours to 1 hour, and a developer has to do a build like this on average once a day. At $80/hour, this takes 42 hours, or maybe two months (spread out) to breakeven.
By NOT buying your developers great machines, you are costing your company money.
"But that comes out of a different budget!"
Who cares? The shareholders (who the management chain proxies) should be delighted that developers have faster machines.
Of course, multi-hour builds are nonsense, too. MS has a whole cloud infrastructure that they should be leveraging the crap out of, to make sure that developers are the bottleneck again. I'll bet they could get Windows to build inside ten minutes, if they put the right people on it.
The CTO, who was a generally amiable guy, said "No, no, I get it, America is a capitalist country, you guys don't value loyalty" (he was from another country). I have never been so thoroughly insulted by what was probably meant as an innocuous statement. He told me he had to talk to the CEO about it. They stalled and stalled and the HR guy told me I should 'worry about learning more, don't worry about your salary'. Finally I confronted the CEO about the delay. He told me he needed to run it past the board, and that I would need to go through a two month 'trial' period before they'd authorize it. Little did I know he was himself half the board.
This entire time there were posters up in our kitchen offering $40k to people who could refer 4 developers. But my piddling little raise to market was being stonewalled because they felt they could get away with it.
I am still angry with them because they essentially forced me to go looking for another job, despite my absolute devotion to the team. I almost instantly got an offer almost double.
Disrespect and exploitation are absolutely prevalent. You can ask for a raise, but you'll never have leverage until you have an outside offer.
Um, no, it was not innocuous--that was your misread. Invoking your loyalty in any context other than purely positive is an "out the door" flag no matter the culture.
That said, while I've worked for some really cool companies, with excellent contact with management, usually the way to get a raise was to get another job. (And usually I was ready for a change anyway; I shouldn't stay too long at the same place, no matter how much I like the people and the company.)
I still consider that company a nice place to work for, with nice people, but the work itself was unfulfilling and the pay very poor.
I'm sorry for your story. I feel the same about the industry. When you're young, job hopping is pretty much the only way to get your value, and it will let you see many different places.
And when you have the outside offer and talk about it, you shatter any remaining trust your bosses have in you, so you'd better take the offer.
Does anyone have any solutions to it?
99 times out of 100 they will resent having their hand forced, and you'll be first out of the door when they get a chance.
The solution is for management to not be cheap.
If they are too busy to make sure I'm not having to question my value, I would rather find another employer that may not have this issue.
Having said that, money is one of the last things that cause me to leave a job. If I enjoy what I'm doing and the people I work with, it usually doesn't matter (as much) what raises I receive.
I also recognize everyone is different. This is just my preference and what works for me.
I had a conversation with a friend very recently about how our company handles counter offers.
"They don't believe in counter offers."
"Don't... don't believe in them? What's there to believe in?"
"That's what they say."
"That's the dumbest thing I've ever heard!"
"I dunno, it kinda makes sense to me."
"Well, the reasoning is if you're only there for the money, then why would they want you?"
"It's a JOB! Of course I'm there for the money. Otherwise I'd be doing it for fucking free! What if the money is the only thing keeping me from fucking leaving?!"
"Hm... yeah, that's a good point."
I don't know when or how one's passion became some sort of counterpoint to their compensation. Just because I love what I do doesn't mean I don't deserve more money. It means I'm lucky enough to be driven far beyond most, and endowed with a greater amount of ability, and thus a rare and valuable member of the team.
Oh you can't do that? Right, so money IS important then..
Yet they expect nearly every one else shouldn't have any financial expectations at all.
And yet, when I've worked there for two years and learned a lot and did some good things there, and I still haven't gotten a raise, I don't feel appreciated. And when I don't feel appreciated, I look for something else.
1) Cost of Living
- This can change bc of higher rent, getting married, having a kid or a million other things
2) I'm unhappy about something else
- When I have another issue with my work, it often leads to what many people have said in other comments..."I'm not paid enough for this" which can take many different forms. Addressing this is much more important than whatever financial increase you do or do not get in asking for it.
- If you find out all your peers at similar stage companies are paid more than you, or that your coworkers are, you'll probably want a raise.
In my experience, #2 is actually the most common that leads you leave and even if you get the raise, a manager needs to make sure they treat the condition (whatever is bothering you) not just the symptom (I want more compensation for my work).
If that kind of interaction makes you uncomfortable, I guess you probably should go find another job since you might not have a great relationship with your company.
I (personally) feel that there's an implicit understanding with my employer, wherein my above and beyond efforts will result in increased compensation. If I feel like I've been clearly outperforming my compensation level and that's not recognized, I'm more likely to search for a new job than to ask for a raise, because my current employer has already failed to meet their end of the bargain.
In a well-run shop, managers have a very good idea as to who is worth what, and how much the company stands to lose if they lose good people. Staying one step ahead of this curve is a fundamental part of their jobs as a managers.
Obviously, the rules are a bit different in an early-stage start-up where the founders are doing everything at once and hoping something connects. But once an operation has hit cruising altitude, you really shouldn't have to ask for a raise if you're actually worth what your asking.
Your expectations around compensation should be based on explicit not implicit understandings. Making assumptions about how your emploeyer is going to make decisions about your compensation is not only likely to lead to disappointment, it's a poor way to maximize your salary if that's what you're interested in.
Most startups will hire (or push for hiring) a "senior person" at the "maximum rate allowed by the board". This includes a mix of stock/yearly comp.
Depending on hiring circumstances you can potentially push this. If there is a need, the will find a way to make things work out.
Once hired, from the employees perspective, it becomes a game of maintaining expectations. Unfortunately for the employee, in the case of startups (especially early), the expectations are quite high and any extra effort is tied in to the initial offer/hiring agreement.
Early stage startups are a gamble. There are often unexpected twists and turns. If you agree to X and Y at time T, three months down the line, the expectations at time U may be much greater.
As a non founding employee, your initial contract starts when you join with the expectations around the company when you joined. Carrying those same expectations along the way if the company is not growing in the same manner as you expected is a detriment to yourself.
When you realize this, it is time to re-evaluate and decide what is right for your current situation.
Does if fit your initial agreement? Then maybe you continue. If it doesn't, you need to consider renegotiating or looking elsewhere...
And people say jumping from job to job looks bad. If it does, I sure as shit haven't seen that side of it.
Some companies are willing to keep up, because they don't want to replace employees, but for most, it's cheaper to hire someone underpaid for a year or so until they jump ship, then repeat.
Sometimes they are actually trying, if the problem is internal politics preventing paying staff properly, but more often they're hoping you'll either forget about it or leave instead.
a) They don't value the work I am doing.
b) I am not doing work that is valuable enough to be noticed.
Both options mean it is time to look elsewhere.
That sounds like the kind of job hunt that puts you into the exact same position of frustration.
Honest question: have you quantified your value to your current employer in dollar terms?
A lot of people I know say they're worth $x because that's what another company might pay them, but I can count on one hand the number of these people who actually did the math on how much revenue/profit their employer derived from their work.
I made 65,000 per year for four years. What do you think I should have made, money-wise?
At my current gig, same thing. Billions of dollars at stake, and I single-handedly design, build, deploy (one-click -- the power of scripting) and maintain systems used by over 1000 people, from executives to line workers. What is my true worth to the org? Do you think they would pay be $900,000 a year? Even at that rate, they would still make money off my work.
Start your own business and keep all the profits you earn.
This leads to why small businesses are hard: the owner has to do everything themselves, and at many things, they are bad.
At my current company, I give the car to the free valet in the garage, grab a cup of tea, walk to my desk and sit down and work, without worrying about all the infrastructure stuff.
True, but more importantly, before all of that, they made something people want to pay for and acquired enough customers to pay for that shit, and for lots of salaries too.
That's a good accomplishment, unless they're part of some government-supported cartel etc. There are plenty of those too.
The value to another company, whilst interesting to see if you're at the right place, doesn't necessarily help figure out your negotiation position if you'd prefer not to move.
Others reasons being: freedom to experiment, work culture, flexibility, and being respected as a person not just as an employee.
The minute you enter the realm of "counter offers" you have more than just business interests at play.
It's a silly thing, but sometimes you have to leave to get what you want, even if you shoudln't have to.
Your job security = value to you add to the company - what you are paid.
Make sure it is 0 at all times. Or have some written assurance from the employer (such as stock options) that the meager pay now will be compensated for later.
Realistically, you're going to end up with some small ROI. Let's suppose you end up with a 1.05 ROI for the company. For every dollar the company spends on you -- not just your salary and benefits, but also the cost of a desk for your butt and a manager for your ass and an HR department to cover their behinds when you start thinking too much about your coworkers' -- then they make a $1.05 back. If your company's owner has a hundred employees, he'll make five times as much as you, for doing nothing but owning it. If they employee ten thousand people, he takes home 500x your pay.
Why do you think your employer deserves more? Why should he get a 2x or 10x ROI on your labor?
For all the years he ate pasta. But that doesn't mean you don't deserve your right pay too.
For any positive value of Z, there will always be another employer willing to hire me where Job Security = Z1. Z1<Z. Thus in a good market the value will tend to zero.
You are mistaken to think that Company's profits is a the sum of value added by each of the employees. I would say company's real profit should be the additional value generated because of synergy between the teams. For example few ordinary individuals can deliver extra ordinary results as a team.
But I disagree with tn13 too - I'd try to extract X^2.
Show me with mathematics and empirical evidence that chongli is wrong. I can take it, I know an awful lot of math...
Say I'm in the market for a babysitter. If the market rate is, say, $18/hour, and I hire someone for $18/hour, I'm not abnormally benefiting from a low salary, yet I'm perfectly okay with that because I need a babysitter. The rate at which I no longer want to have a babysitter because the benefit they bring is cancelled out by their salary may be much higher than the market rate, because the market rate takes into account other potential babysitters.
In short, market rate is not the rate at which employers can no longer profitably hire, but simply an equilibrium price point that balances supply and demand. Assuming a reasonably well-run company, the price point at which they are better off not having you or anyone else in your position is much higher than your market price or worth.
If that's not the case and your production is separable from the rest of the system, that does set a floor for your market rate because you can just do that on your own and keep the money instead.
Also, comp isn't a "little thing" to your employee no matter how much they make - it defines your role both inside the company and outside, measuring a developers skill and throughput is an extremely hard thing to do, comp is often the only thing you can really use to define your worth.
Correct me if im mistaken but that was sort of the intent of the post, to put at least as much effort into retaining staff as you do recruiting. Or did I misunderstand it?
I see my self as pretty average but probably ahead of most the pack developer yet I still get a constant stream of recruiters "touching base". If I feel stagnant or neglected eventually one will say the right thing to get me out the door or at least start looking around for somewhere new to learn.
In SF/SV it is entirely possible for an employee to state "I'm not being paid what I'm worth" when, to their current employer, they are actually being paid more than what they're worth. The fact that their value varies from employer to employer is something that I think a lot of employees miss.
Employees who want the biggest bucks should go out and get them, but the idea that companies are undervaluing/underpaying their employees just because they're not paying what Company X, Y and Z pay is one of the worst delusions in SF/SV right now.
And I'm not sure what this has to do with anything - within reason and all else equal, employees should go work in environments that maximize their value.
I need to call BS. Just because your business model can't justify paying engineers two years out of college a $120,000/year salary doesn't mean that you don't have a profitable business. It's okay if your business model isn't as profitable as Google's. Heck, a lot of the companies that are paying market salaries have no meaningful revenue o even a business model. They're investor-subsidized.
"employees should go work in environments that maximize their value."
A lot of people work in "environments that maximize their value" and they're miserable. I have friends who make half of what they could make in SF/SV. You would say that their current employers aren't maximizing their value, but most of them own their own homes, live very comfortably and are home by 5-5:30. I don't know many $120,000/year+ engineers in SF/SV who can say that.
A lot of the high-paying jobs in SF/SV that are compensating employees at their highest theoretical value aren't as glamorous as the people who have caught the grass-is-greener-bug would like to believe they are. A lot of the people in these jobs trade whining about salary to whining about the hours, the lack of interesting work, their crazy/incompetent boss, the fear of funding running out, etc. etc. etc. Pick your poison wisely.
Uhm, by definition, no. If your business model requires a resource for which the market rate is higher than what your business will sustain, you do not have a profitable business. I could have a very profitable gold selling business if only I could buy gold at 50$ per ounce. Which I can't, hence it's not a profitable business.
I run a dev shop in San Jose. I hear all the time that the "market rate" is a good 40-50% higher than what I pay my engineers but I have all the engineers I need. Are they the best engineers in the world? If we're talking about pure talent no, but we're not doing anything exotic. We build modestly complex web applications for enterprise clients.
Have I lost engineers? Yes. In the past 3 years I lost 2 of my favorite employees. I was disappointed but it wasn't a surprise and I supported their decisions. They were superb engineers and I knew that they would one day go on to do great things. It wasn't just an issue of not being able to match the salary of a publicly traded tech company. These engineers were destined to work on the type of things we just don't do here. So why would I want to hold them back?
On the flip side I have one engineer right now who I know is looking to leave. He told one of our other employees that he's unhappy with the pay and thinks he can get a better job at a big tech company. Guess what? I heard about this 8 months ago and he's still here. I know he has interviewed elsewhere but you see, for every engineer who can get a $$$$ job at a tech giant or rocketship startup there are 50 engineers who THINK they can. And then they find out they can't.
There is no shortage of engineers. The big names often get 100s of applicants for every open position. But you need to be really, really good, not just at your job, but at the interview process. The interview process at some of these companies is so difficult that a lot of very good people get filtered out.
So I have no problem finding engineers at "below market" and still manage to deliver good work product to our customers at good margin. Apparently I'm doing the impossible!
ok... You may be worth more to them. You may also be working 50% more hours, and you may also be getting paid daily, and not getting benefits, social security contributions, and the like.
IT's very frustrating. Ultimately I try to screen for "Money is the most important thing in my life" during interviews, and then if I have folks like this working for me, I encourage them to chase the better dollar.
You can't stay in business chasing the best offer away for each and every employee.
When my best engineers want to move on to bigger and better things I support them. It would be nice to keep them of course but I'm honest enough with myself to know that I don't need the type of engineers that can get a job at Google.
My retention rate with my "adequate" engineers is very high. Most of the ones that I know have complained about money find out that it's one thing to see jobs that pay $$$$ and another thing to actually get those jobs.
Other times it's not as easy. Even if the low pay is because of a lack of money, if management keeps hiring cheap, and then you're surrounded by undergrads that have no sense of responsability, then the ship is clearly sinking, there will be no money in the future and your coworkers make your work less by not caring and leaving things half done. In that case, run away as fast as possible. Maybe you're not being intentionally disrespected, but any sense of respect for you, your talent and your work has faded away.
It's actually one of the red flags of a poorly run company. Product might be great, team might be great, but a company is run poorly at that point.
Compensation analysis and adjustment should be a clearly defined process, posted somewhere on internal wiki, not a one-off thing that gets initiated by an employee out of the blue.
At what demand/supply ratio for developers would you be willing to ask - 5:1? 10:1? never?
Only once in my career was I called in to my managers office and told I was getting a raise - and that was around 1991.
Manager: "We're adjusting your salary."
Me: "Um, up or down?"
This is the best advice I can give any software engineering firm. I've left companies large and small chiefly because they waited until I gave notice to bring my salary in line with my performance. If you have a top engineer and haven't given them a raise in 9 months, they are seriously considering their options.
A lot of people act like compensation shouldn't matter. All the senior people in your company care VERY MUCH about their compensation. If you become good friends with them you will see this very clearly.
You deserve it just as much.
I am shocked, so many people who don't realize this.
There are people out there who say money doesn't matter, and they want a 'great place to work at'(whatever that means).
Well the execs themselves continually spew this BS about how evil its to work for money. Yet they wouldn't follow the same advice themselves.
Otherwise wait for your performance review. If you don't get one, ask for it.
"That's very disappointing to hear that we're struggling so much as a company. I was (hoping|expecting) for X.
Is there any advice or direction you could provide to me where I might help ensure we do better as a company going forward? I'd like to set up a plan of what I can to help and revisit compensation in the next 1-3 months."
And at the same time, start polishing your resume and interview skills.
I would think of this approach as a probation period for any company that I work for. If an employee isn't doing well, they're put on probation. Why not do the same for any company that is vying for our technical abilities?
If they're doomed and / or you don't trust them (i.e. does it seem like the managers also subject to low pay?), start looking.
But if you feel like the company can afford it and they're just shutting you down, the proper response is, "Seeya."
Are you the reason the company had less of a rough year than they could have had?
Either way, find yourself a company that isn't having a rough year.
The reason it seems like they never stay is that they don't talk about the offer they didn't accept. The negotiation happens over the course of a few days, and they don't mention it to the other employees. So there's a big bias in how frequently you hear about the negotiation. Whereas if they leave for another company, of course everyone knows about it.
Despite the advice above.
There are many factors to "an offer", for some money is important, for others support for built up work habits (odd hours) may be another. That said, I think the initial advice of the article is spot on -- stay engaged with your employees.
The last three times I've left a company, it was either a surprise or a shock. Twice bonuses promised were over due, the third, slave pits that founders refused to see (previously commented on).
If, as in your three cases, the employer has clearly failed, then the employee is in a position of strength. They probably don't even want a counter offer, as they are already resolved to leave. If the employer is surprised, it simply further illustrates the problem and validates the decision to leave.
From the employer's perspective, if the employee is just trying to leverage better comp opportunistically instead of through merit, it's also unwise to match or beat the offer. In my experience, this only tends to happen with younger, inexperienced people who don't have a long view of their career.
Either way, my policy is that when a person leaves, that meeting marks the end of their tenure at the company. Pay them for the two weeks notice they are always willing to give, just as if they were still working, and make all honorable accommodations. But once someone has resolved to leave, it's just better for everyone if they weren't around for an extended farewell tour.
This is often very difficult policy for managers, because they fear that a person is indispensable and will require the full notice period to train up replacements. They worry about the disruption to the business that it would cause. But if that's the case, it simply highlights another management failure. I'd rather take the business disruption, which gives my team an opportunity to shine, instead of the cultural disruption of having someone there-but-not-there, anxious to move on.
It's common for employers in this industry to feel so entitled to your labor that they feel betrayed and hustled, categorize you as an uppity liability, and have to re-establish face with aggressive moves.
If asking for a raise isn't enough to get it and you can't offer a specific marginal-value carrot in return, the only leverage you can develop is another offer. But it's too big a stick - you probably aren't just going to get another raise without causing hard feelings and inviting retaliation. You wouldn't try get improvements out of an abusive relationship by letting your SO know you had options.
The only way you can build a mutually better deal, including a better salary, is if there is justifiable trust. Employers can earn that trust by fair dealing - like paying fairly well before we both have to deal with nags, demands, and sales pitches.
Employers who can't earn their employees' trust have shown failures of leadership and deserve to be walked out on.
In most cases, I don't even try to counter, as it's usually pointless, but in those cases where I do make a counter-offer, I'm doing it intending to keep them in the fold "permanently" (3+ years, ideally longer).
Anyone who responds on HN claims to behave in an ideal way, but if you took this for an indicator of the industry you'd be surprised almost immediately - whether because these claims are often untrue or simply because the people making them are so unrepresentative.
Suppose Abel is working for Manny; Abel gets a better offer and tells Manny. Manny decides to counter.
In order for it to make sense for Manny to counter and plan-to-fire Abel, he has to be planning to hire Baker to do Abel's job, but wants to keep Abel around a while for stability and to on-board Baker.
That's enormously expensive and risky compared to just paying Abel more in the first place or to just counter-and-keep Abel. If the job is that critical, pay Abel. If it's not that critical, just let the job stay open until you hire Baker.
Taking on the severance costs to fire Abel later (and pay higher UE insurance) just to "get back at him" is self-defeating more than it could possibly hurt an employee who has just today proven he could get a higher-paying job. So, where's the "win" for any rational Manny?
The epilogue to his story is that most of the team he built worked for Sam, not the company. Within six months the team had disintegrated, with almost all of the senior staff having moved on after seeing the way Sam was treated. Frankly, any management worth their salt would have seen that one coming way before cutting Sam loose.
The lesson here is that even though its against their own self-interests, the counter-and-fire thing happens, and probably more frequently than not (though a single vague anecdote does not evidence make, I admit.) I think any engineer who thinks they ought to be making more should ask for it. But they should also be prepared to move on if they don't get what they want, unless they really trust their managers.
And never take the counter.
Having you walk out this month may be a big deal while next quarter, not so much. Or I may have found your replacement by then.
It's not about "getting back at" someone. It's about minimizing my risk as a manager. I would rather have 80% the performance with an 80% chance someone will be around in a year rather than 100% the performance and a 50% chance someone will be around in a year.
That would manifest itself as me being more aware of the risk, but I'm also rational enough to know that unless I find a way to rebuild that trust, I might as well have not made the initial counter-offer. (I'm also writing from a pretty big [by typical HN standards] company perspective. On a sub-10 person technical team, the equation is a lot different.)
That would be a big motivation for me, especially if his job is critical.
I distinctly remember being trained on how to handle counteroffers when I was first getting into the business. I don't use any of those tactics these days, but I am certain lots of recruiters do. The amount of publicity that recruiters give to these numbers (which usually lack a source) adds to the misconceptions.
But citing the ulterior motives of recruiters doesn't establish that it's safe to take counteroffers. There's no reason it can't be both at the same time: recruiters do have ulterior motives, AND it is dangerous to accept a counteroffer. Waving at the badness of recruiters doesn't dismiss the issue.
The risk of taking counteroffers isn't unconditional, it depends on the employer. The person evaluating a counteroffer has to consider the trustworthiness of the employer. In the best case, that still includes offering a lower-than-market wage (or how did you easily get a better offer?)
While it's true that recruiters' interests often aren't well aligned to the candidate's interests, employers' interests often aren't well aligned to employees' interests either. BUT... in these cases where someone is already desperate enough to be hustling for other offers to push their employer's hand, it's already a lot more likely that the employer's interest is less aligned with the employee than the recruiter's is.
Raises come out of profits and many people do take it personally and can't be professional and more importantly, decent about it.
If you are facing a counteroffer, you are the person best positioned to evaluate whether your employer is trustworthy - not HN commenters, not a recruiter and certainly not your employer.
I can see how people who hire on HN are scared of recruiter memes about counteroffers. A lot of us want to get rich and want shortcuts. Unfortunately, those recruiter memes align with certain realities. There is no shortcut, you (generalized you, not fecak) have to earn the respect of employees as a fair dealer if you want any rational person to want to stay or even consider your counteroffers. If you don't earn that respect, you have no right to complain: you deserve to lose the employees because you yourself adopted a strategy which puts a little cash in your hand in exchange for this very problem.
I do believe that people who accept counters are taking some sort of calculated risk, and it does depend on the company and management. When you've been consulting to a job seeker for some time, get him/her an acceptable offer, and then find out about a counter, it's difficult to remain a credible source. I've recommended to candidates to accept a counter on at least a couple occasions, and I once accepted a counter (and stayed 5 years).
The secrecy of counteroffer benefits the company, as if it becomes known that a counter is your quickest means to a raise you can be sure others will follow suit. But that secrecy also has some benefit to the person who accepted a counter, as any potential questions about your loyalty or (in some situations) your perceived willingness to abandon the team during a crunch time won't be exposed and the accepter can continue business as usual to a degree.
They might also feel they will be taken as a more skilled candidate if they can quote a high current salary, enabling them to score a better role at a better next employer. That might seem counter-intuitive, but if you know you are under market, people selecting employees for quality over price will wonder why.
A counteroffer doesn't change whatever conditions about a job made you leave, be it unfulfilling work, coworkers, a bad environment, long commute, etc. - unless your only concern about the job was being underpaid, which is likely far rarer.
It would be pretty straightforward to add a couple questions to any general survey of employees in an industry to figure it out.
A couple years ago I posted an article here about an agent system where job seekers were the recruiter's real client (and footing the bills), which would resolve this particular instance of misaligned incentives.
People are going to end up using some term to denote their top performers. Verbal shorthand is very hard to get rid of.
But I fail to see how "rock star" is male-centric. There are and have been lots of female rock stars.
Courtney Love, Stevie Nicks, Pat Benatar, Tina Turner, Madonna (kinda pop, but still), Amy Lee, Ann Wilson, Tarja Turunen, etc.
Being "into" rockstars or ninjas is largely a boy thing, and (like upper body strength) has absolutely nothing to do with software development other than the fact it's a largely male dominated industry.
I hope so.
Ok, I'll bite... what are some things employees never fathom about the job they're doing?
Why does it matter if top performers are called "rock stars?"
And just as importantly, the lack of a decent compensation/raise is a sign of disrespect. I also factor here places that expect their developers (especially young ones who advance exponentially at the beginning) to either stay at the same pay grade for years or suck it up with a 5% raise.
At least that was my experience. Of course being younger and less mercenary I hung around longer than I should and jumped, just after a pay-rise, to a similar position similar pay job. I couldn't hang around knowing my heart wouldn't be in working there.
> By The Time You Give Them a Raise, It’s Too Late.
I have seen this happen often. If you get a higher offer from a second company, you will think that the first employer paid you below par, which leads to a feeling of being taken advantage of. At that point, it doesn't really help if the offer is countered, the feeling of being exploited has already taken root.
Unfortunately, most managers just don't get this, or they somehow believe that they can counter offer. Maybe that works in sales/marketing, who knows, but I think it's different in dev.
Accepting a counter-offer is almost always a bad idea; no matter how much money is on the table. After accepting a counter-offer you are bought and paid-for, you decided to stay for the cash and, unfortunately, your loyalty to the company will be questioned forever after.
If loyalty means "you can fuck me over and I'll stick around," it's a vice, not a virtue.
Loyalty keeps sweatshops fully staffed while keeping good businesses from replacing anyone who is a bad fit.
In fact, why would any business want a "loyal" employee, someone incapable of recognizing or acting in situations that have grown lopsided? If someone struggles with strategic decisionmaking in their own life, why trust them to aggressively act in the best interests of the business?
Feudalism is long dead. The occasional job change shouldn't merit a scarlet letter.
In my mind, a loyal employee is one who will ride out the ups and downs in a relationship, and put in the effort necessary to make things work. The same is true for a loyal employer.
To that end, I think a loyal employee should speak up when they think they deserve more money, because it is in everybody's best interests that they be fairly paid. And I think a loyal boss should a) do their best to make sure that employees are already fairly paid, and b) when they slip, to be grateful that an employee has taken the risk of talking about something that can be difficult.
By "too simple", I meant that his model of the world was too black and white. Trust isn't a binary condition. It's a continuum. A collaboration.
If my boss ever mentions it in a sentence. I swear I'll quit within a week.
Loyalty to a capitalist legal entity who will fuck you for a dollar is absurd. Reserve your loyalty for your family.
Those signals are positively correlated with future raises. (I agree that getting an off-cycle counter will have some negative correlation to your future raises, mostly because "you already got some of it" will be on the mind.)
However, that highly depends on the company, especially large one. There is very often a disconnect between line management, HR, and all the parallel hierarchies that make up the company - meaning there is no direct relationship between people caring about your loyalty and people that have the means to do anything about it.
Personally, nowadays I'm almost convinced there is no drawback. I have seen just too many people offered a red carpet for years after such threats.
If an employee feels taken advantage of, then I'm afraid they're going to go through life with a victim mentality, and probably aren't a rockstar to begin with.
Say I have $10 to pay you.
I ask you what you'd like.
You say $7.
I offer you $7.
Where is the disrespect?
If I wanted to buy some good will, I could offer you $8, and you'd be happy because I paid you more than you asked.
In this scenario, I gave you the upper hand by allowing you to tell me what you'd like.
I could have "anchored" the discussion by making an offer, or telling you the salary range for the position.
Now you would feel disrespected if you found out that I actually could have paid you $10, but instead only offered $7 or $8. However you got what you wanted, so being upset is irrational.
In all likelihood, you were upset because you would rather be given the $10, instead of having to negotiate.
People get upset because they feel uncomfortable about negotiating, and mix emotions and feelings when doing so. It's not an emotional affair. Negotiation is about leverage, and with some practice, you can get good at it.
For negotiating salary, you should do one of two things:
1. Figure out exactly what you want to be happy. Ignoring if you're asking for too little. Ask for that figure. It helps if you can justify the reasoning.
2. Figure out what you are worth, and ask for that. Again, it helps if you can justify this with facts.
If the company does not make you an offer that matches, and instead counter offers, then you should weigh their reasoning or just politely tell them no, and find someone else that will.
Say I have $10 to pay you. I ask you what you'd like. You say $7. I offer you $7. You agree. Where is the disrespect? [..] Now you would feel disrespected if you found out that I actually could have paid you $10, but instead only offered $7 or $8*
At this point, there is no disrespect, That's good. And I wouldn't feel disrespected if I found out your budget could have been higher.
However, if I asked for $5 and you paid me $5 and I was happy, and the person next to me in the same role asked for $7 and you paid it, then they asked for a pay rise to $8 and you paid it ... and then I found out, I would start feeling annoyed.
You suggest "figuring out exactly what you want to be happy" - what if that is not a number of dollars, but a sense that everything is fair and considerate throughout the company?
I work for you, fighting problems on your behalf, for your profit. I want to do that with my employer and coworkers solidly supporting me, not having my employer provide the bare minimum of support unless pushed.
Would you want an employee that was doing the bare minimum, literally only doing what you ask and nothing more, replying "sorry, can't help, not in the contract" to every customer request no matter how easy or how happy it would make them?
Why would you want to be an employer doing effectively that to your employees? Why think all you need to do is point out that it's fair because they're rubbish at negotiating, and then expect them to be happy with that?
Some of that discomfort is justified, as negotiation and other methods of hidden pricing can lock in discrimination.
Ian Ayers found this effect when examining negotiations leading to car sales, leading to widespread racial and gender discrimination. Negotiation discrepancies were found to account for 10-15% of a gendered salary gap observed in Portugal by Card, Cardoso, and Kline. A survey of the lit on gender discrimination in employment is provided in Linda Babcock's "Women Don't Ask." (I feel like I've seen HUD research on negotiation effects for housing, but can't track it down.)
Not saying it's not a skill people should learn to deal with the realities out there, but it can be a pretty insidious activity too, even when none of the participants think they're doing anything wrong.
That's why I try not to approach salary negotiating with people I'm going to hire in an adversarial manner.
My goal is to get them to join the team, and to pay them a salary they can feel proud of, and allow them to focus on doing great work for the company.
But, I also have the very real constraint that I only have so much money to spend.
There is a clear display on lack of honesty here. And such people don't deserve any loyalty at all. If a company can't be honest with its own people they will definitely cheat their customers.
>>so being upset is irrational.
Right, if some doesn't know they are being cheated. Cheating is now perfectly justified. In fact if they discover later what happened its wrong on their part to be refuse to be cheated further.
In the hypothetical scenario I outlined, was there a lack of honesty?
There is an imbalance of information, certainly, but I don't think that information should be disclosed.
>>> Right, if some doesn't know they are being cheated. Cheating is now perfectly justified. In fact if they discover later what happened its wrong on their part to be refuse to be cheated further.
Along the same lines, where is the cheating occurring?
Please note this negotiation attitude is unacceptable on job. They demand a more human requirement, called 'loyalty'.
>>where is the cheating occurring?
I am not sure how else would you term that.
However, "market rate" isn't just a flat value you get when punching in a formula, and is subjective.
Also, I think you've read more into what I wrote.
I didn't mention what was fair pay. I just said I had $10 to pay someone, and asked what they wanted, and offered them just that.
Why did you assume that $7 was not market?
Why did you assume that the individual was ignorant when asking for $7?
Why did you assume the individual was entitled to the full $10, perhaps they performed only okay during the interview, but showed signs of promise?
The point I'd like to illustrate is that if you're paid an amount that makes you happy, or that you are okay with because you had some control over it (i.e. negotiating), it seems childish to accuse the system of cheating, or being unfair if you later find out there was money "left on the table."
In life, no one is going to watch out for your best interests. I don't believe in screwing people over, "cheating" them if you will, but I also don't believe in overpaying either.
At some point, for most individuals, the utility value of additional money diminishes.
Hopefully you will get to a point where making an extra $10k in salary isn't the deciding factor in joining a company.
How is this about not telling the truth?
Do you walk around telling everyone everything?
If an employee asks for less then market price for their skills, I pay them market price. If I paid them less, I'd be taking advantage. Fuck that.
This is besides the point of what I outlined. "Fair" is not a concept that applies to the real world. Nothing is "fair." Instead, and what I think you're saying is that you want people to act in good faith--this I agree with.
If someone doesn't know their own value, I shouldn't take advantage of them.
You've assumed that was the case in my scenario--note that I never mentioned market rate.
I also shouldn't use information imbalance, or other forms of negotiating tactics to unfairly gain an advantage on someone.
All this, I agree with. However, if I ask you "what is your salary requirements" and you make a reasonable request, and I meet that, I don't see how you can feel cheated if you could have got more money.
That includes fairness.
Determining that worth isn't an exact science.
I also believe that after a certain point, money has less appeal to people--that is, people are no longer motivated by the money.
By asking someone what they want, I'd like them to tell me what it is they need to be happy, so I can offer it to them.
The following video makes some pretty good points along that line: http://www.youtube.com/watch?v=u6XAPnuFjJc
The cynic in me thinks that's self selecting.
After all, the opposite of the advice presented would be to ignore the ambitions of your most important employees, underpay them, and never speak to them.
The fact that not doing the foregoing is seen as a novel insight is not encouraging.
I would love to work for the author. I've worked in so many places where the management vibe was "how can we squeeze more blood out of the talent" and not "how can we support the talent to make awesome things."
I read management-oriented things from time to time to get an idea of the mentality, and it's very, very split between the two kinds of 'advice': common sense, and exploitation.
Nevertheless, I have always been somewhat confused by the distinction many people (and with no particular reference to the author of the article) make between the ethics that one expects between individuals in everyday life and in the workplace.
I am in the middle of watching a team constantly churn, unable to retain many talented developers, specifically because the managers are only rewarding those they think are the best engineers, but are actually rewarding very mediocre employees they trust. My advice to everyone, especially managers, is do not try to pick out your "best" employees and reward them exclusively!
My team has hired 6 engineers over the last 2 years; the distribution has been pretty even: 2 really great engineers, 2 decent ones, and 2 sub-par ones. Going in to the 2 years, the team had 5 engineers 1 really great, and the rest swimming between mediocre and great. The two managers try to follow the advice in the article, and it has been disastrous. Of those 6 engineers they hired, the two really great ones were out the door in 8 months and 1 year respectively, and just last week the 1 great engineer already on the team announced he was leaving. The problem feels like failure to launch. These talented people come in, are doing good work, and then feel there's no room to grow. The source is obvious, the managers have picked out 2 of the mediocre engineers who they feel are their "best", the "talent" doing the most work and attracting other great "talent". The "talent" is rewarded with the big projects, which in turn makes management think they're working harder, while the other engineers are left with the scraps. The result is simple -- genuinely great engineers take a few steps in the door, quickly realize the problem, and turn around to get out the door as fast as they can. It's really sad.
The advice of the article is good for the most part, just really be incredibly careful about choosing your "best" as a manager. It's far better to make sure you're fostering your whole team.
Unfortunately companies want innovation, rock stars, stellar growth and all that. But rarely have their growth/rewards/compensation system aligned with those goals.
I've seen CEO's and execs crib and whine endless for months and years about how difficult it is to hire and sustain good talent. How greedy good people are. For heaven's sake its not other people's job to sacrifice their lives to help you clear your BMW's car loan quickly.
So yeah, eventually the great engineers get tired of playing code janitor and bail.
It's like saying "I wonder how I can hope to have steak dinners with Safeway charging such high prices for steaks."
That's what they cost. If you can afford it, pay it. If you can't, don't have steak dinners. This is the market. It's not a special problem for you that requires an intervention.
You aren't entitled to anyone's labor at any specific price.
If your business cannot be sustained unless certain people are coerced into working a lower price, your business is not sustainable!
Anyway, in reality, the US healthcare industry has a massive and powerful lobby, so it can exert a lot of control over markets through its purchased representatives. For example, everyone in the country has to throw business their way (for good or ill).
The healthcare industry isn't about to go belly up because engineers aren't cheap enough. Maybe your job is hard because you have a small budget. So sorry, but don't blame the candidates.
> At some point, even if you are doing work that really matters in a big way, you can't be stupid about your career and leave money on the table
You make an offer and because it's dodgy or not good enough, you have to belittle people and call them stupid in the hopes that they will be insecure and weak-willed enough to believe you and back down.
I guess this is one solution to the exorbitant expense of keeping people happy: "Don't be stupid, baby. You can't live without me. You're nothing without me."
My larger point is that there are finite numbers of employable people who write software and that it appears to me that it is becoming more and more professionally rewarding for those individuals to concentrate themselves in dedicated software companies. As this happens, it becomes harder and harder for non-software companies to employ such people.
The problem is not the money per se, but the same problem I see in working for any non-engineering company. There is simply no career path available when your role is perceived as being outside the core mission of the organisation. To progress in academia one must write papers, not software.
The NIH has begun recognise the need for funding software and databases, but there seems little prospect of university career structures adapting any time soon. As far as they're concerned we're only the staff.
I'm currently interviewing at a few of those types of places that does research. My main role there would be to develop applications that will help them gather data for their research.
Did you have any other bad experiences or lessons that you think a developer should know about before working at a place like that?
What I miss most from working in an engineering company is the technical feedback I received from my colleagues. Now, they're experts in a different area. In that respect it's not that different to working in any other non-tech company. You'll probably spend a significant chunk of time introducing good development practices (testing, etc.) But expect to be asked to justify them too. This can be great, but hard work without the common experience to fall back on.
Like any organisation there is huge variability between teams and projects. I'm not sure I'd read too much into my comments. An anecdote is just that.
Send me an email, I'd love to chat: firstname.lastname@example.org
All that guarantees is these founders won't be hiring peers (or better). Better to overcome their fears and let professionals do their jobs, remotely if that's what it takes to get them to work with them to achieve their vision.
Hmm, I disagree, but that's based on my experiences with our attempts to integrate remote workers into a strong team environment (two of our people displaced following an earthquake so we waived our normal dislike of remote working.)
Basically, it doesn't happen. You can't integrate them into a strong team environment.
Now when I say strong, I mean that the team decides how it works, the team decides how much work it can fit in its sprint, and the team decides who it hires. We live or die by our teams, and so we focus on team culture, and team cohesion, and we reap a lot of benefit that falls from regular personal interaction. Strengths complement weaknesses, teams develop cultures that they are proud of and protect, and we deliver quality.
If you're a remote worker in this environment it sucks. You're out of sight, out of mind (despite Skype and Hangouts, if someone has to open an internet application to talk to you, communication becomes that much harder). But more importantly, you're out of the culture, you have no stake in it, and you feel left out.
However - if our environment was one where we worked solo (as opposed to pairing on all production code), and placed far more emphasis on individuals than teams, then remote workers would fit far better.
So yeah. It could be fear, or it could be that people are trying to build a team, and teamwork is vastly easier when you're interacting with others in person.
I hear the same discussions about teaching high school all the time (e.g. https://news.ycombinator.com/item?id=6969363), and the answer is... they can't, for the most part. Occasionally you'll get heroes who'll do it for less, but mostly things just don't function very well.
> Find a Growth Path for Everyone, Especially the Great Ones.
I've done a few interviews in the last few years, and whenever I ask about career path, they always stumble, even companies with 50+ employees. "We have a flat org chart." I've pretty much decided that it's up to me to advance my career via freelancing, because as an employee you hit a ceiling very fast.
In a big company job, unless they're also on a significant growth trajectory, advancement tends more towards zero sum, and the role-choosing process tends to favor the dazzling outsider with the shiny resume more over the familiar insider whose warts and gifts (and establishment in their current role!) are apparent.
Of course, in practice, startups can work exactly the same way.
One of the bits of advice I'd send myself back through time if I could is to ask for the title I'd want to be holding a year or two down the road if the startup sees success. It guides how everyone thinks about you in day-to-day business, and if they're reluctant to hand it over at the start, they'll probably be reluctant to think of you that way later, even if you grow into someone who is fulfilling the role while they grow into a company that needs it.
A few companies have it, but those are momentary times until they grow, and once the systems are in place. They will put in a middle management guy have it run. Slowly you will the architects would have been phased out and replaced by managers.
Same here. As a freelancer, I control my own career part, decide what I work on, in what direction I develop myself, what projects and responsibilities to take on, and I invest in my own training.
When I was an employee, I always joined a great company that did great things, learned a lot of new stuff, and then hit a ceiling. I learned to move on after about 2 years. Longer than that at one company means stagnation for me.
Unless the employee is leaving for money. Junior employees HAVE to jump jobs 2-3 times to get to their market rate.
I think the problem is that once someone is seriously considering other job, it's very very hard to get them back. They might be physically in your company, but mentally, it won't be the same. Being underpaid just changes the relationship.
edit: fixed grammer
In an attempt to add something useful though, why did you terminate your work with your last client? Did you attempt to negotiate a higher rate? Two years is still very junior, and I assume that you worked out your price with them early on. Did you give them a chance to retain you?
To make my previous comment more accurate, I would add that it's usually not only about the money. Job specifics might change, you might ought grow your job, etc.
Speaking of the client, we both kind of knew that it will happen. I am still doing my degree and, I believe, he expected me to find something else once I graduate. Just it happened before I graduated.
You are right that I worked out my initial price, and the job specifics had changed. I was working on a CRM-like custom solution in the beginning but at the end I spent 80% of my time copy-ing stuff from google docs into html and styling up. I tried to negotiate a higher rate, unsuccessfully, and there were signs that the budget was super tight. Understanding that, I didn't put him in the corner saying 'I need more money!'. Because I know how badly it sucks to be in that position :) so it was quite a mutual understanding.
All in all, it ended on good terms, no bridges were burned.
But maybe you didn't have the money or quite the grades and extracurriculars so you get your degree from San Jose State or City College of San Francisco, you could still be a very good programmer, but you'll have to start by taking lower-paying jobs while you prove it and learn, and at most companies you won't get much of a raise unless you threaten to leave.
A friend of mine ended up a technical lead of about a dozen people. He got there by leaving his company for another company, leaving them to go back to the first company, then leaving them again to go back to the second company as a lead. Each time he got a substantial pay raise. For the four years before he adopted this tactic he was getting the customary 5% or so as a mid-level programmer. In the four years he employed this tactic his salary almost doubled.
I disagree. The problem isn't that people are paying below market - Google pays just fine for new grads. You won't find many places paying more than Google does for fresh grads. The problem is that the pay scale for software developers increases rapidly with experience, at a rate no company (Google included) is willing to keep pace with.
A new undergrad may be worth $100K starting. Assuming they're reasonably good performers, in two years he/she will be worth $130K+. I don't know of any company that gives 15% annual raises like clockwork, even to solid performers.
Personally I've doubled my salary in about 5 years in the industry. That works out to 15%, yearly. Is there any company out there that's willing to keep pace? I've been at companies where the typical non-promotion raise is 1-2%, that's laughable in a market where salaries are skyrocketing.
Some places will make their best (or nearly best) offer first. Others will have a broader range and more flexibility for someone they really want on-board. It doesn't cost or take much to ask once at the start, when they're at their most enamored with the endless possibilities you'll enable.
Don't get me wrong; I appreciate the simplicity and ease of your approach. I'm just suggesting your can get more return from very little differential effort.
> My point here is this engineer should not have had a five-figure salary, even if it made sense in historical context (joined as a very junior person, consistent with prior salary). Pay market, or above, as soon as you can. It’s a sign of respect.