Hacker News new | past | comments | ask | show | jobs | submit login
This career feels like a few key hours with year-long cool-down periods (reddit.com)
205 points by MattGaiser on Oct 2, 2021 | hide | past | favorite | 144 comments



This attitude is terrible and corrosive to your own sense of self-worth.

Yeah, life isn't fair, let alone performance reviews. No matter who you are, someone else has it easier, like the trust fund kid you see driving past in the Tesla, but do you think he's happy?

We all have to eat, so by all means take the next job that will pay you more. But when you're at that job, whatever you are working on, take pride in it! Always do the best you can, even if you hate your boss. This is not for the benefit of the company, it's for your own mental health and integrity. Over time this builds your skills and competence, which opens more doors. Petulantly slacking off because you weren't sufficiently recognized hurts no one but yourself; the universe does not care.


>This attitude is terrible and corrosive to your own sense of self-worth.

I would argue that tying your self-worth too closely to your career can be even more corrosive. Sometimes doing the bare minimum and saving your mental, emotional, and physical energy for your life outside your work is even more rewarding.

I say this as someone who has spent time at both ends of the spectrum. I have had stretches in which my career is my only focus and times in which I honestly put in maybe half a day's worth of real effort in an average week. Which is better all depends on the specifics of your life, your job, and your personal motivations at the moment. And it is probably worth noting that my career didn't progressive any faster during those workaholic periods compared to my slacker periods. However those slacker periods were clearly better for my life outside of work.


I have experienced a different version of this.

I worked a lot on my studies, mostly in studying faster and a fair bit in obtaining high grades and studying wide/broad and studying deep (I studied for 8 years). Some things I have done were claimed to be impossible feats. I have taught others how to do it, how to think about learning, even one article was written about me.

But the resulting job search was so brutal that I flipped to the other end. For 18 months, I couldn’t find a job and I applied to a very broad bunch of positions and companies taking 4 hours on average to write a motivation letter and tailor my cv. The result? No response. No company cared what skills I have gained during my studies. They see courses like hardware security as non-practical and a course on multithreading as mostly theoretical. They couldn’t care less that a part of what I learned there are transferable skills.

When I learned that hard work isn’t proportional to career advancement, that’s where I decided to do whatever I feel like. I have too little control over it anyway.

This is a European perspective. I doubt that things would’ve gone this badly if I was American. My way of thinking seems to fit better there (though I could be wrong).


> The result? No response. No company cared what skills I have gained during my studies. They see courses like hardware security as non-practical and a course on multithreading as mostly theoretical.

I wouldn't take that personally, or even as a strong indication of a problem with your hard skills.

Sometimes recruiters mainly look for real-world experience because that makes a hiring a candidate easier to justify. People without work experience or a portfolio are a crapshoot. Also, resume embellishment is indeed a common problem, thus great but unverifiable CVs might raise a red flag. Furthermore, if a company is looking for someone to tighten nuts but they get a CV from a highly trained engineer, they might prefer to pass on him. After all, if he's being underemployed then he might not be planning on sticking around for long.

And finally, but not less importantly, soft skills matter. Sometimes they matter far more than hard skills. A recruiter can tolerate a competent candidate that is eager to learn, but they will be less inclined to tolerate an outstanding developer who is unbearable, insufferable, or unwilling to learn from (and work with) team members.

In the end it's all a crapshoot anyway. There is a lot of confirmation bias, and a lot of lottery winners offering advise on how to win lotteries, but we would do well to acknowledge that the stars need to be aligned for good things to happen, and often they aren't.


I have a similar experience, also European. While I'm not nearly as unlucky as you are regarding job interviews and getting a job, I can attest that the majority of corps I met do not respect transferrable theoretical skills (e.g. the ability to work in any language of the same paradigm, distilling overly corporate buzzword lingo back to basic programming concepts). Instead, they would rather have someone who learned enough trivia to pass a basic test filled with code samples you'd never* see in real life, or which a compiler would quickly correct for you and teach you not to do within a week.

Additionally, they will have you stuck doing mostly low-tier work spawning from bad decisions in the past instead of biting the bullet and having someone fix the foundation, and often perceive fixing that foundation as a skill only seniors / architects possess. I've met my fair share of seniors who believe design patterns are some of the highest order knowledge, despite having to learn them during my bachelor over a longer span of time than they get taught in-house, let alone having to actually use them.

NB: this is not a jab towards seniority. But I do believe most corporates do not value educated juniors correctly, often equating them to uneducated juniors, as well as underestimating what makes a senior a senior. Basic CS fundamentals shouldn't be a skill exclusive to seniors.


Not saying this is you or GP, but I've dealt with enough juniors who just thought they're really smart and awesome but lacked any sense of what it's like to develop software for actual, normal people. They couldn't grasp that you don't just break your software for 20% of your userbase because it results in a cleaner database layout or nicer abstraction layer for something internal. "No I know what I'm doing, look I have this github project with 500 stars and none of the super techy people who use it ever complained when a new release broke something"

Yeah, no.

Usually these people come in two flavors: Those actually smart and developing an understanding for what it means to sell software and have customers with demands, and those who live in their little bubble where they're the most awesome person on the planet, and everybody else is just retarded. Halting all development for a year and refactoring everything according to what they think would be way superior after spending 5 minutes with the codebase is obviously a sane thing to demand.

And I usually try to let them fall into this trap in a controlled manner, like when it's a relatively unimportant component/feature, or just one customer where I can more or less directly relay the expected complaints to the junior dev. Usually playing the "this guy is responsible for your paycheck" card makes something click after a while.


>Halting all development for a year and refactoring everything according to what they think would be way superior after spending 5 minutes with the codebase is obviously a sane thing to demand.

Sure, but this only paints one extreme. It's fair to expect adults to realize money has to come from somewhere, and halting any development and even bugfixes won't keep customers. On the other extreme, we have sales and management pushing insane demands, which get tacked onto already poor code, degrading further, causing bugs in the future, increasing the risk factor, on top of already taking more than 5x as long as it reasonably should with no difference in features whatsoever. Which further escalates into high turnover rates, worse code quality, dissatisfied employees, no seniority willing to come in unless they get paid big time, and more. It's a fine line no matter how you slice it. Both extremes can run a company into giant losses or even bankruptcy.

Additionally, demands on juniors to prove a business case are often far higher than their seniors or managers, despite giving juniors less resources to do so. With such a simple mechanism in place, it is fair to assume the juniors who do go through the trouble of speaking up care about the quality of the product and their responsibility in the matter. Likewise, I've seen plenty of seniors fall into the same trap you described, either halting all progress or spending (read: wasting) months developing a strategy out of analysis paralysis only to not even have a business case. If anything, they tend to be able to do this even easier, since they are met with much less resistance thanks to their reputation and/or authority.


