
Fellow Engineers: This is where your money comes from - tlianza
https://lianza.org/blog/2018/01/21/fellow-engineers-this-is-where-your-money-comes-from/
======
bitL
Real-world:

\- you increase value; your bosses team up with each other and claim the
credit; you might even get booed for some minor deficiencies whereas they will
be boasting about their achievements

\- you are generous and do non-AGPL based open-source; parasites are waiting
in the open, incorporate your code to their commercial offering, never paying
you anything; your bonus will be rude complaints about bugs in your code in
your issue tracker

\- you work for minimal salary and generous equity; when push comes to shovel,
CEO will kick you out of the company due to "company problems" and claim your
equity; bonus to the threat to your existence will be burnout from overworking
and lack of credit

\- your company creates a new opening for a lead position in your team for
which you are the primary candidate; managers of other teams privately ask you
if their friend can be pushed to your manager as the "one"

~~~
davidcbc
You must have worked at some really terrible companies. While I don't doubt
this is the case at some places the places I've worked haven't been like this
at all.

~~~
hinkley
Sturgeon’s law.

If it haven’t worked at a terrible place, and you’ve worked more than four
places, then congratulations, you won the lottery.

(If you haven’t worked more than, say, six places, you probably have no
business telling anybody how the industry is).

~~~
GuiA
Why six and not eight? Or four? My father has been a chemical engineer for the
same company from ages 22-now (59) and is an expert in his (very) niche field,
does that make him unqualified to speak about the state of the chemical
engineering industry?

People's experiences are worth listening to even if they've just been in the
workforce for a couple years.

~~~
hinkley
Not when they’re invalidating other people’s experiences.

------
throwawayjava
_> This is why I struggle with scenarios where people discuss pay and work
without considering value._

Counter-point: firms exist.

If I'm the one figuring out how to create value, why the hell are the C suite,
middle managers, and investors getting 99% of the profits?

So no, in the context of a large firm, it's definitely _NOT_ an engineer's job
to figure out how their skills align with market demand. And that's the _whole
damn point_ of a firm.

Now, this may be reasonable advice if I want to maximize by income. But maybe
my goal is to maximize income _under the constraint_ that "my excellent
engineering" is the primary consideration in my performance evaluations. And
there's nothing wrong with that; people trade income for all sorts of things.
Telling someone not to make that trade-off is like chiding them for buying an
expensive latte or sending their kids to an expensive private school. It's not
your money, so it's none of your business.

edit: And, furthermore, the success of large firms and the high compensation
available at those firms suggest that the author's advice might actually be
actively harmful. As an engineer, you might actually be better off ignoring
engineering-value alignment because you might be better off simply executing
well within a well-oiled machine.

~~~
WalterBright
> getting 99% of the profits?

Profits by definition are calculated after labor costs are deducted, so
employees get 0% of the profits in salary.

However, take a look at your company's accounts and see how much of the gross
revenue is paid out as wages and salary. It'll be a big chunk. There's your
share.

~~~
throwawayjava
Sorry, but I think that this view is both obviously wrong and actively
harmful. It's an example of where going with textbook definitions actually
_obfuscates_ reality.

Highly compensated managers are taking a share of profit, often quite
literally (look at how VP and above positions are compensated). But always
indirectly -- you can't tell me a 7-8 figure salary "isn't a share of profit".
That's obvious BS. And if my own compensation is a share of profit in the same
sense (which, a port of it literally is), then my observation that non-
engineers get 99% of that share is still accurate.

Anyways, and much more importantly, this is pretty tangential to my original
point. The point is that if I'm an engineer at a large firm, it is NOT my job
to do the MBA thing. The entire premise of a firm is that the author of this
post is wrong.

~~~
WalterBright
The money paid to employees is deducted from the profits (or more precisely,
profits are what is left after expenses and labor costs are paid).

So your salary _is_ your share of the profits in any pragmatic sense.

