Hacker Newsnew | past | comments | ask | show | jobs | submit | michaelochurch's commentslogin

Welcome to Haskell.

No, seriously. We allow side effects. We have the STM monad, the ST (single-threaded) monad, and the IO monad if you really want to go wild. And almost no one seriously argues that the IO monad is "dirty" and should be avoided. In fact, the type signature of a top-level executable's main is IO () by mandate.

I want to make a proposal, which is that we ban the term "side effect". It doesn't mean what people think it does.

For example, the print function puts output on the console but that's not a "side effect"; that's the main effect. I would argue also that non-detectable stateful effects (e.g. building up a large dictionary mutably) shouldn't be called "side effects" (although they are stateful effects) if they're purely implementation details that are hidden behind an interface.

"Side effect", I think, is a case of a term that used to resemble either a design flaw or a non-intuitive behavior (i.e. reading your command-line arguments deletes the strings, which is something that I encountered in one system) that is tolerated for performance's sake; but that has now been expanded to include stateful main (i.e. desired) effects as well.


"Side effect" means something that happens implicitly as a result of evaluation. There's no need to ban the term; we just need to keep in mind how it differs from the more general notion of "effect".


I don't know why the fuck you were down-voted.

That said, age is only a small part of the issue. I'm older and there's still a lot more that I don't know than there is that I do know. I don't expect that fact to change in a fundamental way: there will always be far more that I don't know.

The problem is that Silicon Valley people are arrogant and don't listen. They call the rest of the country "the paper belt" and think that regulators are just stupid, without taking time to understand why the regulations exist in the first place.

Also, there are a lot of older, man-child VCs who aren't 20-somethings and ought to know better.

Much of the youth/inexperience image that Silicon Valley wants to project is out of an intention to create plausible deniability when these companies do wrong. (The same with "Aspie chic"; Evan Spiegel is a lot of things, but I don't think that he has Asperger's, and I wish these people would stop using a real disease that they don't have to justify assholish behavior.) In comparison, if you're 55 and your company is at the center of a sexual harassment scandal, you can't use the "I didn't know any better" excuse or the "I was crushing code 20 hours per day, but I'll create a token 'Chief Cultural Officer' position and pretend to have solved this" justification.


I know why I was downvoted. I heavily criticized startup culture on a community meant for startup folks. ;)

Sidebar: I have Asperger's. It's not a disease, just a difference. And it's definitely not an excuse.


Sounds like Marissa Mayer took Google's stack-ranking machinery and replicated, awful detail by awful detail. What a queynte.

At Google, the bottom categories are rarely used and "Meets Expectations" is a huge window (3.0-3.4) from the 3rd to 65th percentile. Since you only get your bucket, your manager could be saying that he's giving you a perfectly respectable 3.4, while actually raping you in the ass with a 3.0.

Often, you have managers who give the 3.0 and 3.1 to keep reports immobile (they can't transfer) while conveying that they are getting average or average-plus scores. But whenever there's a witch-hunt-I-mean-dishonest-layoff-I-mean-"Low Performer Initiative" those people given 3.0s get hit with PIPs, which is not what even their managers wanted.


We've banned this account. Calling Marissa Mayer a cunt is an egregious violation of the civility that HN requires. (Using an archaic spelling doesn't change that, it just makes it weird.) No one gets to do this here.

I told you just three days ago that if you wouldn't or couldn't stop doing this, I would ban your account [1]. This comes after more warnings, reminders, cajolings, and please-dont's than anyone has received in the history of HN by a long shot. It's painfully evident that you won't or can't stop, and it's time we applied the rules equally.

1. https://news.ycombinator.com/item?id=9994684

Edit: the parent comment was killed by user flags. We didn't delete it or moderate it.


Good job dang. You continue to make HN more of an echo chamber.


The real reason why michaelochurch was banned: https://news.ycombinator.com/item?id=10011017 .


No. I don't know what that comment means, but presumably it's a sophomoric joke, and we don't ban people for that.

The reasons are the ones I gave and have given many times.


Non-competes aren't there to be enforced, but to make the person stinky to future employers. A decent company will cover legal expenses and, in the extreme outlier case, judgments-- and an indecent one will fire you, but you probably won't get sued in either case. The effect of a non-compete on a star hire is relatively small, but if you're an entry-level engineer, the difference between $85,000 per year and $85,000 per year plus theoretically unbounded legal risk is huge.

Non-competes, non-solicits, and (except in a severance) non-disparagement clauses are shitty practices that deserve to die in a taint fire.