My companies fired 2 PhD’s. They were super smart, understood all the leading research results etc. but had no clue how to turn theory into practice. Theory is not practice.


> This is a European perspective. I doubt that things would’ve gone this badly if I was American. My way of thinking seems to fit better there (though I could be wrong).

You are wrong, unfortunately. There's a reason for the saying: "The A students work for the B students, the C students run the business, and the D students get the buildings named after them."

A less cynical take is that in school, marketing skills (e.g. self-promotion and self-inflating) are irrelevant. In industry, they are at least on par with technical skills, and in most roles I've encountered, even more important. Look at the people you know who were fired (directly or made miserable enough to leave voluntarily): People are more likely to get fired for not understanding and exploiting social dynamics than for being poor in the technical arena.

Also, in school, they care about objective evaluation, and usually your performance is not dependent on others. At work, your work is heavily dependent on others, and almost no one tries to objectively evaluate your work (unless you're in sales or something).


But if you've done research or tried to get a recommendation letter, you know self-promotion and self-inflating also matters in academia. Especially if you go to a large public school.

> objectively evaluate your work

I suppose if you're talking about code quality et. al, yes, but you definitely do get evaluated on its impact on the business. If you are part of a successful product launch and you engineered major features (even if other people could've written those features) you get rewarded.


I wasn't referring to academic jobs, but being a student. I don't need recommendation letters to get an A or to learn.

> I suppose if you're talking about code quality et. al, yes, but you definitely do get evaluated on its impact on the business. If you are part of a successful product launch and you engineered major features (even if other people could've written those features) you get rewarded.

A few remarks:

If you do something fairly major, then probably yes.

If you do something fairly major, there will often be people around you who will attempt (and often succeed) to take a fair amount of that credit without having contributed much. So yes, you get rewarded, but so will others who shouldn't. This is very common where I've worked. I think it's generally the case in large companies.

We should not focus on major product launches where you did major work. Say there is an existing product and most of the work is bug fixing and adding features. This category is where most of the work in industry is, and is where my comment mostly applies. This is also the category where innovation is highly touted but rarely rewarded. I've certainly been in jobs where innovation is needed, but the one who steps up to solve those problems is often the one who gets poor reviews, because everyone in the team becomes more productive because of him, and the manager sees less output from him because he spent a big chunk of his time solving infrastructure issues.

When I speak of objectively measuring performance, people often compare how it's done between jobs. This is not the point. Compare with how it's done when you were a student. In most technical courses, it's highly unlikely that someone who barely understands the material gets an A grade while simultaneously the one who understood the material well gets a B or a C. In industry, this scenario is quite common.


Would you mind sharing your blog(if you have one) I'm a student and have only recently begun to appreciate the art of meta-learning and i would be grateful to learn a thing or two from people wiser than me? thanks!


Those skills seem like a perfect fit for the video game industry, did you try there?


I am scared of that industry unfortunately. Also, The Netherlands is not a good place for it I think.


I diagree, I think this person has the right idea. Corporations aren't people. They have no feelings, no loyalties, no empathy. Sure the people who work there do, but you all work for the Corporation.

Exploit the corporation. Give them exactly what they pay you for an not an ounce more. Stay within the bounds of the law and your personal ethics, but extract from the Corporation just as the Corporation extracts from everything else.

Don't tie your identity or self-worth to your contractual obligations to the Corporation. Use the money you extract from the Corporation to enjoy life and the things that do define you and give you your sense of self-worth.

The universe does not care if you're good at your job or not. You've only got so many years until you're dead and gone, spend as little of it as possible working and as much of it doing the things as you enjoy. If working is what you enjoy, good for you, but it's not everyone's cup of tea.


I completely agree with this line of thinking as I enter my 30s. But having lived in Europe for a while and seen the dark side of this "work to live vs live to work" mentality, we have to accept that building cutting edge stuff is the result of many hours of pain and suffering and most of all sacrifice. Somebody has got to do the pain and suffering part so that everyone else can do more of the "just work up to the requirements and not an ounce more" part.


If companies were structured as employee owned worker cooperatives, then that sacrifice would be meaningfully rewarded. As it is now, a lot of people sacrifice so a handful can walk away with the rewards created by everyone else's sacrifices.


Driven and intelligent people will always be pushing the boundary because they feel a calling to it. The only tragedy is they're often not justly rewarded for it.

I'm in the "not an ounce more" camp, but I also don't expect a cent more than I'm owed in return. Those who do push themselves further for the benefit of humanity deserve more than I do.


Why do you want to build “cutting edge stuff”? Honest question. Is it to prove yourself to the world? Out of interest? I am asking because 99.9% of real problems that customers are happy to pay large $ for is not cutting edge. Cutting edge is called cutting edge because it has sharp bits and you will bleed.


You're misinterpreting me here, I never said work overtime or devote your life to the company. My point was that your work and skills are an investment in yourself (especially if you work in software), and you're sabotaging yourself if you take the cynical view that what you do doesn't matter because interviewing pays off more than a capricious promo process. The fact is that doing good work has long-term feedback loops that build your opportunities from both a skills and relationships perspective. Job hopping early in your career will definitely ramp up your salary faster, but over the long-term it pales in comparison to having a good reputation.


Ok you make a fair point, but that is not what I took away from your original comment. I was not intentionally misrepresenting you.


This x 1000 !

There are not enough upvotes in the world for the parent post, but please add yours.


And yet, is he wrong? It's a plain fact that after busting your ass for a year, your promotion will in most cases be shot down during performance review for all the usual scope ("not enough scope", "I want to see more leadership", "almost there but let's consider it in a year", etc)... and yet a single day of strong interviews can get you that bump just like that.


Yes he's wrong: to be promoted you must be doing the next job already and the management must be terrified you leave.

You can love your job and hop out sometimes. But petulantly slacking off like OP says, is not going to make you happy.


So getting hired for 20% more salary is much easier than performing at the next level and getting a promotion?

Op is not saying he’s slacking off. He’s saying it doesn’t matter what he does.


Yes he's wrong: to be promoted you must be doing the next job already and the management must be terrified you leave.

Sure about this? This isn't even possible everywhere - doing the next job, for example, isn't generally possible for lower wage jobs. How the heck are you going to train for a shift manager position by learning the job when you literally don't have the authority access to do it?

You don't.

Terrified that you leave? Try that in a call center. You, no matter how good you are, will be easily replaced with another warm body or two and folks quit these jobs all the time.

Are you sure petulantly slacking off won't make one happy? I mean, what if you get joy out of seeing how far you can push that button - or alternatively, don't get satisfaction from a 'job well done' like you are told that you should? Or maybe you only do well for some recognition that you aren't getting... or maybe jobs don't give you satisfaction at all. They merely give you the means to do stuff that does make you happy.