This isn't MBA level stuff, any basic accounting course will explain it. In
fact, I recommend anyone who cares about this sort of thing to learn basic
accounting principles - it is simple, and highly useful knowledge. You'll be
able to then read a business's Income Statement and Balance Sheet, and see
where the money comes from, where it goes, and where it is allocated.

~~~
throwawayjava
_> So your salary is your share of the profits in any pragmatic sense._

Okay, so I'm getting a tiny fraction compared to everyone else. Again, this is
a fairly pedantic tangent and no matter how we define these things, my
observation seems to be accurate.

Again, this sub-thread about the definition of profit is both tangential and
unrelated to my original point. I think the standard accounting definition is
pretty useless and silly in the context of modern large firms, but that seems
like a discussion for another day.

 _> This isn't MBA level stuff_

By MBA stuff I don't mean "useless econ 101 terms". What I mean is "aligning
engineering talent with value creation", which AFAIK isn't taught is basic
accounting courses...?

The author of the post suggested this alignment is an engineer's job. But the
whole point of a firm is that the MBAs do that and the engineers focus on
building things. That's my point -- that in the context of a large firm, the
author is wrong.

Of course, joining a large firm means that your own compensation is
disconnected from the value the firm creates. And that can mean less share of
compensation, especially when the firm is doing well. But it also means you
can make a good living without becoming a Monday morning economist.

I don't really care about defining profit "correctly" according to accounting
terminologists because I think a well-meaning reader can completely understand
the point that I'm making in my original comment without this aside.

~~~
WalterBright
> that in the context of a large firm, the author is wrong.

An accountant serves two roles in a company. One is to produce a correct set
of books for the investors and the tax man. The other is to determine the
value to the business of things the business is spending money on.

I.e. to determine the value produced by the engineers.

They may get it wrong, as at some level it is indeterminate, but the more
correct they calculate it, the more efficiently and effectively the business
can allocate its resources.

This calculated value determines, for example, what they're willing to offer
you in salary. If they overvalue you, you're likely to get laid off, or more
likely, no raises. If they undervalue you, they're likely to give you a raise
to keep you from leaving.

In my experience, individual engineers tend to have a large disconnect in
their opinions on what value they deliver vs reality. If you believe your
compensation is way under your opinion of your contribution, it is worth
taking a good hard look at it, and deciding if you are better off getting
another job.

~~~
zzzcpan
> This calculated value determines, for example, what they're willing to offer
> you in salary.

It doesn't. This is mostly a binary thing of whether the company can afford to
pay an employee a bit above his market value or not, if we are talking about
engineers of course. Such employee cannot actually get paid proportionally to
the value he brings to the company.

~~~
nostrademons
If they can't afford to pay your market value, you should leave and go work
for a company that can. That's how you set your "market value" \- go out on
the market and see what price you get. If you can't get a higher offer, than
your current salary _is_ your market value.

How much value the engineer brings in (to a given employer) is basically the
ceiling on bids that employer will make. It's completely economically rational
for you to _find the employer that values your work the most_ when you're
searching for a job, because they'll be willing to pay the most.

~~~
barrkel
This isn't quite right. Engineers are normally more valuable the longer
they've worked in a job, because codebases take longer to understand, business
domains need familiarizing, etc. Engineers aren't normally a commodity; the
best offer you'll get on the open market will normally underestimate your
value to your current company by some distance.

Getting a competing offer is still the way to get leverage for better
compensation, although the downsides of accepting a counter-offer are fairly
well documented.

On the topic further up the thread about profit: engineers are paid based
approximately on replacement cost, but profits are created based on market
opportunity and scarcity. A company can create an offering that's hard to
reproduce (a monopoly) - harder than most individual engineers' skills are to
reproduce - and the excess profits are effectively windfall profits until the
market corrects and competition sprouts up. Thus a company can charge closer
to the value it adds to the customer, rather than closer to its cost base.
Ideally an engineer would try to do the same thing: charge based on the value
he or she adds, rather than how much he or she can make elsewhere.