Except that the junior engineer's old company won't sue because he is just a junior engineer...

The non-compete risk probably comes only with the star hires / client facing employees (risk of clients being lured to the other company).


Except that the junior engineer's old company won't sue because he is just a junior engineer...

True in practice, but there is risk.

Plus, it's just a shitty conversation to be compelled to have when you're trying to convince someone to hire you. ("One last thing, I'm under this non-compete, so can I get a written agreement to cover legal costs?") An executive can probably get that protection. For a junior, that's a deal breaker. And typically, the vindictive or paranoid firm won't actually sue your next company, they'll just ask your new firm to fire you... and often (for low-level people like software engineers) they will.

Tech is diverse enough and "competition" generally amorphously-defined enough that junior engineers rarely get strung up on non-competes. It's more of an issue in finance.

The only time it happens in tech is when there's a deliberate attempt to destroy someone's reputation, like what a few people (none especially important) from Google tried to do after I left that place.


I think the winning strategy in this case is to conceal from your prospective employer that you're under a non-compete and hope for the best.

If your former company is not vindictive enough to send a copy of the form to your new employer, you win. If they are vindictive enough - you lose, but you would have lost if you told your prospective employer that you were bound by a non-compete anyway.

The mere fact that skilled workers need to contemplate such deceptive tactics as part of their everyday "pursuit of happiness" so that a business can enjoy some risk mitigation I think underlines that Hawaii is spot on in making non-competes outright illegal.


>>The only time it happens in tech is when there's a deliberate attempt to destroy someone's reputation, like what a few people (none especially important) from Google tried to do after I left that place.

That sucks, sorry. I agree it is an unnecessary complication for engineers which may or may not give companies any real protection.


This is but one of many tactics employers will use to try to decrease their own employees' value on the open labor market.


I'd love to hear Giles Bowkett do another dramatic reading, for this essay. The first one was an instant classic: http://gilesbowkett.blogspot.com/2015/06/let-other-95-of-rea...


There is... certainly a learning curve. The Haskell community is still tiny. Per capita, it's one of the best language communities out there. It just hasn't had the thousands or millions of person-hours necessary to make everything pretty and intuitive.

I generally say that, all else equal, and if I were to use a GC'd language-- obviously, there are projects that mandate C or other low-level languages-- then I would use: Python for a short-term (days) project, Clojure for a medium-term (< 3 months) one, and Haskell for a long-term (> 3 months, or multi-developer) one. You don't find yourself needing static typing if you're doing a small, self-contained, line-of-business task like a script. You start to really want it for multi-developer programs and for infrastructural jobs that'll take months to complete (and, at age 32-- that's ancient in programming years-- the only programming challenges that really interest me are the hard ones where Haskell's type discipline pays off in a major way).