The context here is software development. Depending on what field you are in, I would tend to agree with you that it might either not be possible or a bit harder.

That said, even in software, you don't always 'have the authority' to do that other job. But does that matter?

Example: you're the junior, new to the team. When the team does backlog maintenance, everyone just slaps some estimate onto the barely defined ticket and calls it a day. Sprints slip all the time because tickets "explode" once you actually start working on them. The team lead does nothing about it, the PO couldn't care less, he just screams at everyone when none of the tickets are done at the end of the sprint.

The junior could just resign himself and play along. Or he can start asking "dumb questions" during backlog maintenance. I.e. start a proper discussion. Suggest tickets to be split etc. The bad team lead and PO might ignore this and even actively try to get back to just slapping on estimates, not actually do the splitting or say "yeah I'll do the splitting by the time we do sprint planning" and then obviously nothing ever happens.

Do it yourself! Offer helping out, to give them a chance to be part of it. They might refuse or try to "pull rank". Ignore them. Split the tickets. If you can't do it before a sprint starts (e.g. cause they'll notice and try to pull rank), split them after you've started on one of those bad tickets. Split it into 3 nicely sized ones and at the end of the sprint you can show that hey, ticket 1 is finished, ticket 2 is almost done and ticket 3 isn't even started yet. We can release the functionality of ticket 1 to customers even!

You've just done all of the following:

    Shown that you're not the junior you've been hired as but much more!
    Ignored the team lead's authority when it became clear that even when shown the proper way, he's not going to act
    Ignored the PO's authority when it became clear that even when shown the proper way, he's not going to act
Let's take this to the call center:

Folks quit these all the time, like you said. Even the shift leaders or managers. I don't know enough about call center operations to know what the equivalent tasks of the little story above are but I do know from experience w/ some of our guys that it's totally possible there as well. We had a really great QA that came in through the call center. Started as a regular rep, became a shift lead, moved into QA and then became a BA. He was awesome at that. Knew everything by heart or was able to quickly try it out in-product. Heck the department lead came in through the call center as well. Similar trajectory but didn't move over to the software side and stayed on the business side.


It's not about petulance, it's about motivation. I'm in a similar position to the author but acting more like you would want; I care about being good at my job and want to deliver because that is how I was raised, but there is a constant tension in me that this is the "wrong" approach since no company actually rewards loyalty or expertise, at least not nearly as much as self-promotion and being a corporate mouthpiece.

Regarding promotion and being indispensable, that cuts both ways - in some roles being impossible to replace also means you are impossible to promote, since the next step up the rigidly defined corporate ladder may not have sufficient overlap with your current role.


Solution is give pay bumps without promotions.


> This attitude is terrible and corrosive to your own sense of self-worth.

For some context: That subreddit is historically very cynical. It's more of a support group and a place to vent than an actual advice forum. A lot of people arrive on /r/cscareerquestions thinking that the only way to succeed is to spend all of your spare time doing side projects and grinding leetcode while pursuing FAANG jobs.

I would sometimes try to answer questions there in between long builds but it became very demoralizing. Many of the regulars there are struggling with their careers or disgruntled with their jobs and they extrapolate to the entire tech industry.

There were occasionally people putting in good comments in the sub, but it tends to get drowned out by cynical complaints. You know how internet relationship advice forums devolve into everyone telling the OP to break up or get divorced? That sub felt like the CS equivalent of a relationship forum: The advice is always to blame your employer or the industry and quit your job, ignoring any nuance in the situation.


Cscareerquestions also has the same problem all most all of reddit has, you cant express any ideas outside of what the hivemind says.


For my own mental health why would I take pride in a job I hate? A job where I can't agree with my boss? Why would I care about more money when I have enough?

This sounds like accepting and denying more than anything. I would wish anyone a job they are actually valued in, a job they like.


I think he means take pride in the quality of your work, not in whom you work for, as you seem to be inferring. I.e., don't the job harm the good in you.


I dunno, my attitude is that capitalism is all a grift anyway so I do the best I can when I’m at work, then immediately forget all about it come 5 o’clock. The grift is that “fake it till you make it” legitimately works. Lie a bit in your interviews to make it look like you have experience, then you have at least 6 months to figure it out once on the job. Rinse and repeat every few years; if you don’t stay anywhere long enough then nobody will catch on. Just make some friends along the way you can call when things get out of your league and you’ll be fine. In my experience, good relationships will cover for poor execution every time, and the reverse is not true.


Why would I consider it 'good' to take pride in my work? So I can make another dollar for the shareholders of the company? So I can bring forward the destruction of the natural world by another millisecond? Even if you hunger for physical possessions, which I don't personally, why would that incentivise you when your level performance makes no difference?

Are you so much a slave that you have to search for meaning in the nobility of work? Work does not offer us purpose because there is no purpose in the operation of institutions in the modern world. Where the driving philosophical principle of an enterprise is "make as much money as possible", who among us can wring out a meaning that satisfies us spiritually?

Where even our charities are corrupted by the guiding principle of more money more good - from where is the conscious worker to draw their meaning?

We exist in an age of spiritual and moral vacuum and there is no guiding principle at this time that a non idiot can align themselves with while retaining some semblance of internal consistency.

How is Elon Musk working magic? A big part of it, apart from not being just another idiot with an MBA, is that he is giving people an actual purpose they can get behind. A purpose that is not just something slung over a money making machine in a vague attempt to align the workers. No, a real bottom up purpose that drives the enterprise. With that kind of purpose a team can move a mountain.

You have to ask yourself... If you are not trying to save the world from cooking itself, or trying to end poverty or trying to cure cancer, or trying to ensure the existence of humanity into the far future, what the bleep are you working for? Answer: You're working for the thoughtless vacuous industrial machine that is devouring both our souls and our physical world.

You should be depressed because this sh* is depressing. You should be angry because this sh* should make you angry. These emotions are deep intuitive reactions, they are drivers for change, hear them and move to change the way you work.


> You have to ask yourself... If you are not trying to save the world from cooking itself, or trying to end poverty or trying to cure cancer, or trying to ensure the existence of humanity into the far future, what the bleep are you working for?

Some people consider life to be a party, hence they are working to "get more beers" and to "wire up the amps" that the band will use to play.

In other words they spend time in working mode today in order to spend future time in leisure mode. And in their mind the future leisure mode is somewhat "better" or "more abundant" than the leisure they could have if they retired today.

Not saying they are right or wrong, but most people don't have the need to become the undisputed savior of the world.

I think getting emotional and screaming at them because they are focused on things that the intelligencia perceives as mundane is not the right way to encourage a healthy exchange of opinions between the aforementioned intelligencia and the general population


Thank you for expressing what I struggle with every day.