And bringing it back around, companies can eventually get a windfall cost
saving / profit from long-serving engineers. Because of accumulated knowledge,
they can become such a good fit for the company that the company can pay them
substantially more than the market rate, but nowhere near how much value they
add, simply because they know that they're the only customer: monopsony, the
inverse of the monopoly situation. To extract more value in this situation,
you need to bring non-monetary aspects to the negotiating table. My preferred
one is ownership: not autonomy, but actual capital interest in my output.

~~~
pdimitar
I am very late here, but...

Can you elaborate your last point? Namely how do you extract more value in the
monopsony situation?

------
ChuckMcM
I completely endorse the suggestion that engineers should learn to understand
this concept. If you learn one thing in your career, it should be this. One of
the differences between working at BigCorp versus working at SmallCo or
VentureCo is that in the smaller companies the relationship is much easier to
trace out.

Dan Warmenhoven (when he was CEO of Network Appliance) had a wonderful way to
very clearly explaining this in an accessible way. From gross margin to net
margin to the fraction of the margin that was allocated to engineering.

But the other concept, on-off splits, is also something which I think
_managers_ need to understand a bit too. When I was at Google their
compensation system tended to unfairly bias toward people delivering features
and I and others argued for recognition of people that made delivering those
features possible (which finally came about in 2009). As a manager you have to
recognize when someone on your team or in your organization is helping the
whole team work better or get more done. Whether that is an administrative
person who is keeping things in the group calendar current or a tools engineer
who is keeping the build running smoothly. If you're lucky they will be sick
for a week and you'll see the entire organization hiccup as it adjusts. I say
lucky because that will give you visibility into their contribution you might
not otherwise have until it is too late.

~~~
hinkley
I’ve had coworkers confide in me that their value isn’t being seen. Some were
really good, some were constant problems to be managed. I have seen this
scenario you observed, and my standing advice is take a week off.

If people are glad you came back then you are correct and you need a raise or
more power or both. If they just ask you about your trip then your perception
of your value is out of whack.

~~~
vehementi
If they're glad you're back maybe you're a silo or bottleneck

~~~
hinkley
Certainly. But that sort aren’t the kind who intimate something like that in
private. Everybody knows what they think of themselves. And in some cases they
know what I think of them too.

I’ve been indispensable before. It’s a great feeling if you don’t know any
better. But there are other ways to be indispensable besides holding all the
important bits in your head and refusing to share it.

------
agentultra
I sometimes wonder if the vulgarity of capitalism forces us to think this way.
You don't see lawyers, doctors, or capital-P engineers thinking this way. They
have to think about the state of the art and practicing their craft with the
utmost attention to detail. Anything less would be unprofessional.

And yet we programmers hear this story time and again: you don't matter, your
craft doesn't matter: _all_ that matters is getting that money. If that's what
your company values then that's what they'll make you do... and we don't have
any profession to back us up when we say, "That's not good enough."

I suspect this is part of the story of how the Equifax's and the like happen:
we prioritize profits over integrity and the consumer pays. If you, the
professional software developer, refuse the company will simply find someone
else who will. And they will probably hire them for less.

And yet if we were to raise the bar, stakeholders argue, then programmers
would not be affordable: producing software would be too expensive and nobody
would do it.

~~~
edanm
"I sometimes wonder if the vulgarity of capitalism forces us to think this
way. You don't see lawyers, doctors, or capital-P engineers thinking this way.
They have to think about the state of the art and practicing their craft with
the utmost attention to detail. Anything less would be unprofessional."

That's ridiculous. Of course they think this way. How many doctors are working
in a hospital doing the latest surgical technique, versus how many have opened
their own office? Do you think opening a private practice means you
concentrate _more_ on medicine vs. administration?

They do it because it pays more.

Thinking programmers are unique in having to balance their profession and
business is just plain wrong. It's true that most professionals might not
think about it that often, but then again, most programmers don't think this
way either.

~~~
agentultra
How many doctors are still practicing after one malpractice lawsuit? 2? 5?

You have to be insured to practice. There's a professional organization that
licenses you to practice. These are the social structures we put in place to
limit the damage done by the various forces of the world that would tempt a
doctor to be anything but faithful to the practice including profit.

A hospital may ask a doctor it hired to "cut corners," but the doctor should
refuse and if the hospital tries to fire them and get away with it anyway...
the hospital should pay for that.

What I meant by the last line of my comment is that we have a vested interest
in producing more software, not less, and I don't think cost is the problem.
Although there are people with a vested interest in the status quo who would
see the expense of insured, professional software engineers as being
unbearable to _their_ interests... not necessarily because such practices
would harm the public good and their reliance on technology.

------
alexandercrohde
If you pretend simple economics is best representation of reality then this
blog post is exactly on point, in a perfectly efficient market the value you
earn for others is proportional to the profit you get in return and both are
proportional to the good you do in the world.

Simple economics are not the best representation of reality.

For many pride in one's work can matter more than pay, the engineering
profession attracts some of the most passionate do-gooders (Gates to name a
famous example) who care about the world improving. They aren't usually
recognized for it because they try to improve the world by fixing the systems
rather than flying to a 3rd world country and building a house.

Additionally, in reality but not in simple economics, there is a huge gap in
value-generated for the company and _perceived_ -value-generated for the
company. In fact, there can be situations where the two are negatively
correlated and the engineer knows best.

Finally let's remember that short-term value to the company isn't the end-all-
be-all. Did you know Zynga had some individual users who spent over 100 grand
on virtual items? Great companies often arise by ignoring the short-term-
profit and focusing on delivering a great product with a great experience,
even if the market for it doesn't exist yet (i.e. what google did)

~~~
therealdrag0
I didn't get the impression the article was arguing for short term over long
term value. Just value to customers in general.

------
angersock
"We get our money from customers" doesn't actually cover many other very real
use cases. Let's try:

\- We get our money from bosses who want higher headcounts to justify their
position.

\- We get our money from competitive poaching, so that if GOOG/MSFT/FB has us
the other firms don't.

\- We get our money from salespeople tricking customers into buying our
products. This deception is easier if the products actually meet a need, but
that isn't _required_.

\- We get our money from VC firms playing pyramid games.

\- We get our money from government grants that need to get spent or funding
gets cut next year.

\- We get our money from grants that have to be spent to show investment in
"innovation" or "modernization".

\- We get our money from selling out users to drive advertising clicks.

\- We get our money because...BTC is stupidly volatile.

~

It's extremely _naive_ , in the modern economy, to say "herp derp just deliver
value to customers and you'll get paid what you're worth".

EDIT: Nice downvotes. Again, consider that maybe the modern economy is so
twisted and weird in software dev that maaaaybe this simple Protestant work-
ethic narrative doesn't actually hold water. Sorry to burst your bubble.

~~~
eevilspock
> “We get our money from customers”

> We get our money from selling out users to drive advertising clicks.

Advertisers are the real customer and users the product and all that. This
perverse incentive is the driver of most garbage on the web. And not only is
the user sold out, they are manipulated by the advertising, the products (e.g.
search results, news pages) are manipulated, and now elections are manipulated
(Because Facebook et al designed to put the user first would not have spread
viral bullshit).

Engineers need to put morality and social good above making more money. Greed
is not the god that people should be worshiping and designing economic systems
around.

------
lifeisstillgood
This smells like a straw man argument. Most of us don't have pie in the sky
ideals about perfect codebases. we have practical, hard won expectations of a
work-person like codebase and we want to build to that standard - not some
higher perfection ideal. And being prevented from having good engineering by
"get it out the door no matter what" is frustrating because 99.9% of the time
that leads to crap service, overruns, and more crap work on top.

the exceptions like say "move fast and break things" are ... exceptions not
the rule. your company is not a facebook like special snowflake and using the
snowflake argument to drive poor engineering decisions just makes you look
silly.

one essay i remember from ages back on Joel On Software was him describing
working at a Jewish / Israeli bakery. the bread oven was rusty and broken on
the outside and looked like crap. but inside it was spotless stainless steel,
because the bakers knew that the inside was what counted, and any money spent
polishing up the outside of the oven was just waste.

that is an exeellent way to see the software / value argument - you have to
know where the value comes from, and make that part fucking perfect. the rest
can just be hung together with string.

Any disagreements on which part needs to be perfect is really a misalignment
if understanding the business

------
nawitus
"If you want to increase your compensation over time, continue to put yourself
in a position where you can deliver the most value."

This assumes an efficient market. In the real world, however, value of a
software engineer's output is really difficult to measure. Indirect value
(like helping a team member) is even more difficult to measure than direct
value (like implementing features or solving bugs and so on).

~~~
foobarian
Simple rule of thumb for enterprise, make your bosses look good.

~~~
gaius
_make your bosses look good_

And get a pat on the head while he or she gets the cash.

------
zzzcpan
This is really dishonest and disrespectful to people. Most companies are
dictatorships, where all of the profits that come from maximizing value to
customers do not go to employees. Employees have absolutely no say in it
whatsoever and in fact are paid for their time for the sole purpose of not
sharing profits with them.

~~~
dboreham
True but they also get to not share in any losses.

~~~
gooseus
Depending on the company, management and situation - you are the first to
experience the loss in the form of being replaced with a younger, more naive
candidate or an outsourced dev shop that can keep the product long enough for
management to get another round of funding or find themselves an exit that
minimizes their losses.

To not share in the losses you need to make yourself essential and
irreplaceable, which is more and more difficult since a lot of the popular
frameworks and cloud services that make developer/devops jobs easier also make
them an easily replaceable part.

------
WalterBright
> If you want to increase your compensation over time, continue to put
> yourself in a position where you can deliver the most value.

Implied in the article but not stated: it's not about how hard you work.
Working hard has nothing to do with it. Nobody cares how hard you work. It's
about what value you provide to the company.

Work smart, work effectively, not hard.

~~~
danieltillett
I wish that was true, but in some organisations working hard (or at least
appearing to work hard) seems to be all that matters.

The further you are from the owner of the business the more likely you are to
be rewarded for non-productive proxies.

~~~
WalterBright
This tends to be true, and is the core reason why, in free markets, companies
do not grow indefinitely, but tend to become encrustified and fail.

------
devingoldfish
The claim that "we get our money from our customers" is, on its face, wrong.
Of course we're paid by the company, not the customer. The simple truth this
article misses is that your wage is simply the price of your labor, and it is
the firm that is paying it. The "value you add for customers" (however that
might be measured) really doesn't come into the picture. The job market is
competitive, and the amount your company pays you is primarily determined by
how much they would have to pay someone else to do the same job.

~~~
ryanto
> the amount your company pays you is primarily determined by how much they
> would have to pay someone else to do the same job.

This is true, but the thing you're missing is that there's not many folks out
there that can add value for customers. That's why engineers who create value
get paid so well, which is the articles point.

I've noticed that engineers that get paid the most tend to understand the
technical and business trade-offs that come from decisions they make.

------
JoeAltmaier
The customer pays the company for some perceived value. It may not even be
real. But given that it is, the Engineer may contribute to the process, or the
testing, or the coding. Which are useless to the customer and not even
perceptible. Consider: if the same product were delivered without testing,
would testing be valueless?

No, its the whole enchilada that the customer pays for. The Engineer is a part
of the product but so is the guy on the loading dock, and in the mail room,
and sweeping the floors.

No we have to look elsewhere for compensation justification. This religion
(born out of the Agile process?) that only work contributing to customer needs
has 'value' has got to go. Its false on the face of it.

------
galfarragem
Fellow engineers: your (loose) money comes from overcapitalized companies
fighting for talent that can multiply their investor's bets or, at least,
their investor's hopes.

------
avip
I'm pretty surprised to read this. I did not observe any statistically
significant correlation between "creating value" and "compensation". The
examples are so overwhelming I feel it's on the OP to exemplify his rather
false assertion:

    
    
      - Big corps pay loads of cash to research centers that provide exactly zero value to customer.
      - If you don't man up and negotiate no one will bump your compensation just because you're "creating value"
      - Creation of value is so vague a term it's practically meaningless
    
    

This goes on and on.

~~~
zzzcpan
There is no correlation between creating value and compensation, as
compensation is set by a job market, where companies compete for workers with
each other. It really doesn't matter how much value is created as long as the
worker doesn't have a better choice.

------
andyidsinga
corollary to some of the points made in the post:

\- to understand one's value in $ terms, it needs to be measurable in some
way.

Some possible ways to measure:

\- for a product already being sold to customers, my features are helping
retain customers (bug fixes, performance improvements etc) as measure by A/B
testing or sales guys saying "that fix landed the sale".

\- for a product not yet being sold, my performance in building the product is
helping time to market as measured by improvement in sales and marketing
results : "we landed a field trial today with the features I helped implement"
or "those demo videos have improved response to our marketing campaign"

\- for work in a large company, my performance helps my organization achieve
some stated goal by its general manager. As measure by : "we got that thing
done the GM laid our last quarter, his meetings with upper management were
very positive and landed additional funding to the project"

Interestingly, for each of these, value in terms of $ gets more and more
difficult to measure.

in my experience, working in smaller companies, value is much easier to
understand, but the work tends to be "everyone sweeps the floor". In larger
companies the work tends to be more specialized - and potentially more "cool"
but driven by harder to pin down dynamics of the larger corporation organism.
It also tends to be more "maddening" as the organization flip-flops around
trying while seeking extremely difficult to attain growth.

------
mnm1
The value I can deliver is strictly limited by the sales department these
days. In the last four years, I have increased the value proposition of the
business 100x-1000x (hard to know for sure, but not less than that) with my
team's contributions (team of 2), yet I have not gotten a raise. No matter
what I do, if we don't sell more, the value does not increase. So why should I
care about the value I'm delivering when it does not affect my pay whatsoever?

Let's face, it almost all jobs are like this. Certainly all startups that are
running on others' funds. Certainly all big corps. The author here is talking
about a very small percentage of companies where individual contributors can
actually contribute to the value of the company and the company reciprocates
in value to the employee (pay). The one company that I worked in where this
was the case, gave decent single digit raises. Hardly commensurate with value,
but not bad.

In other words, there's no reason to focus on value provided for an employee
at most companies because such focus is either unrewarded or almost
unrewarded.

------
zebraflask
Tangent: had a similarly disappointing experience with Coinbase. Not worth
going into details, but I walked away feeling like the application wasn't
taken as seriously as I would have expected.

------
dboreham
A question I have always asked. The answer can be scary because often it isn't
"from customers buying the thing we're making", not even close.

------
zumu
> If you want to spend your life crafting beautiful code with headphones on,
> you can absolutely do that. You will get paid just fine for that. But if
> you’re not influencing others and helping the broader team execute, you’re
> setting a ceiling on the degree to which you can contribute to the company’s
> output.

How does building a stable, easy to maintain, extensible product not help the
broader team execute?

------
jeffdavis
"All you can contribute is what your own two hands can code."

The value of which has no obvious bound. The failure rate of software projects
is huge and each failure can easily cost millions of dollars, or much more if
it amounts to a product failure or business failure.

A single engineer's technical choices can easily make or break a project. It's
hard to tell later which were the crucial choices, though.

~~~
hinkley
Yeah if I believed the line you quoted I’d be very depressed. Is this all
their is?

------
z3t4
You will look better if you join a good team. But how can you know if they're
any good ?

------
pricetag
> This is why engineering career ladders start to layer in responsibilities
> for things that a single individual can’t accomplish themselves. This
> doesn’t mean you need to become a manager, but it does mean you need to look
> beyond yourself to maximize the value you’re able to bring to the people who
> are ultimately paying you.

This is where I am right now. I've been a dev professionally for 2.5 years,
and I'm looking ahead to what it will take to become a lead and eventually a
senior engineer. I notice other senior engineers around me continuously
providing value to those other than themselves: in the form of contributing
more documentation, directing and organizing design meetings, and in general
taking time to gather others to solve a recurring technical issue org-wide,
once and for all.