Haskell will probably never beat Python in terms of ease-of-use, and (while I would prefer Haskell over other offerings for hard-core machine learning infrastructure) it has a ways to go before it can take over the exploratory data science world (we need data frames, and it's not at all clear what the "right" way to impose type discipline on such beasts is).

All of that said, Haskell is way better than it used to be in terms of user experience. It's gone from god-awful (circa mid-2000s) to hard-but-acceptable, and in the context of a longer-term project (i.e. at least 2 months) the uptake is a rounding error and the pain is paid off.

Furthermore, I don't think that Haskell's opt-out approach to laziness is more than a cosmetic issue. You can have as much strictness as you want; you just have to ask for it. However, high-performance programming in other languages (e.g. Clojure, Python) is also deeply technical and warty. When you start adding type hints and using Java arrays in your machine learning code, it doesn't look like Clojure anymore. My point in all this is that HPC is technical and rough in all of the major languages, and Haskell's laziness is just a small part of that.


"You don't find yourself needing static typing if you're doing a small, self-contained, line-of-business task like a script. You start to really want it for multi-developer programs and for infrastructural jobs that'll take months to complete (and, at age 32-- that's ancient in programming years-- the only programming challenges that really interest me are the hard ones where Haskell's type discipline pays off in a major way)."

IME, this seems to be roughly, "What are the odds you'll need to refactor significantly because the world changed around you?"


Academia is a horrible industry and it's really just CTD (circling the drain) at this point. It's sad, because basic research is important and right now, there's far too little of it being done. Teaching the liberal arts to the next generation is also an important and catastrophically underappreciated job. I think that only about 1 percent of the population (if that) is in-tune enough to see how bad it is that academia is failing, because we rely on it for so much and yet we've allowed it to fall into a state where (barring seismic social changes) it seems to have no future.

All of that said, the ivory tower brought that upon itself. Or, to be more precise, the tenure system killed it by allowing older generations to cannibalize their young, not only by refusing to retire, but by blowing off the work that kept academia relevant. At some point, academics began to openly cop the attitude that research and publication were the real work and that teaching and outreach were just grunt work. The tenured people didn't even bother hiding this shitty attitude, knowing they couldn't get fired for it as long as they had the connections to get their papers published in a timely fashion. A generation later, you had state legislators who went to college but remembered 200-student lectures and professors who obviously didn't care about undergrads, who didn't think much of the experience for that reason, and who cut funding for state universities and public research grants in response, because they saw no value in higher learning or what academia studies because it had never been really shown to them. The big crime here is that, due to the tenure system, the people who originally copped that attitude (being established and hard to fire) kept their jobs and it was the rising generation (which played no part) that got stuck with an imploded job market. A tenure system allows the established generation to put a funnel over the next generation and shit right into it.

What I think is hilarious about academic conceits about "life of the mind" is how opposite it is to the truth. Academics portray non-academics as philistines concerned only with money. In fact, they think about money all the time, whether they're grad students who don't have enough of it, or writing grant proposals, or trying to manage their careers in a collapsing industry. On the other hand, those of us who've left academia think about money much more rarely: it gets put in our bank accounts every couple of weeks, and we don't have to constantly write grant proposals to make that happen. Sure, we have to roll our eyes through meetings about "quarterly KPIs" when the unambitious don't care and the ambitious only care about their personal careers and visions... but that's way better than having to fret constantly about fucking grant proposals like a high school student mashing out a five-paragraph essay about some dead famous person and what it means to him personally. It's hard as hell to have a true life of the mind no matter who you are, but most modern academics are hyperspecialized and so enslaved by the grant-money treadmill that the main difference between them and corporate serfs is that they work 3 times harder for half the salary.


+1

The state of Academia in the softer sciences is now a negative feedback loop -- as the system gets worse, the only people who are attracted to the system are those incapable of making it better. The people who have the capability for self-actualized, mission/vision oriented true leadership are the ones that will be attracted to startups over the current circus.

All the more stagnation and incrementalism for the rest of us to innovate around and profit from.


I agree with your assessment of academia, but I don't think "startups", as HN defines the term, will improve anything.

Academia's one imploded guild system, but venture capital is just as bad. The transition from a "what you know" to a "who you blow" culture happened a long time ago, and I don't think there's any turning back for the Valley. It's one of the most corrupt economic ecosystems known to humankind. VCs collude and arrange outcomes based on prior socioeconomic value to them rather than allowing the market to determine the actual merit of a company or product, and most of what Silicon Valley-style venture capital is, is taking behaviors (insider trading, market manipulation, anti-competitive collusion) that are illegal on public markets and applying them to unregulated private equities.

The trillion-dollar question is whether it's possible for something else (possibly outside of the U.S.) to emerge that outperforms the Silicon Valley nonsense. Academia itself is done, as far as I can tell. It selects for a naive lack of humility (as does the Valley, where people honestly believe that their engineer positions on 0.02% will lead to investor contact and founder status in their next gig... and, of course, that never happens for socioeconomic reasons) because anyone who is capable of getting a realistic picture of his or her probable future in that game is going to exit.


Ah, perhaps. Our systems will only improve to the extent that someone takes the inherent issues on as personal problems.

And in some sense, what we are saying is that systems with metrics that are only shallow proxies for actual success (citations, valuations) often fall into multi-polar-trap type situations [1].

I fully believe it's possible for new(ish) models to outperform Academia and some of the sillier SV practices. It's a question of getting things right in the beginning.

[1] http://slatestarcodex.com/2014/07/30/meditations-on-moloch/


It's why I dropped out of grad school. It wasn't so much that I couldn't get my Masters. I had the knowledge by then to do the required project option, but when I dug into the actual research done at my university that's when I decided it wasn't worth it. It may have been a bad play to bail out but I just couldn't see myself tied to bureaucracy. When I want to build or research something I don't need some pencil pusher to tell me to do it. I just do it. If it's on my dime, fine, but it seems if you go that route then it's much harder to get it published. So, why bother?


The biggest problem I see emerging with Academia is the rise of administrative spending. Per-student administrative spending relative to academic spending in universities has exploded. Those in charge of University budgets are grossly expanding tuition and sinking the money into unnecessary infrastructure upgrades and expansions to the university administrative bureaucracy, with very little of it focusing on quality of education.


In Germany, for every full time employed researcher at universities, there are 2 full time administrators... And the researchers still do all their own paperwork for grants, travel, etc.


The infighting is so fierce, because the stakes are so small. The 'thinking about money' is not at all the same as we in industry think. Its about survival on a shoestring, not about making it big.

Anyway, the academics are so inbred because, well, we made them that way. Did you get your degree from Phoenix, the for-profit college? No? Because its not as legit somehow? That's the real issue. Ivy-league schools are the way they are, because we keep throwing money at them.


The 'thinking about money' is not at all the same as we in industry think. Its about survival on a shoestring, not about making it big.

Absolutely correct. It also begets the False Poverty Effect, in which negative, antisocial, and even unethical behaviors become more acceptable because people think of themselves as poor relative to where they belong.

You see the same thing (False Poverty Effect) in startups. Plenty of startup CEOs and founders feel like it's OK to be unethical because, at a salary of a "mere" $150,000 per year, they're practically performing charity work. When people like they're underappreciated or behind where they "belong" in terms of money or status, they're more willing to do things that aren't exactly legal or ethical.

At least in startups, as you noted, there is upside. In academia, the reward for busting your ass and beating the piss out of the odds is... a middle-class job where you can't be fired. If you'd worked as hard in finance, you'd be able to retire at 40. The stakes are small, the rewards are meager, and this gives the people who are in that game a huge sense of moral superiority.

Did you get your degree from Phoenix, the for-profit college? No? Because its not as legit somehow? That's the real issue. Ivy-league schools are the way they are, because we keep throwing money at them.

And, sadly... we'll keep doing so. If I ever have kids, I'm going to have to spend six-figure amounts on what is, in essence, a socioeconomic advantage under the name of "education". Schools have become a socially acceptable form of inherited wealth that looks like meritocratic academic admissions because, for the outsiders, it legitimately is very difficult to get into the top schools, hence the mystique and prestige.

I think it would be better if we replaced this socioeconomic "black box" of educational admissions with a purely test-driven system. Sure, there'd be really smart people with mediocre test scores who can't get into top schools... but that already happens, just for different reasons (socioeconomic ones rather than flawed testing). However, you'd kill that stupid mystique about Harvard and Stanford having some supernatural ability to select future leaders and people could just say, "yeah, my test scores weren't great", and that would be that. It wouldn't be some huge shame for a valedictorian to get shut out of the top schools; it would be, "I'm not great at standardized tests" (and smart people who aren't good test takers do exist) and that no one would care after age 19. It would work out well for the students at the Ivies who actually want to learn because, on average, they'd have better colleagues. It would probably end the 6- or 7-figure per child, pay-for-socioeconomic-advantage racket surrounding the top colleges and prep schools (and, in New York, grade schools and fucking pre-schools).