The additional counterbalancing layer on top of this is an internal drive for justice - this is what pushes me to work for a big tech company rather than doing something which gives me more self-respect. If other people can earn 6+ figures to fuck about with computers all day and deliver nothing of true societal value, why should I be the sucker doing scientific research for a fraction of that?


> like the trust fund kid you see driving past in the Tesla, but do you think he's happy?

With that horrible plastic interior? I doubt it.

The guy in a mclaren or a rolls royce? Probably.


I have to praise Netflix here for getting this right. They don't do pidly raises. They look at how much they have to offer to get good candidates in the door, and they give everyone doing the same work a raise up to that level. Some years I got 20%+ raises (and so did all of my peers). Almost no one left Netflix for more money. If they left it was either to do work they couldn't do at Netflix, to get a much larger scope (like going from manager to director), or to start their own company.


What is it about Netflix that they pay so well? Lots of tech companies have tons of cash, that's not it. Other tech companies are equally profitable, that's not it. What is the tradeoff that Netflix is making, in order to invest in its employees the way that it does?


I think it's because the founders were engineers, but more than that, engineers who actually worked for someone else first and also had another company before Netflix. So unlike say Facebook or Microsoft, the company culture was created by someone who has actually been an employee before.

Also unlike a lot of the other tech companies, the salaries of the engineers aren't their biggest cost -- content is. So they don't take as big a hit on their stock price or profitability when their engineering costs go up because they are dwarfed by content costs.

And lastly because they believe that overpaying for talent makes sense in the long run because then a lot of the best talent wants to work there, so they can get paid a lot and be surrounded by other people who like a culture where poor performance is rewarded with a big severance.

I won't lie, the culture isn't for everyone. I personally enjoyed the pressure of having to constantly perform, I felt it made me do better work, but not everyone is like that.


Is Netflix still doing cutting edge stuff? Back in the day I was in awe of what they have accomplished over the years but now competitors seem to be rolling out basically equivalent services. That makes it seems like the core tech to do what they do has been commoditized and all the "magical" stuff has been figured out.

I made a big miscalculation with Disney+ because when I heard stories of many good engineers leaving BAMTech in the initial rollout I thought these guys are clowns run by non-tech savvy executives. But I was proven wrong when they didn't crash and burn. Since then other companies that seem like legacy firms that don't know anything about tech are also rolling out services and they are more or less working.


From what I hear most of the innovation is around content creation and studio tools down in LA. The innovation in Los Gatos is more around developer tools and efficiency and deployment and failover efficiency. They are however still doing a lot of work on product innovation but it’s all in the algorithms and less user facing stuff.


Is this going to attract the cream of the crop or will they have to raise salaries even further to compensate?

Just a theory: Maybe enough top tier people won't want to do this work at any price as they will be wasting valuable time not innovating on the cutting edge.


I read a year or so ago they were looking at some new video compression tricks. I can't remember the detail but I remember being impressed. I'm sure there is plenty research going to to make the picture quality better.


The one counterexample that comes to mind is Amazon and Jeff Bezos. Jeff spent eight years working before starting Amazon (albeit in finance), and yet Amazon is not particularly known for being employee-friendly.


Because he didn’t work as an engineer. He worked in finance, which is famous for abusing their employees.


He worked in quant finance, which is pretty cushy from what I hear (though not as cushy as tech).


The same Jeff Bezos who had zero passion for the products he was initially selling, drove a Honda Accord until 2013, was too cheap to buy desks for his employees and so proud of this philosophy that the new headquarters was named after it? Not someone I'd expect to be overly generous to engineering staff (let alone the people at the bottom who's issues are well documented).


At previous BigCo I got the feeling management’s approach to problem solving was to get the right organizational structure with the right job reqs and the rest would sort itself out.

At Netflix I felt the goal was to get the right people working on the right problems, and the rest would work itself out.

I never detected a sense of “fungibility” of engineers at Netflix the way I have at previous gigs. Job reqs weren’t job reqs, they were definitions of problem spaces and each team owned their own interview pipeline. Each team defined their own job postings, cultivated their own talent pipelines, and conducted their own interviews. At least from my experience, you don’t interview for Netflix. You interview for a specific team at Netflix. I’ve met at least one NFLX engineer that interviewed for a half dozen teams before getting to “yes.”


I agree with you that at Netflix we hired for specific roles and that worked out well.

But I think that has to do with the fact that we only hired senior engineers. At the other BigCos, they are hiring junior engineers right out of school who aren't specialized yet, so for all intents and purposes, they are fungible.

Even the BigCos hire for specific roles at the higher levels.


My understanding is that Netflix gives huge raises, but shows you the door if you don't perform.

Other companies don't want to be so aggressive, so they take a similar but related tack; give you a lot more money for promos if you perform, and hope you just leave of your own volition if you don't hit those marks and get those raises.


In general companies in the growth phase operate somewhat like Netflix. Once companies have reached their maximum / optimum size, they start focusing on operational efficiencies.


Netflix doesn't pay stock. So the offer is straightforward. Their competitors pay stock which employees have to valuate, which is hard and employees usually undervalue it.


Netflix pays stock too. You get a small grant plus you get to choose your stock/cash mix beyond that. So it’s actually for more complicated to value.


I've heard Netflix also has a perform or get managed out culture. Can you comment on that side of things?


There is very little managing out. If you don’t perform they just fire you and give you a big severance check. Of course you get warnings and the firing isn’t usually a surprise, but there isn’t a lot of politics around it.


I think everywhere that pays above market rates needs a strict cutting strategy, otherwise people just sit there and stagnate.


Ok, but that's just because they have covert levels:

https://www.levels.fyi/?compare=Netflix,Google,Facebook&trac...

The pay raise between levels at Google or Facebook is about 20-30%


The levels aren’t covert, they just don’t have any. But I wasn’t getting a level promotion every year and neither were my coworkers. Besides I started at the equivalent of a senior principal so there weren’t a lot of promotions to be had.


I believe this is what OP means by "covert" levels. There are no official levels but you were equivalent to senior principal even though you had no official level. Either all ICs are doing senior principal level work, which probably can't be true because no org has that many jobs with that scope of work and generally you're talking about cross org, architecture level work, multiple "lower level" engineers need to support and implement that work at that level. All flat organizations have implicit hierarchies, especially once they grow to a certain size


Their claim was that the 20% raises were explained by the person jumping a “secret” level, and my counterclaim was that that wasn’t the cause, because one year everyone in my group got a 20% raise and also because I didn’t have any levels, secret or otherwise, left to go.


Thanks for the details. Yes, I implied it's just some murky water bullshit, but it does look interesting.


So this person figured out the current meta-game of tech: jump jobs every 1-2 years early in your career to maximise comp. But that's not the whole story.

First, this works in your early career where growth and learning are very fast, but at some level of seniority this strategy wont work as well.

Second, I disagree that "what you do in between barely matters". Is like an athlete winning a medal and saying that those years of training were useless. That time is where you learn, grow, and get prepared for the next jump. If that's not the case, you are setting yourself up for failure.

Third, the market is red-hot right now. It says more about the market than your personal abilities. It might not be always be like this.

Fourth, companies are terrible at retaining talent, and sadly job hopping is often the easiest way to get a raise and a promotion. That's the point you got completely right.


I totally agree with your 4 points. However, OP, in my interpretation, is arguing that the job change process is so much more dependent on those few hours of interview rather than career-long growth that career-long growth (or on-the-job performance) doesn't matter.

Of course, interviews are meant to test candidates on their career development and growth as well, but in reality, it is uncertain whether they do, especially if they are focused on LeetCode/theory questions.


Once I wanted a role change. I worked on it with my manager, tried to pick up work related to the new role, set career plans, all that stuff, for months. Couldn't quite get it done because I always wound up paying more attention to the duties of my current role than the one I wanted.

Interviewed with a different group for the role I wanted and got it with a few hours of interviews. It was absolutely not the case that I learned anything relevant from my experience trying to switch roles on my current team. It absolutely was the case that the 3-4 hours of interviewing (plus luck of the draw on my interviewers and their questions) meant way more to my career than months of planning and effort.


I dont know which domain you work in, but in banking everyone knows everyone and the interview either doesnt happen or doesnt lead to hiring if you ve been visibly slacking off.


>Is like an athlete winning a medal and saying that those years of training were useless. That time is where you learn, grow, and get prepared for the next jump. If that's not the case, you are setting yourself up for failure.

I don't think this comparison works at all. An athlete is attuning both their body and mind for years for an increase in the exact same activity. An employee is largely waiting for their time to shine hitting a challenging breakpoint, and practicing repetition of that challenge will have diminishing returns kick in very, very quickly. At the same time, the payoff for going beyond that diminishing returns is highly arguable.

As an example, in most companies, the far majority of employees will spend months doing ridiculously similar, low scope issues. These low scope issues frequently have very, very little to do with what is expected in the next tier. Changing a few variables every day has much less in common with making a basic tool after analyzing requirements. Comparatively, a runner practicing for years is directly practicing to run faster, it's the same toolset more carefully honed.

The far majority of us are waiting for those challenges to come up while doing those low scope, low pay-off issues. The common advice is to "seek those challenges yourself" or to "do the low stuff faster so you can get more challenging things quicker" is cute, but doesn't nearly apply in practice as often as the frequency of this advice makes one think. Think of bureaucracy, managers getting in the way, petty office politics, bottlenecks, and more. Which only leaves practicing in one's own time.

From the way I read it, OP is saying that there's far more of a difference between what one learns during those small challenging periods of time than the downtime of repetition compared to other fields. Which shouldn't be a surprise as software dev is largely a field of practicing mental challenges and logic puzzles, not honing physical skills.


For me, I always incorporated something interesting and new into the small projects.

While maybe not necessary to use Pandas or an ARG parse framework, or even Redis caching, I found by adding little things like these to smaller projects I was able to maintain interest and motivation. While counterintuitive, I also usually delivered a better product even though a tool I wanted to learn was a bit shoehorned in.

Now I'm about four years in, competent and confident. 100% worth it.


> That time is where you learn, grow, and get prepared for the next jump.

Also the best time to make friends and/or build your network. Let people remember you (in a positive way).


> companies are terrible at retaining talent, and sadly job hopping is often the easiest way to get a raise and a promotion

I wonder though if it's about hiring or about raises. Maybe it's the well paying companies that hire people who already get paid a relative lot and for the current employer that raise would be out of budget.


Unaddressed in all these comments: are companies simply too stingy with promotions?

Take a look at startups with strong engineers they got from FAANGs. I'm willing to bet in most cases, those people jumped because they were sick of being denied promotion.

Take a look at the number of engineers on your team who have been contributing for years and are still stuck at junior engineer level. The next candidate who "seems strong" will get slotted in higher.


Companies are happy to compete with each other in the market for people when hiring, but they forget that they are still competing with the market to retain their existing employees.

The situation is even dumber when you consider the costs incurred by on-boarding new employees and the knowledge lost when employees leave.


Which employees? Its like the old claim that only 10% of the money spent on advertising is worth anything but nobody can figure out which 10% it is.

So the corporation knows that 99% of the employees showed up for work the day after their $10K paycheck, and the replacement for the guy who quit won't show up for less than $11K. Well, if they give no one a raise next payroll will cost 99 x 10 + 11 = $1001K, and if they give everyone a pay raise then no one will quit but payroll will cost 100 x 11 = $1100K. That's an extra $99K and that's gonna cost some HR exec her bonus.

So you can guess what strategy they pursue.

Companies also have a political/cultural/religious view that individual contributors are instantly interchangeable cogs and they have MASSIVE cognitive dissonance if you point out thats not true and the recruitment and onboarding process are staggeringly expensive, so everyone job hopping all the time would cost like 25% the total labor budget so you're paying (in the example above) $1001K but who cares whats outgoing, you're only getting at most $750K of work out of them when they're hopping vs you'd get $1100K of work out of them if they didn't hop. And you're financially in the long run far better off paying $1100K for $1100K worth of work output than paying $1001K for $750K of actual work output. But like I said that goes against their political/cultural/religious views so they'll slap hands over their ears and chant "nah nah nah" when you point it out.

You get more of what you measure, and cutting productivity by a hard to measure 25% is worth it in a corporate Dilbert sense, if it saves an easy to measure $99K.


> Which employees?

Tech companies known damn well which employees they should retain and which ones they are happy to have leave.


I would argue that meritocracy in the workplace doesn't lead to happiness. Job security does however. There are still aspects of meritocracy but someone performing at 2x of their peer will be er get double the pay, and that's okay. The division that would result from that situation leads to unhappiness and therefore lower productivity. Pay tends to only double for every order of magnitude of increase in impact instead.


I'm dealing with this now. We pay low end of the market as a policy because of the nature of our business. We lure employees with "good vibes" of a positive mission and a low stress environment. After a rough year we've had to freeze raises in the face a a feeding frenzy for talent. Hiring is still done at market rates but retention is locked in to the low end of the 2018 market. I'm stuck pleading to HR that if we don't give out best people at least another 10% we'll be spending +25% on a backfill.


More like the CEO/CFO are only expected to have a churn rate similar to competitors. Above: raise comp. Below: slow down.

Source: I was involved in comp decision meetings in previous jobs. They don't say it explicitly but the expected rates lead the discussion. Blame investors and boards whose goals are never past a year or two. This is the same in startups and in large companies.


>More like the CEO/CFO are only expected to have a churn rate similar to competitors. Above: raise comp. Below: slow down.

Honest, curious question- What exactly is it that's wrong about that? Doesn't that exactly reflect the point that "they are still competing with the market to retain their existing employees"?


It's a path to mediocrity.


It’s weird.


In my experience a lot of engineers leave because they feel that they deserve to be promoted, but there is no clear way to get promoted. The criteria on the very extensive promotion guideline docs can be impossible to meet for even the most brilliant of engineers unless the engineer is in the right environment/team.

It's a problem for the FANGs to fix. Leave, get hired for a role that pays better/has a better environment, and don't look back. There will always be another tech company to work for.


> In my experience a lot of engineers leave because they feel that they deserve to be promoted

I've found the opposite. Nothing will make an engineer resign faster than promoting them to tech lead.


https://en.wikipedia.org/wiki/Peter_principle is a fear commonly cited in Google. We have this superbly outperforming L4, but what if they would get burnt out by the L5 requirements?


I'm so glad I have experience now (few years). I remember how hard it was to get in (I'm not from a tech background). I don't have to memorize random things I don't even use in my day job.

I agree though I got a 40% raise jumping to a new job, I'm still below $100K but it's something for me in the midwest.

I don't aim to stay in it professionally for a long time though, will save/invest and get out. Do it on my own time for fun/to build things.

Edited: took out random crap about me not relevant


I actually feel that job hunting has gotten worse as I gained more experience, though that’s most likely due to the fact I’ve gotten more picky.


Shoot me a message if you'd like to sell any of those G lenses :) I promise to put them to good use exploring the world.

Email in profile


haha put your money where you mouth is right, I just got them have to hold on to them for a bit. just thinking it's crazy how much they cost despite how little you might use them. Gear Acquisition Syndrome as they say, I bought them used anyway.

I checked out your sites, pretty cool what you do.


> I don't have to memorize random things I don't even use in my day job

Yeah, imagine what kind of nerd would be interested in the field and genuinely want to learn all they can, ha ha.


Oh I'm not a pro developer man, I'm mediocre. I can get things done but I'm no John Carmack or something.

I do have random interests though and write code outside of work in other topics.

I guess specifically I don't know much about algorithms/big-o stuff like that (working on it, trying to change fields where I can use that).

I do acknowledge being weak in math, I'm concerned if I can actually do ML.

I'm a glue-er is the term, crud apps. The OT talked about leetcode/that's something I hear people grind while also applying to "hundreds" of jobs.


>Yeah, imagine what kind of nerd would be interested in the field and genuinely want to learn all they can, ha ha.

Yeah, this comment grinds my gears.

So much "knowledge" in the software world (and parts of academia, and probably many other parts of society) is completely arbitrary bullshit that gets perpetuated because people who are familiar with it want to maintain their position of authority.

Actively taking pride in this is not inherently a good thing.


I think usually people who try to make this point are just pouting over how they shouldn't be expected to know basic, fundamental things. Like https://twitter.com/mxcl/status/608682016205344768


Honestly, I had things like WiX and CMake in my mind when responding to you, but the tweet you linked to seems pretty fair too.

So many "nerdy" circles seem to be plagued by this subculture where your competence or intelligence is measured by how much obscure and useless knowledge you can accrue.

The fact that Max's experience creating and maintaining the single best package manager on macOS (by a country mile, too) was considered less important than whether or not he knew the minutiae of a particular form of logic puzzle is bullshit, and I can completely synpathise him in that regard.


I actually do think you have a point about the fetishization of trivia knowledge in this field. It's really not ideal, and I think it's more driven by social dysfunction or over-compensation for various kinds of imposter syndrome.

But that is not this. In the case of inverting a binary tree, what you call logic-puzzle minutiae is just taking a fundamental building block in computer science (binary trees) and asking the person to demonstrate even the faintest ability when it comes to writing an incredibly basic algorithm. Max Howell not only can't do it, but he doesn't even see why he should need to know how to do it!

That kind of proud ignorance is what grinds my gears. I'm sure someone can gather requirements and deliver value to customers and fix bugs and string together code and everything without knowing how to work with trees, but I don't really care. If they've somehow gotten that far without even a glimmer of curiosity about the fundamentals of computer science then something is disturbingly wrong, and I would worry about what other mammoth blind spots they inexplicably have.


>> But that is not this. In the case of inverting a binary tree, what you call logic-puzzle minutiae is just taking a fundamental building block in computer science (binary trees) and asking the person to demonstrate even the faintest ability when it comes to writing an incredibly basic algorithm.

The thing is that most programmers are not computer scientists anymore, in the same way that most computer scientists are not mathematicians anymore. In many CS101 courses there's only a very brief study of algorithms and data structures and most of the course is about using this or that language (probably python, these days, java back in the day, Ada further back etc).

This is partly the fault of universities, in a "the road to hell is paved with good intentions" kind of way. Universities try to prepare their students for the industry, except they seem to be in lockstep with the industry's requirements, but with a ten-year gap. So they try to teach students programming, rather than computer science, because they believe that's what the industry is asking for, then the students go to interviews and find themselves staring at a binary tree on a whiteboard.

Also, to be fair, the majority of programmers nowadays are not nerds, anymore, and they're not even that interested in computers, or even progamming. Most of my class in my degree and in my Master's just wanted a cozy job at an office. In one company where I was hired through a graduate programme, all of the guys in my cohort came in with a qualification in CS, then immediately sought the better-paying manager jobs in the corp (and I left to go to academia because [edit:] they didn't let me train neural nets on their mainframes :P).


>That kind of proud ignorance is what grinds my gears.

I do get where you're coming from there, but I interpreted the Tweet very differently. He wasn't just asked "how does a binary tree work?", but asked to go through an extremely specific process manually, on a whiteboard.

And if I can just interject my one little quip (I come from a EEE background, stumbled into software engineering and then left after a couple of years to do my own thing), all of this knowledge of the academic aspects of CompSci doesn't seem to help people build code that is reliable and performant. We weren't taught it in EEE (we learned about programming and digital logic, but in a different, much more concrete way), and yet EEE-written code runs flawlessly on 8-bit micros in safety-critical systems for decades at a time without a single crash or missed timing constraint.


Because it's very simple- compared to a web app backend (which is typically an uhonly mess of unnecessary complication; but still, much more complex for that).


May be an over simplification here, I’ve done both and found most web app backends to be more trivial than embedded programming projects.


Fully agreed.

I usually don't need complex algorithms in my line of work, but I can't count how many times I've needed to implement topological sorts, for instance, or non-trivial tree traversals, or to rewrite code to increase parallelism, or to be able to quickly spot that a poorly performing algorithm was O(n^2) or O(n^3).

And sometimes, it actually gets complicated. Sometimes, it's about increasing cache hits. Sometimes, it's about making sure that stuff gets allocated in the right order or in the right place in memory. Sometimes, it's about rewriting the IPC layer. Sometimes, it's about reimplementing foreign key logics in a low-level database/file system. Sometimes, it's about writing custom locking data structures or non-blocking algorithms, or a custom memory allocator or GC to match specific performance requirements. Sometimes, you need to do all of this without a debugger or a profiler or even logging.

If you can't handle the simple tasks from the first list, well, how are you going to tackle the issues from the second?

And if you're not curious, how are you going to learn all of this?


I agree, uses for this kind of knowledge do come up from time to time, but when you're implementing something like this on the job, are you starting from nothing, a blank piece of paper/whiteboard?

Personally I wouldn't start writing a single line without doing some research first. I'd look around on the web for some sample implementations or at least pseudocode. I'd probably get one of my algorithm books down from the shelf to make sure I understand the basics -- and check for "gotcha" edge cases.

So this is still wildly different than Max's interview environment, where the expectation is that you can effectively invent the algorithm.


I'd argue that, for many problems, researching the issue is hard if you don't have a starting point. For instance, I currently have no clue about the natural language manipulation with machine learning. I would have strictly no idea where to start or where to start looking. I might be lucky and stumble upon some literature that I would understand, but then I might not.


Couldn't a good lead suggest an engineer learn this after-the-fact?

Also do most software problems involve optimizations at scale like at Netflix or Google ? It seems mismatched to assume that an esoteric use case is the gold standard.


I'm talking of my own experience. I've had to do most of these things (or variants thereof) either while working on Firefox or various experiments at Mozilla, or while working at various startups.

I'm sure that not all companies need this kind of skill. But I'm not surprised if Google feels that they do.


I would go a slightly different track after seeing comments on OPs linked article making fun of people who know what ACID compliance means WRT databases.

The point of interviewing about algos or ACID or SOLID is fast inter-team communication and less wasted effort.

So you have two sysadmins talking about some database's filesystem options and they talk about sync-writes vs non-sync writes and they immediately see a problem they need to research WRT ACID's "D" and sync writes and there are of course many solutions historically and workarounds and on the whiteboard they just look at each other and say "ACID's D" and the other nods knowingly and they know what to research and are on the same page and it took about 30 seconds total interaction. I mean two people who know about durability and sync writes are going to like "wink and nod" and they're on the same page and they're both productive in minutes.

Then you meet some joker who don't wanna learn nothing about nothing he just does stuff that seems to work and googles for how to fix it later, and the guy doesn't even know the concept of what the "D" in ACID means and when the tickets start rolling in, tries to reinvent the wheel all himself and its just awful to see and he can't explain it was well as a textbook or wikipedia and you try to point out this is all old stuff "Everybody doing DBMS stuff should know" and "eh its just some trivia thing from the old days nobody knows like back when you wrote Perl for money" and its just a train wreck watching the guy. OR he doesn't get hired for the position because only 50 bazillion social media posts explain this employer loves "useless trivia stuff" and if you know anything about DBMS the concept of the ACID acronym makes so much obvious sense you can learn it well enough to BS past an interview in like two minutes, if you're a DBA worth anything. But nah they're too lazy, which is how its gonna be day to day if they get hired accidentally and nobody wants to deal with laziness either.

The guy who invented homebrew and famously couldn't get hired at google wasn't not-hired because he couldn't flip a binary tree, but was not-hired because he couldn't talk like a programmer with programmers about programmer stuff quickly in a standard documentable format in the trivial and non-commercial sense of flipping a binary tree. So he could have memorized every algo just in case, or he could have learned to talk like a programmer with programmers about programmer stuff but he never did either, so ... that didn't work out well for him.

As a terrible car analogy you wanna hire two car mechanics to change tires at a tire shop and one guy knows all the names for all the tools and parts and can at least BS plausibly at the interview how to fix something obscure like a malfunctioning TPMS, at least his answer sounded believable or rational if not perfect. The other guy doesn't know the names of any of the parts "This is the growly thing that twists the shiny things off the side of the heavy bouncy circles" and you ask him how he'd troubleshoot a broken TPMS in a general sense and he fires back about he don't know no fancy words but he's been changing tires for years and it'll probably be OK eventually. And you're like "Dude, you interviewed at a F-ing tire shop and read online that we'd ask about TPMS systems but couldn't be arsed to bother even looking up what the acronym means?"


That is a big part of it I think, and just being able to provide meaningful names for code/documentation/discussions makes a huge difference, though I'd say communication problems alone don't tell the whole story.

Even when you're just working alone, having seen something before and knowing the theory/literature means you can build on it instead of wasting time thinking about how to reinvent the wheel. Like you can imagine someone who knows nothing about ACID or transaction isolation being frustrated by apparent concurrency bugs in their database and hand-rolling some abomination of a locking mechanism to manually serialize database transactions. They're going to waste a ton of time on that, and it'll be fragile and have terrible performance. Or if you're working on some task tracking application and wondering about how you can untangle dependency relationships for users, you should have a basic suite of graph algorithms in your head so that you can use them effortlessly and focus on the actual problem instead of being mired down in retreading basics that every CS graduate already knows.

Also it doesn't seem like an issue of communication in the case of the homebrew guy; he was just stumped.


I'm a VP of Engineering now and I made it here without ever having to do any of the above and most engineers I've worked with haven't had to do any of that either. Your experience isn't the norm and you also sound incredibly arrogant and out of touch.


Well, thank you very much for the last part.

However, I have needed to do most of the above. Usually as part of a team, thankfully. Happy to learn that you didn't. YMMV.

I'd guess that Google wants to hire engineers who can do that, too.


Exactly, the technical interview has become like an arms race, harder and harder questions. Whereas in the management track, its all hustlin, any bozo can and will become a manager and go up the ladder, gain more power and control all us technical folks.


I should not comment on this chain, just adding clarity on my behalf... all I've done in my "career" is web related stuff, mostly JavaScript paired with a backend... I've never used BT/BST only recently learned it for myself just to know what it is.

If you went through a CS path then I would say you should know about it. I'm trying to pick it up due to FOMO. I hear about it.


Notably, he wasn't actually asked to invert a binary tree in the interview (this would not be a desirable question internally for anything other than screens) and he wasn't told why he failed the interview process. So given the response, I'm not certain that it wasn't his attitude during the interview process that sunk him.


It's hard to tell whether your comment was sarcastic or serious, but the guy invented homebrew, and was passed over for as you say, not knowing fundamental things. I'd flip the script in this narrative: by passing over the author of a wildly popular piece of software, the interviewers showed their missing knowledge of fundamental things - like good business sense. No thanks, Google.

And what does Google invent, anyway, given that their biggest financial successes have been acquisitions?


I can count on no hands the number of times I have ever needed to invert a binary tree in my entire career.

I'm sure someone knows. I'm also sure that I don't care: why didn't they use the standard library function for it?


Beyond parody.


For your consideration I direct you to the struggles of developing Starcraft: https://www.codeofhonor.com/blog/tough-times-on-the-road-to-...

Whereupon a huge proportion of early bugs were programmers who believed they were easily smart enough to write doubly linked list handling methods proceeded to ongoingly and continually screw up writing doubly linked list handling methods while refusing to use standard functions.

This isn't hypothetical.


There is no "standard library function" for inverting a binary tree. That's not a thing that exists, probably anywhere in any standard library for any language, and even if it did you should still know how to write it yourself.

Also the article you linked doesn't argue that you shouldn't know how to write a linked list, it argues that you should implement ADT operations in functions instead of trying to wing it with ad-hoc logic all over the place. Blizzard's developers were definitely smart enough implement a doubly-linked list one time, they were just fallible humans who got tripped up consistently implementing the same logic in a hundred different places.


It depends on why you are interested in the field. Some people inherently enjoy it. I personally enjoy the ability it gives me to create stuff. It is the closest thing to magic in my view.

That is why I find Leetcode dull. I can't really do much with it as if I needed it, I would pull it from a library.


As someone who at one point was interested and learned all I could about the things that interested, I can say majority of it is useless, and dismissed if it ever comes u in an inter.


Takeaway: we aren't changing jobs enough.

The OP suggests some "decision" was made so employees compensation is increased minimally, unless you change jobs.

The only decisions that was made was by complacent individuals, which are apparently also here in the HN comments.

Change jobs more frequently. If we all do that, the compensation increases from performance and job-change will converge.


This works well in the current market. It doesn't work as well when there is restraint in growth


> Impostor worries about being found out. Scoundrel thrives on the hilarity of not being found out.

This comment immediately reminded me of Alan Watts’ description of the scoundrel. I’m inclined to consider this to be the correct framing and attitude.


you can play musical chairs with Soft dev jobs for a while, but soon you'll plateau or/and eventually replaced by fresh out of college dev.


Depends.

If you're switching jobs just for more money and don't get any useful experience or skills along they way, effectively coasting along and becoming a junior with X years of experience, then yes you can be replaced.

However, if you're smart and a little bit selective, making sure to only job hop to gigs that provide some challenge and growth opportunities, not just going with every recruiter that promises you more $$$, then the skills you'll develop and pick up should guarantee that no junior can easily replace you.

My $0.02.


Yeah I think in a similar way

The market is filled with "Juniors with X yrs experience". Even 10, 20 yrs experience. No kidding.

A lot of newer developers are more accustomed to copy-pasting React stuff from SO. Which is fine, but it doesn't solve all problems.

That's how you end up with people that only know how to deploy stuff using Docker containers (which, again, is fine for most situations).

At some point the grown-ups have to show up. Can you be the grown-up?


If you are going to get replaced by fresh out of college dev anyway, as well make money by switching companies lots of times.


No senior I've worked with could be replaced by a fresh out of college dev. You don't deserve to be called senior if you can.


SoP - Senior on Paper. There's a lot of places where senior is just a title they slap on someone to fit them into a position.


Indeed, which is why my trusted definition of 'senior' is that you have a budget and can sign off on a decent signed purchase order.

There are very few senior people.


Here's where the code obfuscation skills come handy. Make enough of a mess and you are irreplaceable.


Do people out of college even do Leetcode anymore? Surely there's a better use of time once you're in a paying job.


I have never heard the word "Leetcode" where I work, or indeed anywhere other than HN, and I've interviewed candidates for every rung of the IC ladder. Never seen it on a resume, either.


Software engineer salaries are increasing following a bimodal distribution, i always thought you had to be a genius level person to work at FB, GOOG, then i see my own coworkers (whom i consider smart but not exceptional) do the leetcode grind and 2x their salary. I'm pretty much in the same boat with you, i worked mainly outside of SF/Seattle for a long time and i'm amazed how much these engineers get paid compared to other cities.


I'm working at an SF company. Is this a FAANG thing?


probably, i only have a outsiders view into the software engineers in that city so my view could be heavily skewed by people who only announce their comp if its high.


You wouldn't ever see it on a resume. It isn't a formal skill. It is what we call the ability to pass data structures and algorithms interviews, which gatekeep desirable positions at places like Google.


Yeah, grinding leetcode is still effective below the staff engineer level. Above that we start looking at what you’ve done that’s not code (conference talks, open source leadership, whitepapers, managing consultants, etc).


I am interviewing for a Staff Software Engineer, SRE role and I expect leetcode to come up as part of the interviewing process.


Oh the leetcode is a given at the staff level — it’s a filter, not selection criteria.


I beleive it is just a Peter's principle scaled out to the entire market. Substandard performing engineers are not getting promoted on their jobs and leaving for another, less tech savvy companies where their skill level is good enough. In the end everybody are just burning the investor's money, inflating the tech bubble.


I'm curious why this upvoted (on HN, not reddit). It boils down to whining to me, with a bit of insecurity, "cowardly.. take forever.. lacking in discipline" tacked on the end of the post. Maybe the work they do doesn't matter, and maybe they are quite mediocre.


Thank goodness for people like this person - I would not be surprised if many firms would do as well, if not better and with improved internal culture, if promotion was done simply by random selection of candidates in the different role categories. The amount of randomness for a new candidate is higher when going external than it is for promoting from a pool of people you know, so good on you for using this path.


> Succeed. Fail. Get a star performance review. Get a mediocre performance review. Fuck around and do nothing. It doesn't seem to matter.

It actually matters because no matter how much you're getting paid, your time is on the line. You could be doing something better. If you decide to do something, and start it, why not do a great job?


Some people just work for money. Alternately, in some organizations you can work as hard as you want but be prohibited from doing a great job. e.g. If the product design is fundamentally flawed and you can't convince people of that you might not feel like doing a great job.

Suppose you're working on a 5 year old project that has a small and dwindling user base, the only contact you get from users is complaints and requests for features that are strictly forbidden by legal. The UI is incomprehensible to users and product management keeps trying to make it more complicated or add features that won't be useful. Would you be focused on doing a great job, or just putting in time while you looked for something else and played Ping Pong?


I understand what you're saying, I too get completely tilted when things aren't working out. But, soon after, I get overwhelmed by guilt and start focusing on doing a great job again.


What does a Sr Developer do? Most days I feel like I’m not ready for the entry level and other days I feel like some people in the field know less than I do. This post makes me think that I should be able to work in the field by now.




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

Search: