Author of this article here. As long as this initial data-dive came out, there are still a bunch of things we’d like to look at. Does location (say, NYC vs Silicon Valley vs affect these preferences? Does which track (generalist, front-end, mobile) a candidate takes through our process? How does this link with how candidates actually behave when given an offer? Our data set has enough information that we can investigate these questions, but this was long enough as it is.
As a Houston developer, that chart of motivating factors describes exactly what I'm looking for.
I won't work on an ancient Java codebase that has no tests or no deployment pipeline, because doing that is death. Gotta keep moving forward or find yourself sliding backwards. I would say your analysis is spot on and I could have written the same article myself.
Companies should realize doing things that seem "fluffy" and not entirely necessary, like moving to a newer tech stack, might be worth it as it will make it easier to attract new talent. And if they stay behind, they might encounter the famous "dead sea effect" and wonder why things break, and every new feature takes forever -- the best technically minded people have left for greener pastures.
However, I'd say that considering people who are great at interviewing are great engineers is flawed. There's a correlation, but it's probably a weak one. To get great at interviews, you have to practice interviews a lot. It's a separate skill orthogonal to software. Basically, you're selecting the most motivated to succeed -- but motivation to succeed doesn't necessarily translate into the best technical ability. It makes sense that they care most about salary, impressive surroundings and fast pace, as they're probably the most careerist SEs out there.
> devoting (say) $1,000 or even $5,000 to classes or other forms of professional growth is not particularly expensive, but it can have a disproportionate effect on recruiting.
I don't need classes. When I say I want professional growth, it means I want to play with new technologies and gain experience with them at work. So if you're willing to hire me to work on a new hot thing, I'll be more likely to take it.
But please, please do away with the conceit that great interviewers are great employees unless you have data that suggests otherwise. Reading this, I'm under the impression you only look at candidates and don't have any metrics to understand their actual work performance.
> Companies should realize doing things that seem "fluffy" and not entirely necessary, like moving to a newer tech stack, might be worth it as it will make it easier to attract new talent.
Why are we as professionals (myself included, I'm not immune) so obsessed with shiny new things?
Updating a product's tech stack just to attract new talent and not because the product needs it is objectively strange. Imagine if roads were torn down and rebuilt just because civil engineers wanted to try out some new road laying thingy.
I felt the same way when I closely followed indie rock, too. You have to pay close attention to all the new buzz coming out or you'll be at risk of being left behind and outed as "no longer with it." I assume the same thing goes for stuff like, say, fashion and art too.
Funny how it has everything to do with style, and far less to do with engineering.
Road-laying technology doesn't develop at the pace that computer technology does. We went from room-sized mainframes to powerful pocket computers in 40 years. Working on "new things" is objectively more interesting and pays better - modulo the COBOL devs making $500/hr now.
You are describing advances in semiconductor performance whereas the person you are responding to has in mind things like new programming languages, libraries and frameworks, many of which we cannot even confidently say are advances at all.
That too :-) But front-end frameworks don't constitute the entirety of new language and framework developments.
For instance, having cycles and memory to spare made using fun languages such as Python and Ruby practical.
Advances in hardware let (and force) us (to) write applications of far greater complexity. Writing a mobile game is way more involved than a payroll application on big iron.
I also don't need classes. I'd like learning new (to me) things to be part of my job, and not tacked on after the fact with third-party seminars and after-hours classes.
I can already do that, regardless of my job, and I won't owe my employer anything for it. If I can explore and experiment while working, the work feels less like work.
Q: Can you solve a problem by deconstructing it into smaller, easier problems and solving them?
A: Yes.
Q: Cool. Coolcoolcool. Now... can you do that without violating a bunch of arbitrary constraints?
A: ...As long as they don't restrict Turing-completeness.
Q: I didn't hear a "yes" there.
A: Yes.
Q: So how much experience do you have with our specific set of arbitrary constraints?
A: Uhhh... I never worked here before, so none?
Q: Oof. Well, thanks for coming in. We'll be in touch. Or not. Sometimes we just ghost people. Not to be dicks or anything, it's just that they're no longer worth acknowledging their existence to us.
> Companies should realize doing things that seem "fluffy" and not entirely necessary, like moving to a newer tech stack, might be worth it as it will make it easier to attract new talent. And if they stay behind, they might encounter the famous "dead sea effect" and wonder why things break, and every new feature takes forever -- the best technically minded people have left for greener pastures.
I think when they get to this stage they outsource to small dev mills. I don't know about Houston, but here in Toronto there are plenty of those who do "enterprise" work that consists of writing something once and walking away leaving any leftover internal developers to manage it. I've worked in ecosystems where that kind of stuff will stick around for 10+ years, broken and bandaged with no documentation. Sometimes even more.
Many companies that operate that way don't want to pay for a development team. They just want it working. Hell, sometimes they can't justify the headcount of having a few developers on board but can easily get away with dropping $250 - 500k a year to outsource the work.
I have worked at a place that would refund up to $5k if I provided reasonable bills for trainings, conferences, coaching, theatre courses, and that was part of the perks.
Your point about interviewing is refreshing to hear. I'm a terrible interviewee, but I know I'm a kickass developer. It's rough, but honestly I don't know how companies should find great engineers that aren't good interviewees -- just networking?
omg, yes. "we offer online courses" or "go to such-n-such conference budget" are _not_ professional growth to me. I want, like you, to play with new technologies and get experience working with them.
I'm a software engineer with ~3 years of experience. I also want professional growth. Partially because I enjoy learning and growing my technical skills, partially because I want to move into more leadership roles, but a huge part of it is because I know that if I'm good, I will be paid a massive premium for it. levels.fyi sort of convinced me that being a good engineer is a life changing event for more than 1 generation. I answer questions like these as growth primarily because I know growth is an investment for my life long earning potential, and I just so happen to have a passion for growth to begin with---it's a lucky combination to be drawn to.
I'd love to see questions like this phrased to account for this:
"Opportunity for professional growth, to grow my future earning potential."
"Opportunity for professional growth, because I enjoy learning new things."
"Opportunity for professional growth, to reach a role I cannot fill with my current skills."
I know the article tried to address this with the responses, but that's sort of the default answer you give in this field. No one really says, or enjoys hearing, "I want to learn more so I can make more money".
> "Partially because I enjoy learning and growing my technical skills, partially because I want to move into more leadership roles, but a huge part of it is because I know that if I'm good, I will be paid a massive premium for it."
And it's one of the unfair things in life that jobs that pay more often get other benefits as well. Making $40k/year? Chances are you get 2 weeks vacation, inflexible work hours, inferior equipment. Making $200K/year? I'll be you also have top of the line equipment, no one keeping close tabs on your hours, 4 weeks or more vacation, money to go to conferences, etc.
A mentor of mine once told me that I should seek to make more money, even if that's not my motivation. He said that more money is always nice to have, but also that when someone pays you more, they respect you more, so you get all the benefits that come along with that.
> when someone pays you more, they respect you more
The counter-example to that could be that once you're senior enough, you are never 100% on vacation. If enough goes wrong, you will get called back to work.
I give my boss/coworkers my wife's phone number when I go on vacation. I tell them you have to talk to her to get to me. I then put my phone in airplane mode 95% of the time and use it as a camera. I'll occasionally undo airplane mode to upload photos or check the internets for something, but vacation for me is usually unplugging as well.
Funny, I tried this once when I was on call and I still got called. And for a while after that, whenever someone couldn't reach me on my phone, they would call my wife. So really, it was a lose-lose.
That strikes me as wildly out of bounds. I imagine your wife has a job too, and her own work issues to deal with. I'd be very upset with the individual bothering my spouse because I hadn't returned their call fast enough for their tastes.
People in desperation tend not to think things through, especially when customers are the ones telling them that there's an issue. After the second occurrence, I explained to the relevant parties that my wife's phone cannot be used as a secondary contact for myself, and it didn't happen again after that, so I chalked it up to a misunderstanding. It was annoying, yes, but no one was pestering my wife on purpose.
You're somewhat more generous than I am. I'd have told my wife to just block that number, and waited until I got back from vacation to explain that it'll happen to anyone else who calls my wife for anything other than an existential emergency as well.
He also knew he was on-call and went somewhere where he didn't have reception. It sounds like he knew that might be an issue so gave his wife's number as a backup. That's basically training the person who has to escalate to use his wife's number as it's the one he responded on. I don't think he's being generous at all, it seems like an obvious outcome of being on call and not responding on his own phone.
This is accurate, although to be fair to myself, I didn't know I would be on call until after the plans were made. With that said, I take issue with this being an "obvious outcome" and the notion that I was "training" our staff to use my wife's number. I was explicit with the company (at least I thought) about the need to use her number only being applicable for that weekend; the fact that some people tried to use it when I was on call again in the future is on them. Mistakes happen, and everything worked out just fine, but I don't see how that part was my fault.
I suspect "training" here was meant much in the same way the person in the following story "trained" their cat that they're entitled to food when they high-five:
> my brother is teaching his cat how to high five by giving her a treat every time she successfully taps her hand to his hand, which is all well and good, but now she thinks that she is entitled to food every time she high fives someone. i can’t eat in the same room as her anymore because she’ll just bap my hand rapid fire and then go nyoom straight in for my pizza like no Kelly that’s illegal go finish ur own dinner
It wasn't on purpose; that particular weekend we were going somewhere my phone didn't get any reception, but my wife's did. So, not exactly the same situation as OP.
I don't think the average <employer/line manager/assistant actually making the phone call> cares about it nearly as much as one might think they would:
Boss: "we need to reach $person urgently, get them on the line for me..." <walks back into office>
Assistant: "Sir, yes, sir"* <looks up numbers, calls $person's wife>
Is giving them your wife's phone simply to discourage them from calling for non-emergency situations? Because in an emergency I highly doubt it would prevent my employer from getting in contact.
I do agree about unplugging, but I've never had a vacation ruined by having a work-related text or call steal my attention for 5 minutes. If me being reachable (not necessarily _available_) puts my employer at ease then it makes it easier for me to take the vacations I want to take because they're more likely to be flexible with my schedule during busy times.
Or even nothing goes wrong suddenly. Once, I had a vacation planned for six months and had to spend the long weekend cooped up in my hotel room overseeing a complicated migration.
To play devil's advocate, why was a migration so complicated that your engineers couldn't do it without you if it failed, being done on a vacation that everyone knew about for six months?
I won’t say anything the planning, but I’ve learned that migrations are usually hard, in the sense that you have to deal with poorly understood, seldom documented and, almost always inconsistent data. And at the same time critical since you usually can’t afford much downtime between the shutting down the old system and start using the new.
Planning something over your vacation and expecting you to work on it is just your manager being a dick. If they can do it without you, they should. If they can't do it without you, guess it can wait 'till you get back. Not like you dropped it on them last minute.
That has nothing to do with seniority, it's 100% about how you draw personal boundaries between work hours and personal hours. You can make it clear that you will be completely unplugged during vacation.
Once you are an executive, you often have contractual obligations. You are the key decision maker people escalate to. If time sensitive things that need a decision to be made the buck stops with you, no matter where you are.
To give an extreme example, the President (of the US) is never truly unplugged. In the cases where the president is truly unplugged, SoP is for that person to temporarily stop being the President.
Delegation of authority is key here. If not for the commander in chief role of the president it’s conceivable they could just delegate decision making to the cabinet.
That depends on the position, I believe it is easy for a software engineer in a big corp. For senior management or an engineer in a small corp with lots of domain knowledge: a lot harder.
The second set of people can try but when shit hits the fan they will have to explain what happened and why it couldn’t be prevented.
You can absolutely do that, but then you will not get promoted past a certain stage at most companies. I do this because I'm not yet in a very senior position but if I were managing 100 people and in charge of an entire product I doubt I could do that
Because the money is worth the loss of flexibility, for me, under certain circumstances (envision a yield curve of salary vs. some proxy of work-life balance). Specifically I think the tradeoffs are worth it up to staff/senior staff and first rung of management, depending on the team.
I disagree. For reference, I work in a big bank and all the high level people are always on call when fecal matter hits the rotating turbines. Often times, theres an issue with this or that feature in production or we are having an issue with a release and we need an emergency signoff. The process stipulates that a high level person is required to give this emergency signoff, and they often want to know what happened, what are our options, which one we chose so there's usually a lot of time spent chasing down answers or people who can answer those questions.
This sounds like a disorganized workplace to me. The standard thought experiment is: what happens if <supposedly important person> gets hit by a bus and dies? What if they're just in a coma for a few weeks? The response to the first satisfies a sudden "I'm quitting" and the response to the second satisfies a sudden "I'm going on vacation". Business is more forgiving of course, since both quitting and vacation planning typically have a time delay.
The simplest response for both is to delegate: "<person y> now has temporary or permanent authority in the decisions <person x> used to have". That means you need to have a person y for each person x and there needs to be enough trust that person y will make decisions that x would approve of (even if sometimes different). If you're a single-person startup, there is no person y, but then these questions aren't really relevant. As the Pinboard FAQ says, the answer to what happens is the bus will be fine.
I am going to hazard a guess: you have not been exposed to some of the nuttier regulations within this space.
The regulatory demands in financial technology, and especially in those industries where both the regulators as well as majority of the players may not be technically literate, are effectively the anti-thesis of robust and reliable engineering. When the industry regulations demand that for every potentially disruptive action (recovering from an outage is very much potentially disruptive) there has to be a named individual - not even a role, but an individual - to sign off on every single release step... This is why an outage can last for hours. An engineer, or even a lead, is with high probability not allowed to sign off on an out-of-hours deployment. The fix might take 20 minutes to identify, 5 minutes to implement, 15 minutes to test, and 10 minutes to roll out. But until the organisation can get the named [supposedly responsible] person online, the fix must wait, unreleased.
And the irony? The wider dysfunction may be imposed by the regulations, but it has been requested by the industry at large. It is the result of the industry players, majority of whom are incapable (read: technologically illiterate) of interpreting prescriptive regulations. So instead of figuring out how to meet expectations and adapt their processes, they have been lobbying for the regulators to come up with highly descriptive playbooks and step-by-step instructions. These sequences then specify rules and requirements that allow technologically incompetent players to comply, even if they do not understand why they are doing the things.
And then these regulatory playbooks become the One True Way[tm], effectively forcing dysfunctional practices, but also actively preventing any process improvements.
It's cargo-culting taken to the extreme: "do this and you will not be found to be non-compliant, even if the quality is utter shite". The worst part of this all is that the descriptive regulations make every effort to strip engineers of their agency or decision power. Every "modern" best practice is explicitly ruled as non-compliant and hence effectively illegal. I use scare quotes around modern to highlight that these practices are by no means modern and have been known since ancient times. There are research papers from 1950's that explicitly endorse [rapid] iterative bottom-up approach as the only sensible way forward.
The finance industry regulations explicitly reject them because these studies assume that engineers can be trusted to know what they are doing.
So... to anyone wondering why finance industry jobs are generally thought of as soul-sucking: that's why. They are subject to regulations, expressly designed to deprive individuals of their agency.
As someone who has never worked in the finance industry, I feel like one shouldn't lose sight of the fact that the point of it all is to not have millions of dollars just vanish at random as often happens with Bitcoin. Making software engineers happy is not the point.
I agree with your sentiment. However, I believe you are missing the forest from the trees.
The desired result of the regulations is, first and foremost, accountability. This includes, but is not limited to, audit trails and provenance. But because the regulations have been written to specify exactly One True Way[tm] of reaching an adequate level of accountability, they end up causing nasty second-order effects.
As sibling comment by PeterStuer mentions, the unfortunate end result is inventive interpretation to avoid the worst of the disruptions. So from my point of view, the rules put in place to _enforce_ accountability have created perverse incentives to _reduce_ proper accountability.
That can not be a healthy situation either in short or long term.
I'll dig out the archive when back at the office, next week. There is plenty of research into iterative/agile development, slightly less into quality, and surprisingly little on accountability.
The most valuable sources have been just 5 (yes, five) research papers / reports. Luckily they sport citations, but sadly I haven't poured over more than a fraction of them so far.
In my sibling response I mentioned that just 5 articles have been truly valuable. In no particular order:
DOI: 10.1109/MC.2003.1204375 ; "Iterative and Incremental Development: A Brief History"
DOI: 10.1109/AGILE.2013.17 ; "Continuous Delivery? Easy! Just Change Everything (Well, Maybe It Is Not That Easy)"
DOI (with link): https://doi.org/10.1002/spip.344 ; "The agile professional culture: A source of agile quality" [the article itself is pretty light on useful material but it contains some of the strongest individual arguments I've seen, all in one package]
DOI: 10.1.1.428.5843 ; "Evaluation of Quality AssuranceFactorsinAgile Methodologies"
---
There are plenty of other reports and papers on the topics, but they bring very little to the table on their own. These five have provided me with a decent starting point. The references to findings and reports from 1950's are in the first one, btw.
I have consulted in very large financial institutions. Yes, there are a lot of rules. At the same time, those rules will be 'creatively interpreted' if not skirted all the time to keep disruptions to a minimum. 'The rulebook' treatment was in fact a sure sign of internal political power games being played out.
Thanks for the great comment. I don't think we're in disagreement. Government-mandated disorganized workplaces are still disorganized... I wonder about the thought experiment for such an environment though. Tragedy has a cruel way of striking from multiple vectors. You might have a critical issue that demands immediate deployment of a fix, but just before then you learned that the only named person who can legally sign-off on the deployment was involved in a fire and is dead/missing. I suspect the decision would get escalated to someone who might not have the legal authority that the dead person had, but who has enough business authority to make the call on whether the financial damage to the company from not rolling out the fix now will exceed the fine the government will impose for not following the regulation + any potential negligence lawsuit costs if the not-fully-approved fix causes even more issues.
You're right I haven't been directly exposed to such regulations (our emergency releases also require sign-off from management but there are multiple people who can approve and different people for different stages) and I don't ever intend to be. Even for something much lighter. At my current job I refused a request from my boss/boss's boss to go through the process of obtaining a Public Trust Position which would be necessary if I needed to debug my team's product for one of our government customers. Fortunately I didn't have to quit over it, and I still got promoted later. Other people on other teams just went along with it. So I guess I'd amend my thinking (aided by your comments on lots of the regulation in finance being self-requested) that for people who get themselves into a position where it's "not possible" to go 100% on vacation, regardless of the level of dysfunction at the org, many of them generally don't mind it. If they did, they could switch jobs, and anyone concerned about accepting such a deal should weigh that instead of imagining that there's nothing to be done.
Here is original statement I reacted to: "once you're senior enough, you are never 100% on vacation. If enough goes wrong, you will get called back to work."
If fecal matter hits the rotating turbines often that you are never 100% on vacation, then you have fecal hitting around all the time. It is not like seniors would be on vacation 50% time of year.
> Often times, theres an issue with this or that feature in production
You should not have often issues with features in production. You should have them once in a while, rarely. The situation that seniors are always desperately needed to fix crisis during their vacation requires workplace that is having crisis pretty much all the time.
Capable management does not generate projects that are in crisis all the time.
Only if you are not good at process. If you have solid practices, documentation and system design skills you can make yourself removable, then you can go on leave whenever and things will be fine.
A good way to measure this is look at how long it takes to do handover when someone leaves a project. If it is more than half an hour of showing someone where the repo is and a brief explanation then you have a problem that can be fixed with better processes. Ideally, someone should be able to pick up a project or a product very quickly as all the information they need should be in a simple, easily navigable format that they can consume and understand. I realise that is an ideal case but if you are senior enough to lead you can be senior enough to never make yourself a dependency and that callback never comes because it is never required. Ensuring management above you understands your value is another problem (anyone who can code themselves out of a job is worth keeping around and giving harder jobs to and good managers will understand that).
Sometimes I wonder how such emotionally immature people become so successful. I know it’s common, but if I knew someone who started throwing a fit over something incredibly minor and predictable (an employee took a vacation) I’d think they were unfit for any leadership role.
> once you're senior enough, you are never 100% on vacation
This has not been my experience either personally or by proxy to my more-senior colleagues. But it may be I have found myself in a particular niche which is non-representative.
I agree with your sentiment, but I don't think this is quite a "counter-example". The fact that someone gives you a lot of responsibility is definitely a sign that they respect you more. But yeah, along with more pay and responsibility comes the expectation that you take the blame when things go wrong. And if they go wrong during your vacation, it's up to you to fix them. This can definitely be true in lower level positions as well, but I agree with the sentiment that this tends to be _more_ true with upper level management.
A nice side effect of this is, if you're making multiple six figures, your chances of being asked to work on bullshit projects that don't matter is much lower, and you can basically pick and choose what to do, and _tell your boss_ what to do as well. Money is not just compensation, it's also a powerful signaling mechanism. People just assume that if your time costs a lot, you must be super good. This is _mostly_ true, but not always. Some people get paid a lot for no apparent reason at all. The inverse, however, is often not true (yet the pricing signal is interpreted exactly as you'd expect): there are lots and lots of great people who are severely underpaid. Some are victims of circumstance, some just consider pursuing top dollar to be "beneath their dignity", majority (anecdotally, I don't have data) are just too lazy to do anything about it and change jobs once every 2 years as they should.
There's another thread that recently rose to prominence about ascertaining the quality of clothing and something along the same lines popped up: expensive clothes are not always high quality, but high quality clothes are generally more expensive -- the cost is a signalling mechanism aka heuristic and like any heuristic it can be gamed
The lesson every consultant, including me, seems to have to learn on their own.
When I went out on my own a few years back, it was a rush to sign any client at an hourly rate not that much higher than my previous salary rate. Those first clients were rough.
As you’re saying, I’ve also seen first hand the more I charge the more people take my suggestions seriously, and overall the better the clients are for my business. Go figure.
My first boss started to respect me after we had a shouting negotiation with him over my work contract. The employer-employee relationship is weird and toxic as hell.
Work long hours? Develop additional tool during your free time? Help clients more than your job requires? You are a sucker.
Manage to shout enough to get a raise? Now you are a champion.
> The employer-employee relationship is weird and toxic as hell.
Doesn't need to be in my experience, both the employee and employer can respect each other even when they don't get along well on personal level. However it is actually quite interesting that it is a relationship that can be weird and toxic, while still providing (economical) value for both parties.
I had some healthy relationships with bosses, but every employer I had who was a decent human ended up being fired by shareholders.
And yes, the strength of free market and capitalism is to transform greed and all the behaviors that come with it into a fuel that helps the economy for everyone. It does not transform these into virtues though...
That's pretty close to class warfare IMO. I like this passage:
"A Sociopath with an idea recruits just enough Losers to kick off the cycle. As it grows it requires a Clueless layer to turn it into a controlled reaction rather than a runaway explosion. Eventually, as value hits diminishing returns, both the Sociopaths and Losers make their exits, and the Clueless start to dominate. Finally, the hollow brittle shell collapses on itself and anything of value is recycled by the sociopaths according to meta-firm logic."
This realization has stopped me from trying to hire people. I don't think I have the shoulders to be the chief sociopath.
I know people who have killed for a couple thousand dollars. It's no surprise I've met many others who will lie, cheat, and connive for more. If people think you're a weakling, they will rob you. As a normal employee, you don't have many options for defending yourself besides clear verbal argument and leaving for greener pastures.
This rarely has anything to do with salary and more so to do with what your company can afford.
I've made 60k/yr at jobs where I've had awesome equipment and flexible hours.
People respect you more if you get things done and solve problems. Not because you have a big salary. How often do you think people respect management?
Just geography alone determines salary. I could make double if I simply moved to San Francisco for the same job. Doesn't mean I'm "more respected".
> People respect you more if you get things done and solve problems. Not because you have a big salary. How often do you think people respect management?
That's not what the person you replied to is saying. The above person is saying that companies which pay well also tend to respect their employees more, so seek out a higher salary because those companies also tend to offer better benefits/culture.
That isn't necessarily true. There's a difference between respect and benefits/culture.
Some would say that Google, in all its free lunch glory, doesn't respect its employees that well consider they've had employees go on strike due to their policies.
> Some would say that Google, in all its free lunch glory, doesn't respect its employees that well consider they've had employees go on strike due to their policies.
The protests were mostly against sexual abusers/harassers and the arbitration policies. Are you implying that most other tech companies haven't had any executive-level sexual harassers? That most other tech companies don't have forced-arbitration policies?
How many other companies openly allow their employees to organize protests through company emails and forums? Not many. The open culture is what allows people to protest.
But they did retaliate against the organisers - some of whom have since left.
Most I got for mine (leading an actual strike) was a written reprimand -probably forced by the hr manger of a certain BT division (not the one I worked in)
Did mange to change company policy and get several k people a better pension later on.
I think a better example of this is Netflix. They make it a stated goal to pay you more than what you will be able to make anywhere else. They also are pretty straightforward about wanting a return for that pay :-) They'll milk you for all you're worth and if you aren't 100% anymore, they will replace you. They are completely above board and honest with their approach, so I think it's fair ;-)
Not saying that isn't a good strategy for some people (and I probably would have enjoyed that pace when I was younger), but it's not really what I think of when I think about respect and good culture.
Darn... I can't edit this any more. I'm bemused by the downvotes because usually when I get downvotes it's because I'm wrong :-) I believe this is the post where they explain how they do things: https://hbr.org/2014/01/how-netflix-reinvented-hr
I'd be very interested to know if this has changed.
You observe a correlation but not necessarily causation.
Technical jobs that are well payed and well respected are found more often in companies that produce a product or service that is sold rather than in companies that sell your time, whether directly or under the guise of 'projects'. If your time-sheet impacts the bill to the customer, you are the product being sold.
The reason to avoid the latter is that all benefits to you, either salary or equipment/working conditions, are seen as expenses that impact the margin on the rate, while in a product company they are far more likely to written of as investments into the IP producing engine.
Creator of levels.fyi here - a big part of making the site was to highlight the economic impact of working a technical job and the exponential growth it comes with as you progress in your career (Glassdoor sucked at showing this). There are just more & better opportunities the farther you go!
Huge fan. Not only is it great to see the data there, but the story that it tells is super compelling too. I myself wasn't sure just how much more worth it was to think about the BigCo game but now, after so many bouts at growth stage startups and plateauing out, I'm seriously considering it.
Yep, it can be a big motivator. I think companies should dangle those numbers around more. “Competitive compensation” doesn’t really mean anything. Saying top engineers can earn >$1M will make a lot of people ask “what do I need to do to be a top engineer?”
I'm guessing that You dont have kids :) I would say the same few years ago, but having young children now causes that I have nowhere to work at home that is relatively peacefull and quiet.
I'm holding out for cities on the carbon neutral push to offer subsidies for full remote work. Cheapest way to reduce carbon emissions is to get cars off the road, cheapest way to do that is to remove the need to travel.
I’m 80-90% remote, and it’s such a huge lifestyle perk that I’d need at least a 50% pay bump to even consider anything in the city. I hope this becomes more and more the norm for tech jobs because everyone deserves ample time with their family and friends.
For me now the baseline is remote + good work life balance and vacation package.
If we can throw exciting tech, more money, etc on top of that, great.
I can't imagine not having any remote days in the week. Unfortunately, many enterprise jobs in my area expect people in their seat 8 hours a day, 5 days a week.
I'm hoping to polish my skills and eventually find something 100% remote even if its less thank $100k. I want to buy a lake front house, and get on a jetski/boat during my lunch break.
I'm 100% remote working full time for a household name financial company. I'm making $150k, plus 6 weeks vacation, 401k match, etc. I'm in process negotiating a consulting gig that will pay a little over $300k that is also 100% remote. That one is a corp to corp contract, not an employee position.
Hang in there, you'll find your spot. My advice would be to make friends with a few recruiters for the big headhunting firms. With a little patience for terrible signal to noise ratio they should help you break the $100k mark for remote work. Sometimes you gotta shop around for the right recruiters. The first person you talk to is probably not the person with the right contacts.
I've been full time remote for four months now. To even get me to drive a mile to work would require a significant bump in salary and options to lose out on this quality of life. It's almost unrealistic at this point that I would ever consider going to work in an office again.
I save a BUNCH of money, I get to work with other remote employees across the world, I mostly work my own hours, and I even got a decent bump switching to this job.
The pay is better than a lot of positions that are local to me in SoCal.
I do miss some social interactions during the day, but slack and getting lunch with friends and previous co-workers fills that gap decent enough.
I see job postings come across all the time in my filters for stack overflow jobs, but the pay and benefits are equivalent to my current situation, except I would have to move to a higher CoL and go into an office.
Personally I couldn’t care less about status, but money is very important to me, because I want to “retire” (work on my own stuff and by my own schedule) by the time I’m 45.
I wonder how many people in the survey interpret "opportunities for professional growth" as "opportunities to get rich". To me that makes the survey data more understandable. People, myself included, basically want more money for less hours (AKA work/life balance).
It seems like tricky wording used by businesses to pay people less. Tell people in your job description that you offer "opportunities for career growth" and they hear "opportunities to get rich". Then when they're actually working there you just change the meaning to some kind of title inflation or meaningless training or additional responsibilities for the same pay.
> even worse, additional responsibilities for the same pay
FWIW, and I say this acutely aware that I'm of the "don't give them what you don't owe them" tribe, additional responsibilities for the same pay are how I got the broad skillset that got me to the point where I'm a principal developer with a hand in every part of our project--which is, in addition to no-complaints compensated, genuinely a lot of fun. I took on those responsibilities as an investment in myself; admittedly the key was finding high-value, high-leverage responsibilities, but it was for me more than for my current employer.
Few enough people are going to pay you to learn something on their dime if you don't already show a ton of promise. Broadening your skillset is, IMO, how you get to the next job.
I couldn't agree more. Talk is cheap. Take that that extra responsibility on and prove to everyone, including yourself, that you're capable. Use the experience and knowledge as leverage with your current employer or a new one. It's a lot easier to ask for a raise or high pay showing what you have done than what you could do.
I think "opportunities for career growth" is very similar to how graphic designers or musicians are always pitched that they should do work for someone for low/no pay because it will get them "more exposure". There is the possibility that the growth opportunity will end up being a good investment with regard to future financial returns, but I think the most likely case is that it will just end up with the person doing the work losing out on money.
"Mentorship" and "impressive team members" are other choices, so yea. Maybe not "get rich," but certainly "get paid more and have a more impressive title."
Thats one way to look at it, but to get rich you want to join companies that are growing like crazy.
A company that grows 20% like google offers high cash low stock. But a company that grows 100% every year can make you a millionaire in a couple of years.
Its true startups lotteries are not great for employees in general, but who would have bet that UBER wouldn't IPO in 2014? or some other companies like Airbnb, etc.
Is this a more effective tactic, in expectation, than working a well-paid job at an established company and then going to Vegas every year to bet a decent chunk of your salary?
Well, Sam Altman & Andressen have strong opinion on it: join rocket ships.
You can also get a much higher position at a well paid job if one of the bets pays off, or if you find growth opportunities. While getting a promotion at google might take you 4 years, in a high growth startup you might jump 2 steps in 6 months.
But if the rocket explodes on the launching pad, as an employee you don't absorb much risk. You were probably going to jump ship in 2 years anyway, you're just doing it earlier than you thought and you can now say "I was at ___ when they were growing at ___% year-to-year" when you're interviewing for your next job.
To be a bit cynical, Sam Altman and Anderssen make more money when more people work at startups.
If you compare someone who joined Uber in 2014 with someone who joined Facebook or Google in 2014, I'm honestly not sure who would have come out ahead. Probably Uber, but not by a whole lot.
And Uber is the best case scenario, practically speaking.
If you can repeat the process several times, each time picking better bets, then you stand a good chance to win big. Maybe 50/50 chance of hitting a million dollar win over 12 years and 5 contracts. Assuming you leave some sinking ships and some consecutive years really pulling hard at promising companies.
But you should probably also be investing in property and a 401K.
None of it is guaranteed, but if you’re patient and reactive and work hard and treat people like you want to build lifelong relationships, it sorta IS guaranteed you’ll be in a good place after 20 years.
The only guaranteed way to be a millionaire is to work for big companies, relentlessly push up the ladder, invest 15-25% religiously and never touch it. That WILL make you a millionaire in 20 years, but you won’t be able to think about much other than your next promotion and your budget.
There is some cognitive dissonance that I can't seem to get over while reading your comment. While your statement is technically true, I just don't see it being true in the real world. Any time I have gotten a job that has paid better, it also came with more challenges and more difficulty and invariably more of a time investment(even if that means studying outside of work). Maybe I am just taking the wrong jobs...
It's possible the OP is thinking from a consulting or contract perspective, because my experience is in line with yours - as my salary grows, so does my sphere of influence, but also my scope of responsibility, and that usually has meant more time investment.
The thing that's interesting though, is on the consulting side, as my rates and overall project cost have increased, the time investment to close a sale has also gone up. Meanwhile, if you go for a more expensive & specialized skillset, there's also a time investment on the marketing & outreach front.
Basically, in my experience, there's a small handful of people who've managed to carve out a niche where they can work low hours and make a high hourly rate, but they're few and far between, and investing in passive income streams is really the way to go.
That said, I _really hate_ managing rental properties instead of slinging code, but in terms of dollar per hour there's no comparison.
> there's a small handful of people who've managed to carve out a niche where they can work low hours and make a high hourly rate, but they're few and far between
They seem to be the loud minority on here though. I guess if you get a sweet gig like that, you will find lots of time to post on HN. I know I'd brag about it too if I was in that situation.
Funny thing I found out about this recently - my country has a tax model where very small businesses (defined by revenue < threshold) only pays a small flat tax - comes down to a few %. You cross that threshold and you're in the standard tax brackets which is a big jump + regular accounting, etc.
So this forced me to settle for a number at which I'm happy with my income and I can have a clear goal for that year - once that is achieved other things come in to play.
This seems basic and maybe it's just me but I never really had an idea of what I wanted to make, what is "enough" - I would just say yes to any opportunity that came my way which paid more and kept plowing forward - but there is a limit to how much you can do and it's hard to guess it before you reach it so I ended up pulling all nighters and working through weekends more than once. Now that I have my limit it's actually pretty easy to reach with ~210 regular work days according to my current rates for a really easygoing client - this leaves me with plenty of time for other stuff - if I find a better paying client I just work less for that year - I like this model.
Even with paying the accountant and even if the higher bracket was 90% you’d still be making more by earning more. It’s hard to agree with your line of thinking but I have seen this often that people are willing to sacrifice quite a lot of money for “security” and “peace of mind”.
In practice you’d have more peace of mind with more money in the bank.
>Even with paying the accountant and even if the higher bracket was 90% you’d still be making more by earning more.
Maybe I should describe it better - it is a special tax model - you pay a flat fee if you make less than X and that flat fee turns out to be ~5%. When you cross this threshold you no longer qualify for this model at all - you have to convert to standard taxation - I would need to increase my revenue by 20% just to break even and the extra hassle of doing that would mean that I need to increase it by 30% (at least) to be wroth it.
So in my situation it just turned out to be a good limit where if I negotiate 10% more I just convert that money = free time for other stuff. I don't plan to stay below this limit forever (in fact next year I plan to go over) but the concept of having a target income goal and then letting the rest of your time go to personal life is really good for work life balance IMO.
That equation is a theoretical one. On the whole, jobs that offer high $/hr will mandate crazy hours. Jobs that will allow you to go 20 hr/wk, or 10 hr/wk will usually not pay you well on a per-hour basis either. -- I predict that in response to what I just wrote, there will be people showing off about how they managed to make a consulting lifestyle business like that actually work because of how awesome they are. -- But keep in mind they are the exception, not the rule.
True, but I'm looking at it more over the course of a lifetime. If I need $X to cover all expenses in my lifetime then I need to work $X/Y hours where Y is my earnings per hour. This is a bit oversimplified if you include savings and investment but in general is how I look at it.
That "$X to cover all expenses in lifetime" figure is impossible to calculate, and is not under your control at all. It will be inflated away without your consent, and requires constant evaluation and re-evaluation. My philosophy is to always be investing in capital, whether it be equity, political (relationships with people), or resources.
My spending is not impossible to estimate and for the most part it is very much under my control. If what you said is true then no one could ever reasonably retire at any age.
The relative security afforded by various factors in developed countries (especially USA) since after WW2 up to now may not be available going forward. The biggest challenge is the increasing proportion of non-working people to working people, at least partly due to aging and fewer children.
The part of spending you can't control and which happens to be the largest expense is medical care, which is not a problem right now due to Medicare, but it's already stressing the system and we have quite a ways to go before the aging population maxes out. Retirement ages are already going up and up, and I can definitely foresee rationing of medical care as we push the system to its limits.
The closer you get to retirement, the more obvious it becomes about how much to save to reach the goal. Until then, it's better to just try to eke out as much savings as possible than estimate your spending. Estimating lifelong spending is quite similar to modelling global economic activity over a long period of time.
I agree. There's probably a dead zone somewhere in the middle. One side of the deadzone there's an equilibrium doing fulltime at a mediocre hourly rate. The other side of the deadzone there's an equilbrium doing a very small number of hours at an exorbitant rate. But for that latter model, I would expect a significant number of non-billable hours for project acquisition. (Maintaining client relationships outside of paying projects, doing sales work around new leads, doing stuff like PR and writing articles and whatever else you do to be recognized as an expert/authority in some field, etc. etc.) so that the billable and non-billable hours probably also average out towards a mediocre effective hourly-rate. Early in your career, that probably means you have to do crazy hours there too. Later on, you might get dividends in the form of not having to work so hard on sales any more.
Taking time off between jobs is a real option for most programmers. Depending on how long you stay at each company it can even add up to a few years of time off without having obvious gaps on the resume.
You have to have the stomach for that... Personally, I couldn't get any real enjoyment out of a time period where I didn't know when/where/whether I have another job lined up, and opportunities to get truly trustworthy commitments on start dates that are a significant period of time in the future are rare.
I do that all the time - like literally my CV has probably 5 or 6 gaps of varying duration (between 3 months and two years). Often, during those gaps I spend some time working on something tech related, so I put that into the gap in the CV.
Even with those gaps, I'm having zero problem finding well-paying jobs. I think it's because, despite those gaps, I represent good value to the employer - I know the latest tech, have done good work in the past, can present coherent and mature opinions during the interview etc. Also, I only do long-term contracts where they explicitly don't care that I'm a job-hopping mercenary that is not ever going to believe the "company mission", because the assumption is that the whole arrangement is temporary anyway. In practice, they always want to retain me and I end up quitting out of boredom after a year of two.
To summarize, the gaps are probably important only when you're in close competition with lots of folks similar to you. But, if you're a bit of an expert in a specific niche (mine is Big Data - Hadoop and related crap, applied in enterprise IT context) and there aren't that many competent candidates around, the gaps suddenly don't matter.
I'm 38. We'll see what happens in a couple of years. In any case, these enterprise companies usually have a position of architect on their teams, where grey hair are even an advantage. I don't like this job, as it's more headaches than coding in a lot of ways, but when if ages turns out to be a thing, then I guess I'll be architecting (I've done it several times already, so I have the CV for that).
I’m similar. I have one multi year gap and a number of smaller gaps. Nobody has ever commented on or asked me about them. I do put any relevant projects I’ve done in that time on my CV, if I have any, but I done’t always have much technical stuff to show for the time. I have started startups though and run a programming meet-up, in mostly asked about those.
If not for the fact that I need to have health insurance for my family and the only way to do that without breaking the bank is through an employer, I'd agree with you.
Speaking of signaling mechanisms, if you take time off from working to travel to “interesting” places, and mention it in the interview, you are indicating a clear lack of financial pressure, which I have found to be quite helpful in price negotiations.
You aren’t jobless; you are successful. Even as a bluff, with a now-empty bank account.
I'd be interested to know, too. I interpret that statement, personally, to be more along the lines of "maintaining my employability (in this industry)."
Maybe upbringing / background plays a significant factor here? I watched both of my parents very unceremoniously lose their job-for-life jobs and nearly everything along with it.
My primary motivation, then, to stay abreast of the industry, to pursue new skills/technologies/challenges, things that I would put under the label of "opportunities for professional growth," has (not entirely, but for the most part) little to do with the amount that I'm paid (considering that I perceive myself to be paid well) and everything to do with maintaining a recurring paycheck until I'm retirement age.
Absolutely. I used to work for a small consulting company where most of the work was building fairly boring line of business systems for big corporations. It seemed like we charged way below what other similar consultancies where charging, so I asked why we didn't charge more. The response was not that we couldn't charge more, but that at $X the clients just wanted use to work endless 8 hour days, but at $2X clients would only bring us in for more critical projects but would not want to pay for our time doing routine maintenance, filling out corporate paperwork, support requests, etc. To me it sure sounded like we should have been charging $2X, having to work less, and being treated as a valuable resource. But I guess some people prefer the (implied all though not real) security of consulting contracts without an end date.
Most people want that, but I think a high percentage of programmers do truly want a job where they get opportunities to learn new things (in addition to opportunities to make money). They probably should've split the question into "promotion/raise/compensation opportunities" and "learning/skill improvement opportunities", or something.
I'm not sure I agree with the conclusions. Sure I really want to grow as an engineer, BECAUSE I want to make more money. When I think of professional growth, I think of a company that will give me large pay bumps equal to what I could get if I left, because as time goes on I get more productive and more knowledgeable.
Don’t treat developers like bricklayers. Sack any product manager or manager that does it. This is the root of all evil, radical as it may sound. There needs to be a balance between engineering and product delivery, but too much emphasis on product delivery leads to tech debt, cutting too many corners and poor tech choices. Not to mention stress and little to no job satisfaction. Give devs some time to build something they are proud of. Good devs are in it because they love and once that love is gone the dev is gone.
in my experience many developers want to be bricklayers (not to discount bricklaying, there's an art to it, but they're focused on the individual bricks, not the other aspects of the building). They get annoyed when they're asked to think about the bigger picture and just want to focus on the code, the architecture, and whatever is new and shiny. It is largely due to these sorts of developers that we've developed all the ritual around sprints/product owners/etc to put blinders on them because they cannot deal with deadline and thinking in terms of business value creation.
This sort of person is under-represented here on HN for obvious reasons but they represent the majority of people developing software. The opportunity to contribute more than just lines of code should be offered and encouraged, but don't be surprised at how few will be interested.
There's a ton of truth to that. A lot of people speak like everyone wants to be a 10x engineer. Personally, being that sort of engineer has never appealed to me, and the majority of developers in my social circle in practice want to be the "bricklayers" of code because it's already a sweet financial deal.
I am one of these happy bricklayers. It's the only way I can stay sane in a job. When I'm working on my own projects, I'm all in, and I love all aspects of the process. But in a job, on a project that 99% of the time is run badly, and my colleagues are writing terrible code, just give me the bricks and tell me what to build. If I try to care, I get frustrated and depressed.
Plus, I'd be fooling myself if I were not like this. I've seen people put their passion into a job, argue their case, and then they get made redundant. Don't be fooled.
P.s. I'm a very good, reliable bricklayer who makes very solid walls.
Yeah I agree with this. If you are not in a high-up position you will just get too frustrated caring about the bigger picture because you have little power when it comes to actually making bigger-picture decisions. So all you can do is suggest things which 1) may not be well received, could be perceived as some low-level employee overstepping their bounds 2) probably won't be heeded since then the managers/pms/directors/etc. have to concede power
This is both true and hard to deal with, because sometimes these bricklayers will a) assume everyone is trying to be a bricklayer, and b) will actively attack non-bricklayers because of the perception that they're being made to look bad.
I honestly don't yet know how to fit everyone together.
> I honestly don't yet know how to fit everyone together
Bricklayers should be managed and never put into more senior role. Also, you should never build a mixed team with bricklayers and "other" developers (except for case where there is only one "other" developer and they are the team lead).
It's entirely possible their current job is done at their maximum effort without burning themselves out. So asking them for more isn't going to do anything long-term.
"The opportunity to contribute more than just lines of code should be offered and encouraged, but don't be surprised at how few will be interested."
I learned a long ago:
1) I can offer the best ideas that go beyond lines of code, but it usually comes down to the decision of someone in a higher position than me (manager, sales, the CEO, etc) and if they just don't feel like utilizing your ideas, they won't. Fighting this is more trouble than it's worth.
2) Most companies, unless you are in a startup where you wear many hats, don't want you offering your ideas. They have the ideas and want the developer to make them into a reality.
3) Most of the time, a project manager is the person that thinks about the bigger picture. I don't really want to have the responsibility of both roles..without the salary increase that comes along with it.
I love thinking about the bigger picture, which is why I have my own company I'm building on the side. But I would much rather just get my job done as a developer for my day job.
There's no shortage of ideas, especially within a company. If you want your ideas to win out, you should take advantage of what you do best… making things.
If you combine your idea pitch with a working prototype (doesn't need to be polished), it's odds of getting adopted will be far more likely.
If your idea isn't one that can be prototyped, e.g. "Ask Microsoft for a billion dollars", then you may as well just pitch it, just like anyone else.
Just out of curiosity, when would you think these prototypes should be best built? Surely not on my free time, right?
If the company is not interested on listening to new ideas, and you're keen on participating in something you would like to help build, then perhaps this is not the right company for you.
I have a project right now that I am thinking of building a prototype for on my own time and pitching to my company, because the company will basically have to sell the idea to another business. Why would I do this? Because then I can say how much I want to be compensated for my idea getting the company new business.
I honestly wish you all the best, and hope that works for you.
Just please be aware that after you've delivered, you loose power for negotiation. Therefore I would probably rethink the timeline choosen for agreeing on a reward "then I can say how much I want to be compensated for..".
I certainly do not intend to deliver anything that works before asking for compensation, I intend to show something that works and then negotiate how much it is worth.
But only if you think it will demonstrate enough value to get you something you desire: cool work, a promotion, etc.
This requires a good understanding of what your managers and the larger organization will value, and whether they reward people who show they can deliver on those items. People's careers _do_ get bumped from these kinds of efforts, but I've seen a lot of engineers spend 40 hours prototyping something that management just won't value.
"If you combine your idea pitch with a working prototype (doesn't need to be polished), it's odds of getting adopted will be far more likely."
I have a family and only have so much free time. Even if I didn't, why would I spend my free time building anything for a company and not get compensated for it?
Even if you go through all of this, there is no guarantee you will get the responsibility and pay increase.
I honestly don't really care about any of my ideas winning out. I'm perfectly content getting told what needs to be completed and coming up with a good solution.
> They get annoyed when they're asked to think about the bigger picture and just want to focus on the code, the architecture, and whatever is new and shiny.
Maybe I'm the exception here, but this does not really describe most devs I've worked with. I've seen really smart devs just not care to argue anymore in workplaces where no one listens to them, but this is not the same thing as wanting to be a "bricklayer". Most devs usually have a lot of work on their plate and not enough time or energy to argue with some product owner or manager who is determined to get their way and who does have the time and authority to force their ideas through. On multiple occasions I've seen great teams destroyed when some determined micromanager gets promoted and decides they are going to "fix everything" without actually listening to their people with the most hands on experience. This and many other forms of organizational BS can lead to developer apathy from what I've seen, but I really don't think the dev who just wants to be a bricklayer is the norm.
But that's exactly the kind of employee that most businesses want: interchangeable bricklayers.
I get that getting good developers and facilitating good code requires incentives, but this is usually at odds with the perspective of business owners, which is that employees are both a liability and an asset. Lousy developers are (seemingly) low-liability and good assets because they can make it work for cheap and, if something goes wrong in the future because of all the spaghetti code, that's when you can hire the good developers to come clean up the mess.
Clean code is most valuable in the fact that you can add new features without old ones breaking
You should be able to write clean code from the start without it ever being classified as spaghetti as long as you stick to principles like Law of Demeter, SOLID, etc
I deal (and compete) with smart but professionally mediocre programmers (and hardware designers). Their knowledge is usually limited, but they get 80% of the job done and the customer need is addressed.
Only when the product gets used in a non-typical way or in non-typical circumstances, do the (inevitable) bugs appear. They didn't think their design choices through or they didn't know the limitations of the tool used.
So bugs are considered a known risk, and are managed. Hardware, for example, is swapped under guarantee. The most ugly bugs are fixed, and others are too costly and wait until a redesign.
But the employer likes their qualities:
- he gets a mostly rapid schedule,
- he gets an employee that doesn't get lost in abstractions, and
- he gets to charge the customer again for the next major iteration
Basically they get him an MVP, and the customer keeps paying for each design iteration. We all know how important that is to the bottom line. To him Quality is optional, like benefits are to a job: they end up being important, but the salary usually comes first.
> But that's exactly the kind of employee that most businesses want: interchangeable bricklayers.
That's what they want... until their needs change.
I did a contract at a company where I was the test automation guy. The dev team didn't want to right tests, and they were happy to convert requirements thrown over wall A into the code the threw over wall B. The QA team caught the wall B code, and threw their results over wall D. Things took forever, but everyone was happy... until pressure to ship faster started to come down from the top.
To speed things up, they hired me to automate all the things. Well, the dev team weren't interested in helping me learn anything, and the dev manager even told me to my face that he wouldn't ass test coverage unless management asked him to & gave him extra time to make that happen. The QA team weren't coders, and they didn't really have any incentive to help me make things go faster. The build & release guy wasn't interested in getting tests integrated into the Rube Goldberg of a process that he managed.
They were all great bricklayers who told themselves they were agile because they had 1 week sprints, daily stand ups, and a all sorts of other processes. But when taking forever was no longer good enough, instead of trying to grow with it, they resisted & fought it. My role was pretty miserable, and I quit after a few months. On my way out the door, I learned that I was like the 5th person to walk, and they were planning on seeking interchangeable bricklayer #6.
In my experience, companies want interchangeable bricklayers, but they usually don't usually like the results of what they asked for.
I've had some conversations with managers and everyone agrees it's `employee mentality` that kills it for everyone; devs are a fickle bunch and although we all may agree in spirit to the words above, I doubt you'd actually gain any consensus as to what the words mean per se
I'd say the weak link across the board is the notion of corporacy and what it means, as well as what professional work ought to look like
fresh-faced devs straight out of university or college believe it's similar to their academic life, you get an assignment, you turn it in, you get graded cue morpheus meme: what if I told you professional life is nothing like university life?
similarly, we can't discount the international landscape of contractors and jumped-up leadership types we have to deal with, once again everyone has different ideas about what work looks like and it ranges from factory work to academic research to everything in between
A while back a bunch of consummate craftsmen worth very little in practice ruined the party for everyone with their pedantry in terms of technical concerns and set off a series of chain reactions that has quite disempowered all technology professionals
unless you're willing to revisit all your assumptions from the ground up, you'll be having this conversation again and again until you're an old coder in diapers tethered to a laptop on a walker
Oh man, I read the article, and I really identify with what you also say: I'm now in a position where I'm pretty good at my job, and my employer is keen to give me a permanent position.
And yet, whilst it's fun to be able to answer questions on the spot, regarding my area of expertise, I'm looking forward to learning more.
Now, I learnt a lot on this job, and it's very challenging on a daily basis, but it's becoming repetitive, and having talk to management, they could not tell me how they see me/my position evolving in the next 6 months/1 year/2 years.
And that makes me longing for another job...
Is your manager willing to talk about knowledge transfer of some of your duties to other people? That's a double win, because they get some growth, and you get free time to pursue other interests. And if there is nothing, then at least you feel less guilty about leaving.
Your boss has revealed they have no opinions on your growth options. Do you have any ideas of your own? Offer them up.
TBH I would settle for working on a sane codebase. Almost every codebase I have worked on except for my own are a complete mess. Basic things aren't done right e.g. Reproducible builds, source control, code review etc.
Am I the only one here that likes growth because I like learning? I try and grow all the time in non-professional areas of my life even though there is no direct monetary compensation for doing so (such as learning new languages, instruments, etc.)
At work though, I find my thirst for learning new technical things has disappeared as I've gone older. What has grown instead is the thirst for learning new things in or related to my industry (domain knowledge). Like the problems my customers are facing, or where the industry is headed, or why they have been doing things a certain way.
This matches me pretty well, too. I was lucky in that I had the opportunity to get a broad base of knowledge very young and now don't have to run to catch up so much; because of it most of what I have to learn now are variations on a theme. Which is good, 'cause like you I've got way too many things to learn about the company and the industry and how to best apply those skills therein.
You are not alone. In fact, the opportunity to learn new things continuously and at a forced rapid pace is the reason I left academia to be a software developer.
This has to be the most amusing thing I've read on HN in a while. I left academia for the same (counterintuitive) reason. Glad to see I'm not the only one and not crazy.
Nobody pays for or gets product placement on HN. You have to make something readers find interesting. I assume that's the case with the current submission, since it hasn't been affected by moderators or by any of the below.
We do sometimes place stories that we or a small number of story reviewers think the community might like. That program is described at https://news.ycombinator.com/item?id=11662380 and the links back from there. Such stories get lobbed by software randomly onto the bottom half of the front page, whence they fall off in a few minutes unless people upvote them. The purpose is to make HN more interesting (because https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...). Many good submissions fall through the cracks and this is a way to give some a second crack.
Anyone who knows of a story that deserves a second chance like this should email us at hn@ycombinator.com and we'll consider throwing it in that pool. It's ok to ask this for one of your own stories, but it's better if you just ran across something and think it's cool.
By the way, you can see a partial list of these at https://news.ycombinator.com/invited. Those are the ones that were too old to be lobbed directly when we saw them, so we emailed the submitter and invited them to repost it instead. It's on my list to publish a more comprehensive set of lobbed stories.
As the article mentioned, the importance of growth's influence can be explained in large part by a broad interpretation of the question. This article defined "Professional Growth" by saying:
> "In short, software engineers of all stripes want, more than anything else, to develop their abilities as engineers"
This is true, but it's also the first-order answer. The follow-up question to ask is why they want to develop their engineering ability. It may be to make a higher salary down the road (i.e. current salary is less important than future earning potential), to develop the skill set to found their own company, to gain prestige by moving up in an organization and managing other engineers.
Overall, really interesting post - definitely worth diving into the data further.
I do not have anything to support it, but I think if you will be able to make such a study comparing women-into-programming vs men-into-programming there might be no difference in cleanness of one's house.
Perhaps women are less likely to be given the freedom to create the codebase (or part of it) and more likely to be involved in maintaining and extending it, and/or more likely to identify with such a role.
> “Opportunities for professional growth” is the clear winner, appearing 13 percentage points above even “salary”.
Ofcourse professional growth is the winner as more often than not is directly proportional to one`s salary.
As a s/w engg. "professional growth" is a hybrid of bunch of things - learning new tech, Cloud knowledge(k8s, docker etc.), and well summarized in the lines below by the author:
> In short, software engineers of all stripes want, more than anything else, to develop their abilities as engineers. They want it more than pay, more than work/life balance, and more than autonomy.
I strongly agree - to me the term "professional growth" is synonymous with higher income and greater future employment opportunities. Not with learning a new framework or language.
I think this means we have to address some potentially specious statistical reasoning here. Assuming that a point cloud of pre transaction questions gives you the information to ascertain the career trajectory between great engineers and the "best" engineers is likely a fool's errand. What's the data source? Is it your technical screen? If there is any possibility that your technical screen doesn't track reality accurately, then your ranking metric is probabilistically very likely to be inaccurate. This is the risk of trying to quantify skill and potential levels before you try to qualify them properly.
Most recruiting platforms work on a transaction processing fee on a per placement basis. Triplebyte is no different. The entire product is set up for a candidate to land a job. It is not set up for a candidate to structure and guide their entire career. The simple way to think of a transaction is as a point: point score on an assessment test, point score on a technical screen, point offer extended or not. You see these things being measured in this blog post, but that doesn't tell the full story to a hiring manager. If you're hiring an engineer that's actually growth oriented, you care about looking at the first and second order derivatives of all of these things, and you'll see them on a project to project basis, or on a person to person basis based on how they interact with their team and other teams.
I want to repeat myself and restate that most recruiting platforms work on a transaction processing fee on a per placement basis. It's erroneous to try and draw the wrong kind of conclusions from data points gathered from enabling this transaction, especially when it's just 1. When a candidate receives multiple offers that they're interested in, it's very likely that they'll make a holistic judgment based on a combination of factors, and their gut. Is the company "good" or "sketchy?" Do they feel chemistry with the people they'll be working with? Are they stimulated by the work the team will be doing over the next year? The truth is, for most talented engineers at early stage companies, any company that makes a desirable product and has substantial growth left in building and scaling its product will allow for growth in literal terms. The limiting factors there will likely be the team, if anything. If there's juice left to be squeezed from building further product edge, and the team is good, the org is good, and the leadership is good, it's very likely that an engineer will receive more than one opportunity that is "good enough" -- good enough for them to exercise the upper limits on how far they can grow.
It's easy to pay lip service to offering growth, but it's hard to actually do. In many cases, companies shouldn't be trying to offer that with a straight face. In growth stage startups, growth as an engineer is bound to the combination of the growth of the company and the growth of the product. In most cases, if you want to hire any kinds of the best employees, you need to offer growth. But, your business model, company growth and stage of company and culture all have to offer that. That's the hard part. It's something that needs to come from the executive level as well as good timing and a ton of foundational work.
If you can offer growth, that's great. It will make it easy to hire the best. But, most companies are not in the position, and the ones that are certainly don't need this advice. So, this isn't really useful. Offering growth is not something you can turn on and off. You need to build a great company and build a great product that people want and which a great business can or is built around. If you can do that, expanding the engineering team becomes a matter of logistics instead of intractables.
I think TripleByte is a great idea, and it's at an interesting point right now. But to use your data to answer this question requires looking at thi...
I'm willing to forgo growth if the money is high enough... but I'll be more strict on my time at the office, allowing me time to do things outside of work.
I'm the opposite. If my living and food expenses are covered, I'll prefer full autonomy over no or minimal autonomy. You can only spend so many years doing things you're asked to do which you don't really want to do before the value added by the extra money is outweighed by the value lost from life in general becoming more depressing and less inspiring.
That's true, but it depends on the income rate, I guess. If I need to work a soul-sucking job for 15 years to be able to spend the rest of my life with mostly full autonomy, I think that trade-off isn't worth it. If it were working a soul-sucking job for 1 or 2 years to get enough to be autonomous for life, then it's probably worth it.
Yes, there is some preferred balance between the two for any one person. But for reference, 15 years to retirement means shaving 25 years of full-time work off the typical career. That seems...pretty appealing.
I am currently working for a company paying me ~185k cash + 1M in options over 4 years. My strike price isn't amazing but I have great autonomy. I like the people I work with and I have no problems. And I have been here for just about a year.
However a company recently lured me in and we had an onsite interview. Still had great chemistry with everyone and enjoyed the prospect of working there. They offered 550k in cash.
I accepted the offer but am still conflicted. My start date is some time away still. Hopefully I will be able to have the same autonomy and sense of fulfillment in this place as well.
It would be interesting if they performed the same survey, but using real values instead of a subjective, relative scale.
For example, instead of asking: how important salary is, ask how much money they'd like to make; instead of opportunity for professional advancement, ask what role they'd like to eventually have; instead work/life balance, ask about number of vacation days and % work from home, etc.
I'm willing to bet you'll see very different outcomes because senior-level people for whom "salary is not important" probably want like $200k/yr while mid-level people who say it is important might only want $90k.
Engineers Want To Learn, Even If They’re Very Senior
But /what/ do they want to learn? Something about this bit is rubbing me the wrong way:
> "In 2002, a very good COBOL or Fortran engineer was probably in a good place as far as their job search was concerned, but today they're unlikely to get much attention from companies that have moved on to more modern languages. Had that engineer focused on growth to keep up with changes in the industry, they might have learned Python or JavaScript and been able to keep up with the market."
Is .. reinventing the wheel, or learning the same thing in a new language, really the same as "growth"?
Is it even "learning" in any way more than "memorization"?
Since when is "keeping up with the Joneses" the same as "(personal) growth"? Had that engineer focused on growth and learning, perhaps they'd now be a High Performance Computing specialist in Fortran, or a business analyst with an MBA overseeing a COBOL team's migration, or a founder of a COBOL codebase analysis tool company, or a bi-lingual contractor traveling to help foreign companies move away from COBOL, or .. anything, growing and changing instead of writing a database report in COBOL then in Java then C# then in JavaScript.
"opportunity for growth" is ambiguous. TripleByte should really be asking about more specific things like "skill development" or "opportunities for promotion". I expect that you'd see some pretty different patterns with those.
Anecdotal but "opportunity for professional growth" seems like the best answer to a recruiter trying to sell you. Flexible work arrangements on a high quality code base is what everyone I know wants to do....
I offer an alternative perspective. After a few years you become skilled to the point where you are not learning on the job. Also you start to dive into tech that is outside your job.
At this point the job is not there for growth. Its not needed for growth. Like a chef, you are there to make good dishes known by the patrons. Not change the menu every week.
Well seasoned engineers want stability and professionalism. They want consistent processes that cteate stable systems. Learning new tech for learnings sake is not growth. Its a headache.
I have seen employers grossly misunderstand "professional growth" to mean paying for tons of random seminars telling you the basics of being a professional like taking care of your appearance, carrying yourself, setting goals, etc. I don't think they understood that growth == promotions and income advancement.
I would have much rather taken home an extra $5k, or get a promotion two months earlier, than waste time sitting through self help seminars
In my opinion this line of thinking may be good for the employee but bad for the company and its users. I bet a large chunk of the “Google Graveyard” is comprised of projects designed to get a few people a promotion or keep them around. And we’re worse off for it.
My takeaway is that companies need to start focusing on matching jobs to skill level instead of always competing for the best
I have seen the opposite issue too, which is where if someone has sat in a chair in the company for X number of years and isn't terrible at their job, they are almost guaranteed advancement. And usually this is a bad recipe for stagnation and you end up with bad middle management (the Loser-Clueleess-Sociopath hierarchy comes to mind). Whereas if you force people to execute a project decently, at least you have the opportunity of those paying off even if most don't; for every 10 failures maybe you get a Google Maps or Google Docs.
407 comments
[ 4.7 ms ] story [ 289 ms ] threadI won't work on an ancient Java codebase that has no tests or no deployment pipeline, because doing that is death. Gotta keep moving forward or find yourself sliding backwards. I would say your analysis is spot on and I could have written the same article myself.
Companies should realize doing things that seem "fluffy" and not entirely necessary, like moving to a newer tech stack, might be worth it as it will make it easier to attract new talent. And if they stay behind, they might encounter the famous "dead sea effect" and wonder why things break, and every new feature takes forever -- the best technically minded people have left for greener pastures.
However, I'd say that considering people who are great at interviewing are great engineers is flawed. There's a correlation, but it's probably a weak one. To get great at interviews, you have to practice interviews a lot. It's a separate skill orthogonal to software. Basically, you're selecting the most motivated to succeed -- but motivation to succeed doesn't necessarily translate into the best technical ability. It makes sense that they care most about salary, impressive surroundings and fast pace, as they're probably the most careerist SEs out there.
> devoting (say) $1,000 or even $5,000 to classes or other forms of professional growth is not particularly expensive, but it can have a disproportionate effect on recruiting.
I don't need classes. When I say I want professional growth, it means I want to play with new technologies and gain experience with them at work. So if you're willing to hire me to work on a new hot thing, I'll be more likely to take it.
But please, please do away with the conceit that great interviewers are great employees unless you have data that suggests otherwise. Reading this, I'm under the impression you only look at candidates and don't have any metrics to understand their actual work performance.
Why are we as professionals (myself included, I'm not immune) so obsessed with shiny new things?
Updating a product's tech stack just to attract new talent and not because the product needs it is objectively strange. Imagine if roads were torn down and rebuilt just because civil engineers wanted to try out some new road laying thingy.
Funny how it has everything to do with style, and far less to do with engineering.
For instance, having cycles and memory to spare made using fun languages such as Python and Ruby practical.
Advances in hardware let (and force) us (to) write applications of far greater complexity. Writing a mobile game is way more involved than a payroll application on big iron.
I can already do that, regardless of my job, and I won't owe my employer anything for it. If I can explore and experiment while working, the work feels less like work.
Most recruiters don't realize how easy it is to change gears like that.
I wouldn't be interested in taking outside classes, either. I can already do that for free online.
A: Yes.
Q: Cool. Coolcoolcool. Now... can you do that without violating a bunch of arbitrary constraints?
A: ...As long as they don't restrict Turing-completeness.
Q: I didn't hear a "yes" there.
A: Yes.
Q: So how much experience do you have with our specific set of arbitrary constraints?
A: Uhhh... I never worked here before, so none?
Q: Oof. Well, thanks for coming in. We'll be in touch. Or not. Sometimes we just ghost people. Not to be dicks or anything, it's just that they're no longer worth acknowledging their existence to us.
I think when they get to this stage they outsource to small dev mills. I don't know about Houston, but here in Toronto there are plenty of those who do "enterprise" work that consists of writing something once and walking away leaving any leftover internal developers to manage it. I've worked in ecosystems where that kind of stuff will stick around for 10+ years, broken and bandaged with no documentation. Sometimes even more.
Many companies that operate that way don't want to pay for a development team. They just want it working. Hell, sometimes they can't justify the headcount of having a few developers on board but can easily get away with dropping $250 - 500k a year to outsource the work.
omg, yes. "we offer online courses" or "go to such-n-such conference budget" are _not_ professional growth to me. I want, like you, to play with new technologies and get experience working with them.
I'd love to see questions like this phrased to account for this: "Opportunity for professional growth, to grow my future earning potential." "Opportunity for professional growth, because I enjoy learning new things." "Opportunity for professional growth, to reach a role I cannot fill with my current skills."
I know the article tried to address this with the responses, but that's sort of the default answer you give in this field. No one really says, or enjoys hearing, "I want to learn more so I can make more money".
And it's one of the unfair things in life that jobs that pay more often get other benefits as well. Making $40k/year? Chances are you get 2 weeks vacation, inflexible work hours, inferior equipment. Making $200K/year? I'll be you also have top of the line equipment, no one keeping close tabs on your hours, 4 weeks or more vacation, money to go to conferences, etc.
A mentor of mine once told me that I should seek to make more money, even if that's not my motivation. He said that more money is always nice to have, but also that when someone pays you more, they respect you more, so you get all the benefits that come along with that.
The counter-example to that could be that once you're senior enough, you are never 100% on vacation. If enough goes wrong, you will get called back to work.
True, but if you're good at your job, then this should be a very rare occurrence! It's still well worth the trade-off.
I've yet to be called with this strategy.
https://the-sky-traveler.tumblr.com/post/152838744627/my-bro...
> my brother is teaching his cat how to high five by giving her a treat every time she successfully taps her hand to his hand, which is all well and good, but now she thinks that she is entitled to food every time she high fives someone. i can’t eat in the same room as her anymore because she’ll just bap my hand rapid fire and then go nyoom straight in for my pizza like no Kelly that’s illegal go finish ur own dinner
I should have worded myself more clearly...
I don't think the average <employer/line manager/assistant actually making the phone call> cares about it nearly as much as one might think they would:
Boss: "we need to reach $person urgently, get them on the line for me..." <walks back into office>
Assistant: "Sir, yes, sir"* <looks up numbers, calls $person's wife>
* or local equivalent
I do agree about unplugging, but I've never had a vacation ruined by having a work-related text or call steal my attention for 5 minutes. If me being reachable (not necessarily _available_) puts my employer at ease then it makes it easier for me to take the vacations I want to take because they're more likely to be flexible with my schedule during busy times.
To give an extreme example, the President (of the US) is never truly unplugged. In the cases where the president is truly unplugged, SoP is for that person to temporarily stop being the President.
The second set of people can try but when shit hits the fan they will have to explain what happened and why it couldn’t be prevented.
In your case why would you push for a higher role knowing the tradeoffs?
To get to that level you will need to go through levels where you can’t do that without jeopardising further promotions.
There being once a week release that needs senior involvement each time it happens so it surely hits also vacation? Badly organized.
The simplest response for both is to delegate: "<person y> now has temporary or permanent authority in the decisions <person x> used to have". That means you need to have a person y for each person x and there needs to be enough trust that person y will make decisions that x would approve of (even if sometimes different). If you're a single-person startup, there is no person y, but then these questions aren't really relevant. As the Pinboard FAQ says, the answer to what happens is the bus will be fine.
The regulatory demands in financial technology, and especially in those industries where both the regulators as well as majority of the players may not be technically literate, are effectively the anti-thesis of robust and reliable engineering. When the industry regulations demand that for every potentially disruptive action (recovering from an outage is very much potentially disruptive) there has to be a named individual - not even a role, but an individual - to sign off on every single release step... This is why an outage can last for hours. An engineer, or even a lead, is with high probability not allowed to sign off on an out-of-hours deployment. The fix might take 20 minutes to identify, 5 minutes to implement, 15 minutes to test, and 10 minutes to roll out. But until the organisation can get the named [supposedly responsible] person online, the fix must wait, unreleased.
And the irony? The wider dysfunction may be imposed by the regulations, but it has been requested by the industry at large. It is the result of the industry players, majority of whom are incapable (read: technologically illiterate) of interpreting prescriptive regulations. So instead of figuring out how to meet expectations and adapt their processes, they have been lobbying for the regulators to come up with highly descriptive playbooks and step-by-step instructions. These sequences then specify rules and requirements that allow technologically incompetent players to comply, even if they do not understand why they are doing the things.
And then these regulatory playbooks become the One True Way[tm], effectively forcing dysfunctional practices, but also actively preventing any process improvements.
It's cargo-culting taken to the extreme: "do this and you will not be found to be non-compliant, even if the quality is utter shite". The worst part of this all is that the descriptive regulations make every effort to strip engineers of their agency or decision power. Every "modern" best practice is explicitly ruled as non-compliant and hence effectively illegal. I use scare quotes around modern to highlight that these practices are by no means modern and have been known since ancient times. There are research papers from 1950's that explicitly endorse [rapid] iterative bottom-up approach as the only sensible way forward.
The finance industry regulations explicitly reject them because these studies assume that engineers can be trusted to know what they are doing.
So... to anyone wondering why finance industry jobs are generally thought of as soul-sucking: that's why. They are subject to regulations, expressly designed to deprive individuals of their agency.
The desired result of the regulations is, first and foremost, accountability. This includes, but is not limited to, audit trails and provenance. But because the regulations have been written to specify exactly One True Way[tm] of reaching an adequate level of accountability, they end up causing nasty second-order effects.
As sibling comment by PeterStuer mentions, the unfortunate end result is inventive interpretation to avoid the worst of the disruptions. So from my point of view, the rules put in place to _enforce_ accountability have created perverse incentives to _reduce_ proper accountability.
That can not be a healthy situation either in short or long term.
Interested in this... any links?
The most valuable sources have been just 5 (yes, five) research papers / reports. Luckily they sport citations, but sadly I haven't poured over more than a fraction of them so far.
DOI: 10.1109/MC.2003.1204375 ; "Iterative and Incremental Development: A Brief History"
DOI: 10.1109/AGILE.2013.17 ; "Continuous Delivery? Easy! Just Change Everything (Well, Maybe It Is Not That Easy)"
DOI (with link): https://doi.org/10.1002/spip.344 ; "The agile professional culture: A source of agile quality" [the article itself is pretty light on useful material but it contains some of the strongest individual arguments I've seen, all in one package]
Direct PDF link: https://www.futureworksconsulting.com/perch/resources/pdfs/t... [the valuable material is on the first page]
DOI: 10.1.1.428.5843 ; "Evaluation of Quality AssuranceFactorsinAgile Methodologies"
---
There are plenty of other reports and papers on the topics, but they bring very little to the table on their own. These five have provided me with a decent starting point. The references to findings and reports from 1950's are in the first one, btw.
You're right I haven't been directly exposed to such regulations (our emergency releases also require sign-off from management but there are multiple people who can approve and different people for different stages) and I don't ever intend to be. Even for something much lighter. At my current job I refused a request from my boss/boss's boss to go through the process of obtaining a Public Trust Position which would be necessary if I needed to debug my team's product for one of our government customers. Fortunately I didn't have to quit over it, and I still got promoted later. Other people on other teams just went along with it. So I guess I'd amend my thinking (aided by your comments on lots of the regulation in finance being self-requested) that for people who get themselves into a position where it's "not possible" to go 100% on vacation, regardless of the level of dysfunction at the org, many of them generally don't mind it. If they did, they could switch jobs, and anyone concerned about accepting such a deal should weigh that instead of imagining that there's nothing to be done.
If fecal matter hits the rotating turbines often that you are never 100% on vacation, then you have fecal hitting around all the time. It is not like seniors would be on vacation 50% time of year.
> Often times, theres an issue with this or that feature in production
You should not have often issues with features in production. You should have them once in a while, rarely. The situation that seniors are always desperately needed to fix crisis during their vacation requires workplace that is having crisis pretty much all the time.
Capable management does not generate projects that are in crisis all the time.
A good way to measure this is look at how long it takes to do handover when someone leaves a project. If it is more than half an hour of showing someone where the repo is and a brief explanation then you have a problem that can be fixed with better processes. Ideally, someone should be able to pick up a project or a product very quickly as all the information they need should be in a simple, easily navigable format that they can consume and understand. I realise that is an ideal case but if you are senior enough to lead you can be senior enough to never make yourself a dependency and that callback never comes because it is never required. Ensuring management above you understands your value is another problem (anyone who can code themselves out of a job is worth keeping around and giving harder jobs to and good managers will understand that).
> CEO was near frothing at the mouth over my absence when shit hit the fan.
I'd be the one offended for having my vacation interrupted.
This has not been my experience either personally or by proxy to my more-senior colleagues. But it may be I have found myself in a particular niche which is non-representative.
I can't stress this enough. The more I charged as a consultant, the more my clients would shut up and heed my advice.
When I went out on my own a few years back, it was a rush to sign any client at an hourly rate not that much higher than my previous salary rate. Those first clients were rough.
As you’re saying, I’ve also seen first hand the more I charge the more people take my suggestions seriously, and overall the better the clients are for my business. Go figure.
Work long hours? Develop additional tool during your free time? Help clients more than your job requires? You are a sucker.
Manage to shout enough to get a raise? Now you are a champion.
Doesn't need to be in my experience, both the employee and employer can respect each other even when they don't get along well on personal level. However it is actually quite interesting that it is a relationship that can be weird and toxic, while still providing (economical) value for both parties.
And yes, the strength of free market and capitalism is to transform greed and all the behaviors that come with it into a fuel that helps the economy for everyone. It does not transform these into virtues though...
https://www.ribbonfarm.com/2009/10/07/the-gervais-principle-...
"A Sociopath with an idea recruits just enough Losers to kick off the cycle. As it grows it requires a Clueless layer to turn it into a controlled reaction rather than a runaway explosion. Eventually, as value hits diminishing returns, both the Sociopaths and Losers make their exits, and the Clueless start to dominate. Finally, the hollow brittle shell collapses on itself and anything of value is recycled by the sociopaths according to meta-firm logic."
This realization has stopped me from trying to hire people. I don't think I have the shoulders to be the chief sociopath.
I've made 60k/yr at jobs where I've had awesome equipment and flexible hours.
People respect you more if you get things done and solve problems. Not because you have a big salary. How often do you think people respect management?
Just geography alone determines salary. I could make double if I simply moved to San Francisco for the same job. Doesn't mean I'm "more respected".
That's not what the person you replied to is saying. The above person is saying that companies which pay well also tend to respect their employees more, so seek out a higher salary because those companies also tend to offer better benefits/culture.
Some would say that Google, in all its free lunch glory, doesn't respect its employees that well consider they've had employees go on strike due to their policies.
The protests were mostly against sexual abusers/harassers and the arbitration policies. Are you implying that most other tech companies haven't had any executive-level sexual harassers? That most other tech companies don't have forced-arbitration policies?
How many other companies openly allow their employees to organize protests through company emails and forums? Not many. The open culture is what allows people to protest.
Disclaimer: I work at Google.
Most I got for mine (leading an actual strike) was a written reprimand -probably forced by the hr manger of a certain BT division (not the one I worked in)
Did mange to change company policy and get several k people a better pension later on.
Not saying that isn't a good strategy for some people (and I probably would have enjoyed that pace when I was younger), but it's not really what I think of when I think about respect and good culture.
I'd be very interested to know if this has changed.
It's kind of sad that in the US and Canada, 4 weeks vacation is special, and 2 weeks vacation is legal.
No one keeps tabs on your hours, but you better get stuff done!
Technical jobs that are well payed and well respected are found more often in companies that produce a product or service that is sold rather than in companies that sell your time, whether directly or under the guise of 'projects'. If your time-sheet impacts the bill to the customer, you are the product being sold. The reason to avoid the latter is that all benefits to you, either salary or equipment/working conditions, are seen as expenses that impact the margin on the rate, while in a product company they are far more likely to written of as investments into the IP producing engine.
I was curious what made you pick your cities, though. Data availability? Boulder and not Boston surprised me.
Or full-time remote.
For me now the baseline is remote + good work life balance and vacation package.
If we can throw exciting tech, more money, etc on top of that, great.
I'm hoping to polish my skills and eventually find something 100% remote even if its less thank $100k. I want to buy a lake front house, and get on a jetski/boat during my lunch break.
Hang in there, you'll find your spot. My advice would be to make friends with a few recruiters for the big headhunting firms. With a little patience for terrible signal to noise ratio they should help you break the $100k mark for remote work. Sometimes you gotta shop around for the right recruiters. The first person you talk to is probably not the person with the right contacts.
[1] The socialization might suffer a bit, but you are able to fix that as you wish instead of having only one option (which is office).
I save a BUNCH of money, I get to work with other remote employees across the world, I mostly work my own hours, and I even got a decent bump switching to this job.
The pay is better than a lot of positions that are local to me in SoCal.
I do miss some social interactions during the day, but slack and getting lunch with friends and previous co-workers fills that gap decent enough.
I see job postings come across all the time in my filters for stack overflow jobs, but the pay and benefits are equivalent to my current situation, except I would have to move to a higher CoL and go into an office.
FWIW, and I say this acutely aware that I'm of the "don't give them what you don't owe them" tribe, additional responsibilities for the same pay are how I got the broad skillset that got me to the point where I'm a principal developer with a hand in every part of our project--which is, in addition to no-complaints compensated, genuinely a lot of fun. I took on those responsibilities as an investment in myself; admittedly the key was finding high-value, high-leverage responsibilities, but it was for me more than for my current employer.
Few enough people are going to pay you to learn something on their dime if you don't already show a ton of promise. Broadening your skillset is, IMO, how you get to the next job.
A company that grows 20% like google offers high cash low stock. But a company that grows 100% every year can make you a millionaire in a couple of years.
Its true startups lotteries are not great for employees in general, but who would have bet that UBER wouldn't IPO in 2014? or some other companies like Airbnb, etc.
You can also get a much higher position at a well paid job if one of the bets pays off, or if you find growth opportunities. While getting a promotion at google might take you 4 years, in a high growth startup you might jump 2 steps in 6 months.
If you compare someone who joined Uber in 2014 with someone who joined Facebook or Google in 2014, I'm honestly not sure who would have come out ahead. Probably Uber, but not by a whole lot.
And Uber is the best case scenario, practically speaking.
But you can invest 2+ years and get nothing.
If you can repeat the process several times, each time picking better bets, then you stand a good chance to win big. Maybe 50/50 chance of hitting a million dollar win over 12 years and 5 contracts. Assuming you leave some sinking ships and some consecutive years really pulling hard at promising companies.
But you should probably also be investing in property and a 401K.
None of it is guaranteed, but if you’re patient and reactive and work hard and treat people like you want to build lifelong relationships, it sorta IS guaranteed you’ll be in a good place after 20 years.
The only guaranteed way to be a millionaire is to work for big companies, relentlessly push up the ladder, invest 15-25% religiously and never touch it. That WILL make you a millionaire in 20 years, but you won’t be able to think about much other than your next promotion and your budget.
The thing that's interesting though, is on the consulting side, as my rates and overall project cost have increased, the time investment to close a sale has also gone up. Meanwhile, if you go for a more expensive & specialized skillset, there's also a time investment on the marketing & outreach front.
Basically, in my experience, there's a small handful of people who've managed to carve out a niche where they can work low hours and make a high hourly rate, but they're few and far between, and investing in passive income streams is really the way to go.
That said, I _really hate_ managing rental properties instead of slinging code, but in terms of dollar per hour there's no comparison.
They seem to be the loud minority on here though. I guess if you get a sweet gig like that, you will find lots of time to post on HN. I know I'd brag about it too if I was in that situation.
So this forced me to settle for a number at which I'm happy with my income and I can have a clear goal for that year - once that is achieved other things come in to play.
This seems basic and maybe it's just me but I never really had an idea of what I wanted to make, what is "enough" - I would just say yes to any opportunity that came my way which paid more and kept plowing forward - but there is a limit to how much you can do and it's hard to guess it before you reach it so I ended up pulling all nighters and working through weekends more than once. Now that I have my limit it's actually pretty easy to reach with ~210 regular work days according to my current rates for a really easygoing client - this leaves me with plenty of time for other stuff - if I find a better paying client I just work less for that year - I like this model.
Maybe I should describe it better - it is a special tax model - you pay a flat fee if you make less than X and that flat fee turns out to be ~5%. When you cross this threshold you no longer qualify for this model at all - you have to convert to standard taxation - I would need to increase my revenue by 20% just to break even and the extra hassle of doing that would mean that I need to increase it by 30% (at least) to be wroth it.
So in my situation it just turned out to be a good limit where if I negotiate 10% more I just convert that money = free time for other stuff. I don't plan to stay below this limit forever (in fact next year I plan to go over) but the concept of having a target income goal and then letting the rest of your time go to personal life is really good for work life balance IMO.
The part of spending you can't control and which happens to be the largest expense is medical care, which is not a problem right now due to Medicare, but it's already stressing the system and we have quite a ways to go before the aging population maxes out. Retirement ages are already going up and up, and I can definitely foresee rationing of medical care as we push the system to its limits.
Unless you had like, a lot of money.
Even with those gaps, I'm having zero problem finding well-paying jobs. I think it's because, despite those gaps, I represent good value to the employer - I know the latest tech, have done good work in the past, can present coherent and mature opinions during the interview etc. Also, I only do long-term contracts where they explicitly don't care that I'm a job-hopping mercenary that is not ever going to believe the "company mission", because the assumption is that the whole arrangement is temporary anyway. In practice, they always want to retain me and I end up quitting out of boredom after a year of two.
To summarize, the gaps are probably important only when you're in close competition with lots of folks similar to you. But, if you're a bit of an expert in a specific niche (mine is Big Data - Hadoop and related crap, applied in enterprise IT context) and there aren't that many competent candidates around, the gaps suddenly don't matter.
You aren’t jobless; you are successful. Even as a bluff, with a now-empty bank account.
Maybe upbringing / background plays a significant factor here? I watched both of my parents very unceremoniously lose their job-for-life jobs and nearly everything along with it.
My primary motivation, then, to stay abreast of the industry, to pursue new skills/technologies/challenges, things that I would put under the label of "opportunities for professional growth," has (not entirely, but for the most part) little to do with the amount that I'm paid (considering that I perceive myself to be paid well) and everything to do with maintaining a recurring paycheck until I'm retirement age.
This sort of person is under-represented here on HN for obvious reasons but they represent the majority of people developing software. The opportunity to contribute more than just lines of code should be offered and encouraged, but don't be surprised at how few will be interested.
Plus, I'd be fooling myself if I were not like this. I've seen people put their passion into a job, argue their case, and then they get made redundant. Don't be fooled.
P.s. I'm a very good, reliable bricklayer who makes very solid walls.
I honestly don't yet know how to fit everyone together.
Bricklayers should be managed and never put into more senior role. Also, you should never build a mixed team with bricklayers and "other" developers (except for case where there is only one "other" developer and they are the team lead).
I learned a long ago:
1) I can offer the best ideas that go beyond lines of code, but it usually comes down to the decision of someone in a higher position than me (manager, sales, the CEO, etc) and if they just don't feel like utilizing your ideas, they won't. Fighting this is more trouble than it's worth.
2) Most companies, unless you are in a startup where you wear many hats, don't want you offering your ideas. They have the ideas and want the developer to make them into a reality.
3) Most of the time, a project manager is the person that thinks about the bigger picture. I don't really want to have the responsibility of both roles..without the salary increase that comes along with it.
I love thinking about the bigger picture, which is why I have my own company I'm building on the side. But I would much rather just get my job done as a developer for my day job.
If you combine your idea pitch with a working prototype (doesn't need to be polished), it's odds of getting adopted will be far more likely.
If your idea isn't one that can be prototyped, e.g. "Ask Microsoft for a billion dollars", then you may as well just pitch it, just like anyone else.
If the company is not interested on listening to new ideas, and you're keen on participating in something you would like to help build, then perhaps this is not the right company for you.
Just please be aware that after you've delivered, you loose power for negotiation. Therefore I would probably rethink the timeline choosen for agreeing on a reward "then I can say how much I want to be compensated for..".
But only if you think it will demonstrate enough value to get you something you desire: cool work, a promotion, etc.
This requires a good understanding of what your managers and the larger organization will value, and whether they reward people who show they can deliver on those items. People's careers _do_ get bumped from these kinds of efforts, but I've seen a lot of engineers spend 40 hours prototyping something that management just won't value.
I have a family and only have so much free time. Even if I didn't, why would I spend my free time building anything for a company and not get compensated for it?
Even if you go through all of this, there is no guarantee you will get the responsibility and pay increase.
I honestly don't really care about any of my ideas winning out. I'm perfectly content getting told what needs to be completed and coming up with a good solution.
Maybe I'm the exception here, but this does not really describe most devs I've worked with. I've seen really smart devs just not care to argue anymore in workplaces where no one listens to them, but this is not the same thing as wanting to be a "bricklayer". Most devs usually have a lot of work on their plate and not enough time or energy to argue with some product owner or manager who is determined to get their way and who does have the time and authority to force their ideas through. On multiple occasions I've seen great teams destroyed when some determined micromanager gets promoted and decides they are going to "fix everything" without actually listening to their people with the most hands on experience. This and many other forms of organizational BS can lead to developer apathy from what I've seen, but I really don't think the dev who just wants to be a bricklayer is the norm.
I get that getting good developers and facilitating good code requires incentives, but this is usually at odds with the perspective of business owners, which is that employees are both a liability and an asset. Lousy developers are (seemingly) low-liability and good assets because they can make it work for cheap and, if something goes wrong in the future because of all the spaghetti code, that's when you can hire the good developers to come clean up the mess.
Clean code is most valuable in the fact that you can add new features without old ones breaking
You should be able to write clean code from the start without it ever being classified as spaghetti as long as you stick to principles like Law of Demeter, SOLID, etc
Only when the product gets used in a non-typical way or in non-typical circumstances, do the (inevitable) bugs appear. They didn't think their design choices through or they didn't know the limitations of the tool used.
So bugs are considered a known risk, and are managed. Hardware, for example, is swapped under guarantee. The most ugly bugs are fixed, and others are too costly and wait until a redesign.
But the employer likes their qualities: - he gets a mostly rapid schedule, - he gets an employee that doesn't get lost in abstractions, and - he gets to charge the customer again for the next major iteration
Basically they get him an MVP, and the customer keeps paying for each design iteration. We all know how important that is to the bottom line. To him Quality is optional, like benefits are to a job: they end up being important, but the salary usually comes first.
That's what they want... until their needs change.
I did a contract at a company where I was the test automation guy. The dev team didn't want to right tests, and they were happy to convert requirements thrown over wall A into the code the threw over wall B. The QA team caught the wall B code, and threw their results over wall D. Things took forever, but everyone was happy... until pressure to ship faster started to come down from the top.
To speed things up, they hired me to automate all the things. Well, the dev team weren't interested in helping me learn anything, and the dev manager even told me to my face that he wouldn't ass test coverage unless management asked him to & gave him extra time to make that happen. The QA team weren't coders, and they didn't really have any incentive to help me make things go faster. The build & release guy wasn't interested in getting tests integrated into the Rube Goldberg of a process that he managed.
They were all great bricklayers who told themselves they were agile because they had 1 week sprints, daily stand ups, and a all sorts of other processes. But when taking forever was no longer good enough, instead of trying to grow with it, they resisted & fought it. My role was pretty miserable, and I quit after a few months. On my way out the door, I learned that I was like the 5th person to walk, and they were planning on seeking interchangeable bricklayer #6.
In my experience, companies want interchangeable bricklayers, but they usually don't usually like the results of what they asked for.
We're not allowed to say it work because someone thought it was a race thing but... 'pay peanuts, get monkeys'
I'd say the weak link across the board is the notion of corporacy and what it means, as well as what professional work ought to look like
fresh-faced devs straight out of university or college believe it's similar to their academic life, you get an assignment, you turn it in, you get graded cue morpheus meme: what if I told you professional life is nothing like university life?
similarly, we can't discount the international landscape of contractors and jumped-up leadership types we have to deal with, once again everyone has different ideas about what work looks like and it ranges from factory work to academic research to everything in between
A while back a bunch of consummate craftsmen worth very little in practice ruined the party for everyone with their pedantry in terms of technical concerns and set off a series of chain reactions that has quite disempowered all technology professionals
unless you're willing to revisit all your assumptions from the ground up, you'll be having this conversation again and again until you're an old coder in diapers tethered to a laptop on a walker
And yet, whilst it's fun to be able to answer questions on the spot, regarding my area of expertise, I'm looking forward to learning more.
Now, I learnt a lot on this job, and it's very challenging on a daily basis, but it's becoming repetitive, and having talk to management, they could not tell me how they see me/my position evolving in the next 6 months/1 year/2 years. And that makes me longing for another job...
Your boss has revealed they have no opinions on your growth options. Do you have any ideas of your own? Offer them up.
I'll think about what you said, make a list and bring it to the table next time.
appname_april_3_2014
appname_april_4_2014
appname_april_4_2014_new_order_schema
At work though, I find my thirst for learning new technical things has disappeared as I've gone older. What has grown instead is the thirst for learning new things in or related to my industry (domain knowledge). Like the problems my customers are facing, or where the industry is headed, or why they have been doing things a certain way.
We do sometimes place stories that we or a small number of story reviewers think the community might like. That program is described at https://news.ycombinator.com/item?id=11662380 and the links back from there. Such stories get lobbed by software randomly onto the bottom half of the front page, whence they fall off in a few minutes unless people upvote them. The purpose is to make HN more interesting (because https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...). Many good submissions fall through the cracks and this is a way to give some a second crack.
Anyone who knows of a story that deserves a second chance like this should email us at hn@ycombinator.com and we'll consider throwing it in that pool. It's ok to ask this for one of your own stories, but it's better if you just ran across something and think it's cool.
By the way, you can see a partial list of these at https://news.ycombinator.com/invited. Those are the ones that were too old to be lobbed directly when we saw them, so we emailed the submitter and invited them to repost it instead. It's on my list to publish a more comprehensive set of lobbed stories.
There are two other types of placed submission that HN does as a way to give back to YC for funding this place: job ads (https://news.ycombinator.com/jobs) and Launch HNs for startups (https://news.ycombinator.com/launches).
https://news.ycombinator.com/newsfaq.html
> "In short, software engineers of all stripes want, more than anything else, to develop their abilities as engineers"
This is true, but it's also the first-order answer. The follow-up question to ask is why they want to develop their engineering ability. It may be to make a higher salary down the road (i.e. current salary is less important than future earning potential), to develop the skill set to found their own company, to gain prestige by moving up in an organization and managing other engineers.
Overall, really interesting post - definitely worth diving into the data further.
Ofcourse professional growth is the winner as more often than not is directly proportional to one`s salary.
As a s/w engg. "professional growth" is a hybrid of bunch of things - learning new tech, Cloud knowledge(k8s, docker etc.), and well summarized in the lines below by the author:
> In short, software engineers of all stripes want, more than anything else, to develop their abilities as engineers. They want it more than pay, more than work/life balance, and more than autonomy.
I want to repeat myself and restate that most recruiting platforms work on a transaction processing fee on a per placement basis. It's erroneous to try and draw the wrong kind of conclusions from data points gathered from enabling this transaction, especially when it's just 1. When a candidate receives multiple offers that they're interested in, it's very likely that they'll make a holistic judgment based on a combination of factors, and their gut. Is the company "good" or "sketchy?" Do they feel chemistry with the people they'll be working with? Are they stimulated by the work the team will be doing over the next year? The truth is, for most talented engineers at early stage companies, any company that makes a desirable product and has substantial growth left in building and scaling its product will allow for growth in literal terms. The limiting factors there will likely be the team, if anything. If there's juice left to be squeezed from building further product edge, and the team is good, the org is good, and the leadership is good, it's very likely that an engineer will receive more than one opportunity that is "good enough" -- good enough for them to exercise the upper limits on how far they can grow.
It's easy to pay lip service to offering growth, but it's hard to actually do. In many cases, companies shouldn't be trying to offer that with a straight face. In growth stage startups, growth as an engineer is bound to the combination of the growth of the company and the growth of the product. In most cases, if you want to hire any kinds of the best employees, you need to offer growth. But, your business model, company growth and stage of company and culture all have to offer that. That's the hard part. It's something that needs to come from the executive level as well as good timing and a ton of foundational work.
If you can offer growth, that's great. It will make it easy to hire the best. But, most companies are not in the position, and the ones that are certainly don't need this advice. So, this isn't really useful. Offering growth is not something you can turn on and off. You need to build a great company and build a great product that people want and which a great business can or is built around. If you can do that, expanding the engineering team becomes a matter of logistics instead of intractables.
I think TripleByte is a great idea, and it's at an interesting point right now. But to use your data to answer this question requires looking at thi...
1) Pay me 2) Autonomy
Where are you living and what will you eat?
However a company recently lured me in and we had an onsite interview. Still had great chemistry with everyone and enjoyed the prospect of working there. They offered 550k in cash.
I accepted the offer but am still conflicted. My start date is some time away still. Hopefully I will be able to have the same autonomy and sense of fulfillment in this place as well.
I'm all for growth myself, but I've always found that people who have some confidence in what they're doing also want autonomy.
For example, instead of asking: how important salary is, ask how much money they'd like to make; instead of opportunity for professional advancement, ask what role they'd like to eventually have; instead work/life balance, ask about number of vacation days and % work from home, etc.
I'm willing to bet you'll see very different outcomes because senior-level people for whom "salary is not important" probably want like $200k/yr while mid-level people who say it is important might only want $90k.
But /what/ do they want to learn? Something about this bit is rubbing me the wrong way:
> "In 2002, a very good COBOL or Fortran engineer was probably in a good place as far as their job search was concerned, but today they're unlikely to get much attention from companies that have moved on to more modern languages. Had that engineer focused on growth to keep up with changes in the industry, they might have learned Python or JavaScript and been able to keep up with the market."
Is .. reinventing the wheel, or learning the same thing in a new language, really the same as "growth"?
Is it even "learning" in any way more than "memorization"?
Since when is "keeping up with the Joneses" the same as "(personal) growth"? Had that engineer focused on growth and learning, perhaps they'd now be a High Performance Computing specialist in Fortran, or a business analyst with an MBA overseeing a COBOL team's migration, or a founder of a COBOL codebase analysis tool company, or a bi-lingual contractor traveling to help foreign companies move away from COBOL, or .. anything, growing and changing instead of writing a database report in COBOL then in Java then C# then in JavaScript.
At this point the job is not there for growth. Its not needed for growth. Like a chef, you are there to make good dishes known by the patrons. Not change the menu every week.
Well seasoned engineers want stability and professionalism. They want consistent processes that cteate stable systems. Learning new tech for learnings sake is not growth. Its a headache.
I would have much rather taken home an extra $5k, or get a promotion two months earlier, than waste time sitting through self help seminars
My takeaway is that companies need to start focusing on matching jobs to skill level instead of always competing for the best
You are probably not the best company so stop trying to hire the best programmers.
It’s like the fat, ugly, jobless guy that only dates accomplished super models.
Therefore, since the benefits of fostering employee growth can't be easily quantified, most managers choose to believe they don't exist.
Same goes for things like flexible work schedules, work-from-home days and generous vacation policies.