The tenure system is a relic. It served its purpose but it's not compatible with today's culture.

It may or may not be the case that only 1% of the population realize the full extent of how bad it is, but a large part of the population knows something is wrong with the system. Just look at how expensive college has become. Everyone knows this is a problem. It may be that the tenure system has some part in the price increase also. Tenured faculty are not only secure in their positions, but in their salaries. This denies universities the flexibility to adjust salary expenses and forces them to charge students more. The majority of the population may not be aware of how bad the problem is, but the increase in tuition is a very visible symptom of the problem.


“Academic politics is the most vicious and bitter form of politics, because the stakes are so low.”

— Sayre’s law

https://en.wikipedia.org/wiki/Sayre%27s_law


Academia is a horrible industry and it's really just CTD (circling the drain) at this point ... Or, to be more precise, the tenure system killed it by allowing older generations to cannibalize their young. At some point, academics began to openly cop the attitude that research and publication were the real work and that teaching and outreach were just grunt work.

America is not the world. Just as researchers fled to America, it might happen that they will flee to somewhere else.


I don't agree with how you frame the academics as the bad guys. I do agree the system is FUBAR.

There is a tremendous failure on the behalf of universities in the way they hire academics and how they treat them.

Universities preferentially hire world class _researchers_ so that they pull in maximal grant money which they can then leech upwards of 70% in dramatically overstated "lab fees". Then, they force these researchers to go through pointless habilitation exercises and then teach classes which, the vast majority of the time, have nothing to do with the academic's research. A new professor will likely be forced to teach the most advanced classes that are not specialty classes (in physics say Electrodynamics, or Quantum Mechanics) because no one wants to teach the hard subjects that aren't their own field. This means that the new professor, for the first several years, will spend 10+ hours a week studying the concepts themselves to they can adequately teach the class.

Then, in most situations, the academic, on tenure track is simultaneously forced into a support administrative position. They are required to arrange anywhere up to half a dozen business trips a year which entails days of planning, applying for permission, purchasing fare and lodging (of course out of the researcher's own pocket), applying for reimbursement, etc. And god forbid you host a meeting yourself, that has a whole slew of it's own responsibilities. Then of course there's the day to day applying for major grants which you need to do yearly, applying for purchase permission for lab equipment which, depending on your lab can be once every few years (computer labs) to once every few weeks (geophysics for example buying reagents). Also you need to organize and attend anywhere from 1-10 meetings / invited lectures per week.

This person, who has gone into academia because of their passion for a specific aspect of their field now spends the vast majority of each day micromanaging students, studying a topic they don't care about, teaching that topic to a class of students who likely also don't care, filling out redundant and often confusing legalese style paperwork and teaching the exact same skills over and over again to the steadily coming and going research assistants.

And _none of this matters a tic on the resume_. All that people care about is the paper output, which is what the researcher wanted to do in the first place. Is it really a mystery as to why your undergraduate professor seemed pissed off and stressed out?

The problem is universities hiring world class researchers to do administration and teaching when they should be hiring administrators and teachers. Researchers should work at research facilities like Fermilab, CERN, NASA etc. Does it really fucking matter if your Physics 1 professor got a Nobel Prize back in the 60s?

Also most academics I know don't share your perceived opinions of looking down on undergrad students, the general public, grad students, etc. Most of them are just really disappointed that they can't do what they got into the business to do and are used to dealing with people who don't care about them or their passions at all.


This is an interesting perspective. I didn't intend to "frame the academics as the bad guys" but I can see how it came off that way.

To be blunt, I don't think that the current generation's academics are at fault at all. This rotten system was built decades before they came on the field, and they're just trying to survive in it.

I'm putting blame, mostly, on the older generations: the Boomers, the Silents, and the "Greatest" Generation. They had it so good that they must have assumed that they could just ignore the teaching part of the job, so they devalued it, creating a state where even those who want to focus on teaching aren't rewarded for it.

I don't even fault specific people. I fault the tenure system. I understand its value, but I also see how it allows the older, comfortable generation to behave in a way that hurts the young. The blow-off-the-teaching attitude isn't something I see in most 30-year-old professors (and, to the extent that it exists, it's a rational response to a system that doesn't reward it at all). It's something that started decades ago. The tenured professor, who could blow off his teaching and administrative duties with minimal consequence, could say to his juniors, "I get five papers out per year, so I don't see why you can't do it." Academia has this weird dichotomous system where you're either almost impossible to fire (tenured) or treated as human garbage, with nothing in-between.

Of course, university administrators and politicians are also at fault, but one has to wonder why they've decided to impoverish academia. Many of those administrators are ex-academics, and the politicians' anti-intellectualism and resentment of academia has to come from somewhere. To blame academics entirely is to miss a lot, for sure, but one has to assign to them (again, with blame falling most on the older or retired ones who were most influential when this mess began) a fair share of the responsibility.


To start the flood of anecdotes, I'll suggest my old digital circuits professor who never returned homework, ignored the textbook and was never present for lab help. His grades always came out weeks late. And he started doing that long before he got tenure. Because he was a prolific researcher with lots of grant money coming in.

So tenure wasn't to blame - its an effect, not a cause.


Worth noting is that it's not just about titles. Titles matter, but they can also become a joke. It's easy to imagine a company, realizing that its best seniors are underpaid, inventing a new title to justify paying them only 10% more instead of the 30% they should get.

The bigger problem is that most companies view "engineer" as "implementor of ideas that come from the business". Hence, all that Agile/Scrum bullshit in which engineers just churn tickets, rather than making meaningful technical decisions and building projects of increasing scope. No one who has any leverage and talent wants to work in that way. This becomes self-perpetuating, because even though there are good people who stick around (usually, with kids in expensive private schools, or uninsured sick relatives) the assumption becomes that good engineers leave after a certain point and, thus, that anyone left isn't any good.

For me, I only enjoy coding if it's part of a bigger whole, and if I am proving something in doing so. If I'm stuck in a ticket shop and can't leave for 2 years for some reason, I'm going to manage (preferably officially; unofficially via aggressive delegation if necessary) because I was done with that junior-level business-story coding several years ago. I graduated out of it long ago, and I won't be put back there like Billy Madison.


Totally agree with your second paragraph.

Good technical people at large companies (ran by non-Technical management) are often undervalued. I see over and over again how an engineering team gets a non-technical PO/Manager - who is just a very bad proxy. They can't bring any important insights into technical products and can't easily fix inter-team dependency. That's why all Google's APMs are technical (most with CS degrees).

This gets worse when top level management is not technical for a technical company. Since they are not technical, they don't have good vision about where the industry will go in 10 years and what are the limitations. Ex. Microsoft under Steve vs Satya. One only had a vision for next quarter and the other seems to think longer term (and knows where the technology is going).


> The bigger problem is that most companies view "engineer" as "implementor of ideas that come from the business".

Isn't that the inherent nature of a lot of the programming jobs, though? For example, I'm currently contracting at a e-commerce company. My day to day work is as you described - closing tickets that get assigned to me in the Sprint. I also suggest new tickets, but they're solely limited to technical issues (mostly addressing technical debt, trying out new technologies etc.).

Honestly, I wouldn't know how to suggest anything on the business side - I don't know a first thing about how the market we're in operates (except that it's very competitive), and we have a separate person (Product Manager) whose only job is to think of new features for our team to implement. I think that's the only arrangement that works for non-technical products, which is what vast majority of programmers work on.


I was thinking about the same sentence you highlighted, and I think you're right.

The problem is that it's often bundled with a similar but patently false and demonic idea---that the business and technical sides can be siloed without ill effect. They can't.

Someday someone will write a best-selling business book about how it's valuable for management to have technical expertise, and it'll have some catchy term like the "mangineer" or something.


Some of the better VC firms (eg. a16z, YCombinator) are already putting this in play with their investment decisions, but they would rather profit off it than write a best-selling book. There's a reason why the conventional wisdom in the Valley - at least among firms in the know - is that you need a technical founder who also thoroughly understands the business.


Then empower yourself by learning how the business/market works, or if that sounds stupid and boring, leave for someplace where it wouldn't be.

I'm not the OP, but the point I think is that as long as you are content to be a "code monkey" (no disrespect meant at all, but that's what it sounds like) that just does what they're told for 40-50 hours per week, you can't expect to have any upward career growth.


In this kind of setting there is no career growth though. You're either a 'code monkey' or someone like a technical product manager, or you manage people. They are all different paths, with none of them being inherently better or worse than others. Money-wise, a lot of code monkeys are contractors, which means that they take home as much or more than senior management.

Honestly, I'm not even sure how "upward career growth" could look in a company structured like that. I don't think I saw a single programmer in here who empowered himself with business domain knowledge to a degree where he could make meaningful contributions. I guess we're all comfortable with where we stand.


Engineers, speaking generally, are more than happy to work with the business.

Where there's divergence is that engineers don't want to work for the business as a subordinate, or for compensation that justifies working on something less interesting or career-beneficial than what one would prefer.


> The bigger problem is that most companies view "engineer" as "implementor of ideas that come from the business"

This is exactly what I tell people when they ask why I'm applying to business school instead of being a career software engineer. Engineers will almost always just be implementers of other people's strategy decisions -- and they will be largely fungible -- but the strategy decisions are where you can have a real lever effect on organizations as an individual.


The "parallel" technical career path never seems to deliver equal amounts of power, or even money, as compared to managers on the same level.

Very true. Engineering is the hard way up, because there's so much less of the title and grade and salary inflation on the management track. Take Google. If you're a manager and don't make Director in 5 years, you fucked something up. On the other hand, the Director-equivalent Principal Engineer rank is 3 jumps (all of them non-trivial to make) above Senior. When I was at Google (and this is probably no longer true) the number of Principal+ Engineers at Google NYC was... zero.

The cynic in me suspects that dual-track organizations actually serve management's goals by making it look rank-per-rank superior, just as the lopsided college admissions climate convinces middle-class public school kids that prep kids who get into Harvard are somehow impressive (because it is very hard to get into an Ivy from a middle-class background, but really easy for rich legacy kids). If you make it astronomically difficult to become a VP-equivalent engineer, then the VPs (who had a much easier climb) look more impressive. Far from providing a genuine alternative path to success, this process cements the tribal superiority of management.

Most telling is that when Google really wants someone and is competing with finance or Facebook and gives them a High-Compensation Plan (HCP), the person is put on the management ladder, even if that person intends and expects to be a full-time programmer. It's really hard to justify a $500,000 salary for an engineer but much easier if you give that person a managerial title. I'd imagine that Google isn't alone in this. It's probably a standard big-company thing.

Engineers (and, in finance, also quants and strats) also share some of the blame for the relative grade deflation, because we beat each other up relative to businessmen. They give each other consistently high marks and talk each other up. We're far too honest. And this "honesty" is something I've come to view negatively because what it really is, is ratting someone out to management, often cheaply or for free. My inclination, if they aren't hurting me or a project that I care about, is to protect underperformers, not because I like it when people underperform, but because information is power and I'm not going to share honest performance information on other people unless there is a legitimate reason to do so. (I care if someone is fucking up my project, or an existential threat to the company or my career. I don't care if he's costing someone else's company a salary while doing nothing; that's not an existential threat, so who cares?) But engineers have a storied history of being willing to tear each other down for cheap or even for free, and technology management has been exploiting our lack of tribal cohesion, in order to turn us against each other, for decades.


Pretty sure a lot of what you said about Google isn't true. I personally know at least one Principal Engineer who works on the Search team in Google NYC; it's possible he was promoted after you left, but even then, he would've been Senior Staff and highly regarded.

Also, upper management in Search is still on the engineering ladder. These are folks with 2000+ and 500+ folks reporting to them, one of whom reported directly to Larry when I left, with net worths probably in the hundreds of millions, and they've chosen to stay on the eng ladder.

I also know folks who were special hires (tech celebrities elsewhere in the industry, with independent press and a strong publication record) who were hired in as Senior SWE with a salary befitting their previous accomplishments.


There were Senior Staff SWEs at Google NYC when I was there. It's not surprising that there's a Principal SWE now.

You're talking about anecdotes with regard to those highly-compensated engineers. They exist, but I don't think that anyone entering Google at 2015 has any real chance of becoming one of those 9-figure engineers from a SWE-3 start.


Growth is everything in both tech and careers. I don't think someone coming in to Google as a SWE-3 in 2015 has a realistic chance of being a 9-figure Distinguished Engineer while rising through the company. I don't think a manager does either - Google will be dead before they can climb the hierarchy. I think someone coming into Google as a SWE-3 in 2015 who then quits after a year or two and either joins a fast-growing startup or founds their own has an excellent chance of being re-acquired in 5-10 years as a 8/9-figure VP.


I don't think a manager does either - Google will be dead before they can climb the hierarchy.

You think so? Why do you think Google will be dead in the next few years? I'd bet on it being around, in some form, even 50 years from now.

A halfway competent manager at Google will make Director in 5 years and VP in 10. That might be, in part, because Google has so few competent managers that a "5" or a "6" is a local 9.75. And (for as much as I trash Google) I think the odds are that Google will be around in 10 years.

All of that said, I'd imagine that there are plenty of VPs and Directors at Google who are not making 8- or 9-figure packages. You can get VP on seniority alone at Google, just by not making mistakes once you're on the management ladder, but the 8-figure RSU packages require a bit of luck.


I don't think Google will be dead in the next few years. I think it will be dead in about 15-20 (because that is the typical lifespan of a tech company - witness Sun, SGI, DEC, Apple if Steve Jobs had not returned, Compaq, Microsoft, and many others). I also think that the average manager at Google will never reach Director, and indeed a SWE3 has a better chance of making Distinguished Engineer than a manager does of making Director.

The reason I believe this is simple numbers. Assume a Director is responsible for a department of about 120; he has 5-6 direct reports (all managers), who average 2 managers and a handful of direct reports. In total, the department has 15 managers, one director, and about 100 ICs. In a steady-state company (one that is not growing, which I think will increasingly describe Google in the near future), the only way for an existing manager to get the director job is for the director to vacate it. When will that happen? The competition for the spots the director would want to move upwards into (VP positions) is just as tight, and they are often filled externally. The competition for the CEO spot is non-existent; there is about zero chance that Larry will step down during his lifetime. So every single manager has to wait for the Director to retire or leave the company, and even then, he has only 1/15 chance that he'll be the one selected.

Things were different when Google was doubling in size every year; when a company grows that fast, it's ready for a new level of management every 2-2.5 years, and instead of multiple people fighting for the same spot, everybody on the team could be made a manager and a new level of fresh recruits placed under them.

On the engineering ladder, at least, promotions are not zero-sum. You can get promoted for building a system that has high impact, without having to displace anyone on the org chart. The problem is that "high impact" is hard to define for promo committees, and so they often fall back on metrics they're familiar with like "number of people on the team" when assessing promo cases. But the number are not against you the way they are when climbing the management ladder.


I'm not sure you have demonstrated what you are trying to show.

If I understand correctly, you've calculated the chance a manager is promoted to director as 1/15 * average number of directors that leave over the relevant time period.

But you haven't made any argument about the chance an engineer is promoted to distinguished engineer besides stating promotion non rivalrous. A system in which no one is promoted to distinguished engineer is non rivalrous, for example.


The false assumption is that you need to have 100 people under you to be a Director. It's a title, not an organizational role.

Managers benefit from a seniority system at places like Google because you get automatic level bumps after so long. Sure, the ladder will get longer at the top (there will be VPs and SVPs and EVPs and SEVPs and CVPs) as they have to invent new levels up there, but the fact is that it's just much easier for you if you're a Google manager with guaranteed promotions for average performance, as opposed to an engineer who has to do something special to get Principal+.

You could be right, though. Google may have to do an honest layoff (as opposed to the dishonest stack-ranking/PIP bullshit which is a layoff masked as a "low-performer initiative") and, when that happens, a lot of managers are going to find themselves on severance packages. The ones who manage to hold on will still be getting the guaranteed title bump every 2-3 years, unlike engineers to whom no guarantee is made, but it won't be the same, and being a manager at Google won't be the cushy, write-your-own-performance-reviews job that it historically has been. The churn will free up positions, but the game will (as you noted) feel more zero-sum than it is when it's expansion that creates them.


Until engineering decides to do something about it, engineering will always be subordinate to management.

There are no true parallel career paths.

You nailed it. That is all. If we want respect, we have to fucking earn it by forcing businessmen to see us as equals, whatever the effort and cost.


What would "forcing" look like? Typically forcing someone to do something requires power - political, financial, or other.

When engineers have something that managers or investors desperately want (e.g. Zuckerberg et al), then engineers have power. When engineers are interchangeable code-monkeys, then managers and investors have power. Of course, engineers could band together in a labor union to increase their power, but managers and investors don't like that very much, and that generates a cat-herding problem.


I'm curious what exactly you have in mind.


Well, if nothing else works, a programmer's union.

I'd prefer something more like the Screen Actor's Guild, which provides support (legal assistance if you need it, access to talent agents) but doesn't regulate compensation. That said, I don't think things necessarily need to go that way, and I don't want to see the negatives of traditional labor unions. But that shouldn't be off the table. The other side isn't going to play nice, so neither should we.


FYI, SAG does set minimum compensation, working conditions, meal requirements, etc. It doesn't set upper bounds or demand that more senior people get the better jobs.

It's also somewhat difficult to get into. Any aspiring actor can't just go and join.


FYI, SAG does set minimum compensation, working conditions, meal requirements, etc. It doesn't set upper bounds or demand that more senior people get the better jobs.

Sounds like what we need in software: downside protection (especially against managerial misbehavior) but no limit on the upside, and no stupid seniority system.

It's also somewhat difficult to get into. Any aspiring actor can't just go and join.

How does it work?


I'm sure I'll get this wrong, but the way it was explained to me is that you need to appear in 3 SAG productions in order to apply for membership. Since it's a big hassle for the movie production to get an exemption to hire non-union, you need to be special in some way (the director really wants you in particular, you have some special skill like dance, etc.). It helps to know other actors who will call you and say "hey, they need a ballerina to be in the background tomorrow" or whatever.


I'm also not sure how you'd bootstrap something like this for programmers. The reason it works for actors is that every actor who is even slightly famous is a member, so every production has to work with the union or only get completely random people (you're still allowed to make an indie film with your friends if none of them are members).


I think the selectivity problem is less of one for programmers than screen actors. We can use code tests or Github for membership screening. Thus, we don't create the chicken-egg problem where (a) it's almost impossible to prove yourself if you're not part of the union while (b) you have to prove yourself before you can join.

Getting broad-based membership is much harder. This is an industry full of (a) young people who think they'll have investor contact in 6 months and be founders in two years and retired in six, and (b) indentured servants on H1-Bs. Even if we get 95% of the top 50% of programmers (and that's wildly optimistic) as members, most managers will just ignore their need for talent, in that case, and hire bottom-rung engineers, preferring that over being responsible for bringing in a union. It (that is, hiring bad engineers to avoid bringing in represented ones) won't work, but it won't hurt those managers' careers personally, so nothing will be done about it.


* Who writes the checks?

* Who writes their own check?

Those people hold the power.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: