Want to hire the best programmers? Offer growth
triplebyte.com
triplebyte.com
It seems pretty apparent to me that most employees (and that includes all genders, races, etc.) don't care nearly as much about inclusiveness as their leadership seems to. After reading this post, it seems to confirm what I've suspected all long: people mostly want money and the potential to make more money in the future.
But (I think?) I've seen people here genuinely recommend them, and I also don't think YC would work with and promote a company they didn't like or trust. Companies' marketing and sales teams can sometimes have a very different vibe and sense of ethics compared to the rest of the company.
I went through their process and got lots of practice interviewing. Even though I didn't take any of the offers I got through them I was able to use one to negotiate a much higher salary at the job I did take. Their recruiters and interviewers treated me respectfully and professionally.
So I'd recommend it, especially if you're very good and/or smart but not an attractive candidate by conventional standards. If you have 5 years at Microsoft or something then you probably don't need them, since you can interview wherever you want at that point.
But still a blip overall, that can be ignored.
Inclusive workplace has an absolute difference of 10% but has a relative difference of 171%.
Salary has an absolute difference of 15% but has a relative difference of 43%.
Presumably the relative difference for flat organization (0% and 2%) would be larger.
"Inclusivity" doesn't mean anything by itself, it's a synonym for diversity, and these terms themselves essentially mean bias in favour of women. Large majorities of both men and women want to be measured on merit, not many want to feel like they got a job or promotion because of their gender. So no surprise it's not popular and indeed, never has been. The trend towards it is because a small minority care about it more than anything else and go on the attack if they don't get it. The silent majority doesn't care.
The problem with top rank only is that the top spot is basically a dice roll between various things which are important for people. A "top 3" (or another number significantly smaller than all categories asked, but more than 1) is usually far more interesting and less driven by chance. That doesn't invalidate what you wrote - maybe it is unimportant for most people, but there's not enough data here to tell.
I’m not sure what argument you are making.
Sure, money is important to most people at some level. But for many, it's important relative to other things in that it can't be dramatically lower at one opportunity vs. another. A bit lower? That's maybe OK if other factors balance it out.
Adding to that, without too much risk or responsibilities.
After realizing that, it seems to confirm what I’ve suspected all along: people mostly want to money and the potential to make more money in the future.
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.
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.
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.
Accounting for the "perceived gallantry" of these motivators I'd call that a statistical wash, but the article title "Want to hire the best programmers? Pay them the highest salaries." doesn't support the "best engineers / best companies" narrative very well.
My company is a weirdly-effective consulting firm with a staff-augmentation business model. I chalk their success up to two factors. One, there's no middle management, only team leads reporting to a cadre of developer-owners. Second, they've been really good at landing the right kind of clients.
It's rather funny watching them try to figure out how to engage their workforce, but with a staff-aug model, devs feel more like employees of the client rather than of the consultant. So everyone's just kind of meh. It feels a little The Office-ish.
The other consequence is that there is practically zero real growth potential, and no incentive to do anything other than keep butts in chairs. Nobody's going to let me jump from the consultant to the client, the only path up is out.
I hope this business model dies. It feels distinctly evil.
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.
Woman in tech here. I agree completely, and I'd almost say that saying you want to grow your career in an inclusive environment is saying "I want to grow in a place that will actually value me and promote me." Been in so many places where talented women are just not promoted, and it can be so demoralizing.
Because if you are a CS grad with aspirations to be a developer, taking a QA job is about the worst thing you can do. Even if you work at a company where "every path is available" (which is not particularly common), much better idea to get an actual developer job where you'll be working on coding skills.
The outsourced / pigeonholed employee pattern you're speaking of is something that I recall learning about more in the early 2000s; so it's been around for a while but not widely known outside of the industry.
That's a question that I don't think has been explored.
Now, it's been a long time since I saw a traditional QA team. They definitely still exist, but now that there is a lot more automated testing, things have changed quite a bit. However, I would still caution beginning programmers to stay away from QA roles. It can be actively damaging to your career as a programmer, unfortunately.
What should you do first starting out? Get an entry level job as a programmer. If at all possible, go to school with a co-op or intern programme. Try out a couple of places in your first 2 years and in the last 2 try to get into a place where you might want to work. Then stay there for a couple of years after you graduate. This is by far the most effective strategy I've seen for getting into the industry.
Otherwise, try to make contacts in other ways. The first job is super important, so you need to find someone who will give you a chance. Whether you have a traditional education for a programmer or not, you need that first job. I would recommend moving to a large centre (not necessarily SV) and going to every meetup that you can manage. Make contacts. Work on a side project. Discuss your side project with people that you meet at meetups. Possibly go to a bootcamp to meet other people just starting out. Make friends and talk about programming as much as you can. Eventually, someone will give you a chance.
The most important thing: take that chance. Stay at that job for at least a year (better 18 to 24 months). Then I recommend that you find another job and leave (in that order!). For programmers, it is usually best at the beginning of your career to work in a few different places. After you have 8-10 years of experience (3-5 places), then you will have a really good basis for building your career. Again, a co-op type education can short circuit a lot of this because you can work at 2 or 3 different places while you are studying -- it is really valuable IMHO.
If you are really struggling and can't find that first position, it might be an indication that this is not the career for you. I've seen lots of people offer their services for free just to get the opportunity to "break in". Don't do that! Every person I've seen do that has been horribly misused and they have never turned it into a career (again, my experience: I'm sure that it has happened somewhere, but I submit that it is very uncommon). There are lots of jobs for programmers. This is not acting. You don't have to eat ramen for 20 years before you get your big break. If it's not happening, there is probably a reason (as difficult as it is for me to say). If you are absolutely determined to make a go of it, then the best thing to do is bet on yourself and write some code (whether as a hobby or as a business venture). If you manage to make a successful free software project or business venture you will be sure that someone will hire you later if you wish. However, this is a humbling activity -- your odds of success are extremely low. At least you are doing something for yourself, though.
I think my last piece of advice is one my father gave me when I was young. He said that he always wanted to be a scientist when he grew up and so he became a university professor. However, as he got older he realised that there were a whole bunch of jobs that he would have really enjoyed. It didn't really matter which one of them he picked. He enjoyed his career, but there he would have enjoyed many others as well. If programming is not working out, find another career. There are lots of them and they are all rewarding in their own right.
Another story: comp sci 4th year - systems course. She's assigned a team. Douche c++ whiz thinks he's the shit. constantly belittles her. comes up with some idea of "redundancy" as part of the project they are coding. His idea was to have a cache storing redundant data in case the database failed. She suggested that it wouldn't work in case of power failure. Told her to be quiet because she didn't know what she was talking about...
As a guy, I have never faced this and so had no idea women faced this sort of behaviour till she decided to enter the field. Yes she didn't even know how saving a file worked till she decided to go for her comp sci degree, and so yeah she is not very confident about just opening up an ide and start coding a la "create-react-app", nor she will win any hackathons, but her concepts are rock solid. Still she is constantly underestimated.
It's a tough world in software dev if you aren't the type to constantly overestimate your worth.
Well put. I was talking to a friend recently about the difference between mediocre and very successful engineers, and that quality came to mind as the biggest predictor of success. Don't think of yourself in terms of how effective you currently are, think of how effective you _could_ be. Assume that you can figure out pretty much anything given enough time. But don't be too cocky to ask for help.
Contrast that with mediocre candidates: ask them to solve something they've never done before, and they won't even try because they assume they're not good enough.
For what it's worth I've seen a female developer who had both no talent and also lied constantly be promoted, which surprised nobody, because the company was desperate to promote female developers. This sort of thing can cut both ways. Hopefully you're against that and just want a robust, gender-blind promotions process in general.
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.
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.
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.
Same as "want to pick the best stocks", "want to win the lottery", "want to marry the best person", "want to get the best price", ...
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.
It's unfair in the least, rude at the worst to pigeon-hole "senior" programmers into scenarios / pop quizzes.
Let them show off recent personal projects. They'll probably have no problem spending a weekend hacking on something they're passionate about.
Be a serious employer:
Convince the best programmers (whatever that means) why they should reorganize their life around your business:
- Pension plans / job security are nice. It's a good motivator to know that there will be an annuity when they're 60 / 65 and would rather spend time with their family.
- Union contract (or something comparable) or a labor system with robust employee rights and unemployment insurance. It's pretty unfair in the US with at-will employment.
- Have strong financials. Be a business that'll be around in 10 years. Can your business keep paying employees if it's in the red for a year?
If you don't offer the above: Why feel deserving of the best?
I'm being facetious on the above points: It's tech, it's a fast cycle and inherently unstable. But when orgs talk about hiring - it irks me to see the entitlement employers have when they have little investment in the welfare of employees as persons (and families)
> Let them show off recent personal projects. They'll probably have no problem spending a weekend hacking on something they're passionate about.
Nope. Not spending my weekend fooling around to impress some potential employer. I'm going to spend it with my kids, riding my bike, and enjoying life.
Okay, it is time for some harsh love. You won't like it, and I'll get downvotes, but whatever. It needs to be said.
My parents are both doctors, and they are in their 60s now. And you know what? They still work their asses off, on many evenings and weekends, trying to stay up-to-date with new developments in their respective fields. My dad just got back from an ophthalmology conference in Europe. My mom is a guest speaker at a pathology conference and she has been preparing furiously. And it has been like this _all my life_.
So yeah, I detest this sense of entitlement that programmers have, where they want to a) get paid a lot and b) have lots of free time on the side. How about this instead: if you want to have a high salary, then it is reasonable for people to expect you to make certain sacrifices, such as work on your own projects on the side experimenting with new technologies and ideas. Don't like it? Well, it may be time to pick another profession...
Personally I think this is why you see a ton of people who live and breath tech think in terms of low time, high impact.
High impact should equal high compensation.
The salaries in our industry have a precedent which was set by individuals that overburdened themselves. That might have been irrational, but if we want to change that, then we need to accept less pay. We can't have the same rewards as they did while doing less work, even if the amount of work they did was unreasonable.
The net revenue per software developer at any even moderately successful tech company is so eye-poppingly high that demanding a solid cut of it is still a bargain.
1. "Coding quizzes" are arbitrary and unfair in a technical interview!
2. Take home projects as part of the interview process are unfair because I've got a busy life!
3. No, I don't have lots of side projects to show because I've been working for the past 15 years and all the IP I've worked on is owned by my current/prior employers.
To add to your harshness, if all those three things above are true, (a) maybe you're not as good a developer as you think you are, and (b) as someone who has done a lot of hiring, I am certainly able to find folks who will (pretty enthusiastically, I'd add) fulfill at least one of those tasks (i.e. in-person coding questions, take home problem, or extensive existing personal projects/open source), even in today's competitive market.
1. Even the best designed and well thought-out coding quizzes are not guaranteed to be a good predictor of the candidate's abilities. And that's when we're talking about the best. A great deal of coding quizzes currently in use are things interviewers came up with because they had to come up with something. So I guess the real sentiment is: coding quizzes need to be crafted and used better.
2. If you use take-home projects in your interview process, you'll invariably be filtering out people who value their free time, regardless of their skills. Put yourself in your candidates' shoes. A typical hiring process is already quite involved. Your candidate has to set aside the time for a recruiter chat, phone screen, a meeting with some of your team, etc. And the vast majority of devs don't get any overtime pay. The bottom line is that free time is extremely valuable. If you're asking your candidates to spend a weekend coding a project for free, be prepared for a whole bunch of them to lose interest and go looking somewhere else.
3. Yes, it's quite reasonable that a candidate with 15+ years of experience doesn't have any side projects to show. I've lost count of things I've played and fiddled with, and then abandoned, because they're simply not good enough to publish. Not to mention that your responsibility for your code doesn't end when you publish it. You're expected to maintain it, keep it documented, bug free, etc. A candidate might not have anything to show because they're "not good enough", but they also might be a mature and responsible dev.
I don't doubt that you've done a lot of hiring and that you're able to find candidates to suit your requirements, but don't fool yourself into thinking that there isn't a whole bunch of bias baked into your process. The fact that this bias isn't hurting you right now should make you question whether today's market really is as competitive as you think.
I'm guessing no.
* Keeping skills up to date and occasionally spending a bit of my own time on it. And I mean legit new and interesting things, not just some BS rehashing of an old idea or other churn.
* An emergency situation at work where some extra time and dedication are required. I'm not going to tell the company that I couldn't be bothered to fix the web site that's down because it's 1715 and I'm heading home.
* Professional conferences or learning that might take up some extra time outside of work.
* Doing some random BS over the weekend.
Programming could not be more different. Not only is our field as unregulated as fields can go, but the hiring pool is also full of self-taught developers. Therefore, yes, it is in fact reasonable to have people go to great lengths to prove their skills to potential employers.
I don't agree with all of your post (but do some of it). However at the pace companies are expanding their hiring net, the supply and demand ratios are going to flip sooner or later. The current seller's market isn't going to last and a lot of folks will have a serious reality check.
However as the sources for software developer expand (and the barrier for entry goes down, along with more people going into the field), the availability is drastically going to outpace it.
We had a very short period of time where even entry level engineers with no CS degrees had companies begging them to join them, but that's quickly going away, and its slowly creeping up the ladder.
If you're a principal engineer or even "only" a senior one, you're likely still at a point where you have people trying to woo you every single day. That's not gonna last.
And the pay for a senior Doctor is what 4 to 5 times what a senior developer would get
That mentality reminds me of the 2014 commercial for Cadillac ELR Coupe: https://www.youtube.com/watch?v=xNzXze5Yza8
It's not entitlement to want work-life balance and be paid well for your skills.
I'm currently under a wide intellectual property assignment that would cover 'side projects' so I don't really do them as I'm not giving away my ideas for free.
* Startups have less with financials, but more with growth. Stock options are a big deal, as you are betting on that growing. It is a gamble, but it can pay off...or go no where. * Existing players need the 401k with matching and other incentives. There is often very little growth there, you need the long term investments.
But I really have no idea why I need a union contract. Dealing with HR is bad enough, now we have to throw in another dump-ass manager into the mix?
I would much rather a coding quiz than be asked to do something in my own time. It is already enough of an imposition on my time to go to the actual interview, without there being homework too. Being expected to have already done side projects is even worse; it effectively punishes me for spending too much of my attention on my employer.
Asking senior devs to write simple code in an interview is, I would say, distasteful but necessary. Some "senior" devs don't seem to be able to code at all. (That's why the fizz buzz challenge was created; it was never aimed at junior devs.) Of course more advanced challenges might end in a trick that you might not notice in an interview, or you might even make silly mistakes. But that's all OK so long as there is sufficient understanding of that by the interviewer, and so long as (this is really key) there is enough discussion about your thought process.
Edit: I just re-read your post and realised you're just asking for the option of showing off a side project, rather than it being compulsory. That's definitely not so bad but it still seems a bit unfair on those of us that don't have time for it.
Hell, most of the value I bring as a senior is well outside the realm of coding.
I've also been burned before, getting dinged for "not practicing TDD because the tests and fixes are in the same commit", there can be just as much arbitrary BS as a simple short code test.
If you’re one of the best, why would you want to be equalized with your peers?
No way I would want this. Why is it my problem that some introverted programmer can’t get themselves together enough to throw together a portfolio, some OSS contributions and ask for what they’re worth?
The best time to negotiate is when you're strong, it amazes me that big tech was caught colluding to depress wages and nothing occurred in terms of a labor movement.
Many industry wide issues could be addressed through collective bargaining: age discrimination, training material, a strong voice to counter tiered voting shares (cough Facebook), guaranteed ergonomic tools, the list goes on.
No need for the collective power, you set your own individual terms.
None of the items you have listed are enticing enough for me to forego 30% so that the collective are equalized. I am my own responsibility. You are your own.
And it may be surprising to US mentality, that they are for all people on the company, from the janitor to the 10x coder that is now recovering from an accident, instead of trying to sue someone to get some income back.
After all, to discriminate can also mean to accurately select the good programmers from among the bad.
The law (which varies by country) says which things you are not allowed to discriminate based on, but after that it's up to the employer, is it not?
Most companies I have interviewed with for full time roles advertise that they are a hiring for several roles but often are just hoping that someone who speaks at a lot of conferences or is a ex-FANG higher up will apply (I've heard this from friends on the inside).
I have been very open about what my experience is and what I'm looking for. Somehow every full time job interview feels like getting picked apart to pieces while most freelance interviews feel like someone genuinely trying to assess if you can be useful to them.
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
Want to hire best programmers? Pay. Them. More. Money.
"I want to grow" is a polite way of saying "I want my compensation to grow".
P.S. Do you know why people bend over backwards at interviews for Google/Netflix/Facebook and do not for a Domino's? It is because if they do well on interview at FAANG they would be making mid to high six figures while they would be making sixties as managers at Domino
1. Become a team leader, then manager, CTO, .. etc.
2. Become an "architect". I.e. move away from coding and design systems, choose technologies and suchlike.
3. Very rare: Become a very senior individual contributer with lots of freedom.
I can see why side hussles are popular as a way for developers to express creativity and try to make some money a completely different way.
> Whenever you start again with a different technology stacks you become an entry level.
Totally. I can't (generally, there might be exceptions) get a full time non C# job without taking a paycut that would put me on the streets. Confounded with the fact that because of this people are going to lie about experience to change jobs to another tech stack, which I wont do, so I'm competing against those people too.
I too am (almost) 20 years in. Male (but I think these problems apply to everyone).
And mistakes can backfire: offer a management path to a person who wants more technology and he may think "ouch, bureaucracy and PowerPoint ahead". I think a general (and genuine) statement of support for technical leadership, management and whatever other paths a company offers would go further than a generic "support growth" mantra. My 2c.
My current job is the most fun job I've ever had and I'm excited to be making stuff that people actually want to use, both in terms of our B2C product and the tools I work on for developers internally. I run our infrastructure team, with my focus there being around developer empowerment and developer-managed cloud resources for apps and services, and the necessary downstack education that that implies. But I've also done a lot of the formative work on our new APIs because I'd open-sourced a bunch of stuff in our stack and I've been building a lab so we can figure out what makes some web filters think our device (we sell in-home exercise equipment) is an "IoT device" that needs to be blackholed away from our API.
I think you kinda have to run towards the fire, though. If it's high-value and requires pretty broad understanding of a grab bag of topics, I tend to move towards it--and it is always tremendously interesting and a lot of fun.
Getting there may not be easy. IME the best path, especially in larger companies, is to:
1. Be effective and gain wide domain knowledge, so your time is valued and multiple diverse projects want as much of your time as you can spare. This is (relatively) easy.
2. As requests for your time rise, negotiate advisory instead of worker bee roles. Avoid writing code, even when you can do it quickly. Instead architect, mentor, advise, assess, etc. This is tricky. As you transition to advisory roles you need to stay valuable and not turn into one of the folks just hanging around with nothing meaningful to do -- those heads are first on the chopping block. If you stop getting invites to new projects, lean hard on #1 for a while.
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.
appname_april_3_2014
appname_april_4_2014
appname_april_4_2014_new_order_schema
I'm being a bit uncharitable with my perception of your story, but it shouldn't be a stretch to believe that given how tech workers are generally perceived by 'business type folks'.
As I see it, his response shows his complete disregard and lack of respect for you as anything other than 'his IT guy'.
I'm way too proud to continue working with someone that thinks of me that way.
It wouldn't be very wise to expect growth if your job is to keep a legacy system running on the minimum possible budget. Or to maintain a "leave us your email" website where the business is all about sales talking to the prospects and all they need from the devs is to make certain a database entry gets created when a user clicks "submit".
You could expect growth if your job is about finding efficient ways to solve a business pain. Or creating a model that makes it easier to understand and navigate domain-specific data. Or anything else where the decisions you make affect how much the paying customers will appreciate the product.
Unfortunately, most developers don't want to go into that domain, and so most of the developer jobs focus on pretty much CRUD where "growth" could at best mean learning a new framework that will get obsoleted in a few years anyway.
My takeaway is that companies need to start focusing on matching jobs to skill level instead of always competing for the best
This is an important qualifier. I'd argue that the most technical candidates are not necessarily the ones who offer the most value to companies. In fact, I would argue that "notably de-emphasizing ambition" will cancel out your technical superiority in the overwhelming majority of cases.
Here's a choice for your company's next hire:
1. A technically superior but comfortable candidate whose top priority is maintaining work-life balance and flexible work arrangements
2. A technically adequate but hungry candidate whose top priority is moving fast and learning tons
Who would you choose?
You're presenting a false dichotomy. There is also
3. Technically superior whose top priority of learning things got them where they are. Maintaining work life balance is just one of the many tools this person has learned over the years to be consistently effective over the long term instead of running into burnout.
That might just mean that the 2nd person would try to shoehorn projects into new frameworks and discount working solutions for shiny new (and cutting edge) tech. All in the name of "moving fast and learning tons".
“For the purposes of this article, we’re arbitrarily defining “great” candidates as those scoring between 95th and 98th percentile on our technical interview, and “the best” candidates as those scoring at 98th percentile or above.”
A test that they’ve come up with internally. What makes this company an authority on determining great and best engineers purely on data structures and algorithms style interview questions that most likely a recent grad will be efficient with (for software engineers anyways*).
This article is standing on a house of cards. It’s first principles lack and the assumptions it makes on top of those first principle is highly questionable.
J
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).
So silly, and completely incorrect, as PHP frameworks and the language itself continue to innovate and keep Up and in some cases are cutting edge.
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.
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.
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.
> "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.
The best engineers notably de-emphasize ambition. is one of their conclusions based on their 'best' category indicating a higher priority on work/life balance than the 'great' and 'all' categories.
They say their data shows that all engineers care about growth, so the title would be more accurate written as 'Want to hire programmers? Offer growth'.
It would be nice if they included information on the source data, in order to go through their system it is my understanding that candidates need to be willing to work where they have clients, and that is going to bias their sample considerably.
Had I known about this article earlier, the execution would have been so much different (the presentation was terribad but whatever, I had good intentions). And the response would have been much better too (it's still very good, but I don't know whether that's good enough to push other people forward).
Regardless, thank you for posting this. The article and most of the comments in here echo my thoughts.
Each of us is different. Of course we can draw charts outlining average patients temperature in a hospital... with the same informational value.
I wish all of us to experience joy from what we are doing. Let it be in the number of happy members of your team, beauty of your code, amount of salary you bring to your family … It can really be anything. Just keep your mind out of Procrustean bed of common stereotypes.
Wonder what were the choices on offer in the survey ?
I've always interpreted "Personal Growth" as basically meaning "I'll have a higher salary in the future". So perhaps "Salary" is still the main motivator.
If you're financially unstable, paying down student debt, etc., it becomes much harder to justify picking a lower-paying job that is more personally motivating if you have other options on the table.
New skills = more money
More money = better life
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 things longitudinally, and that could be hard unless TripleByte becomes more of a career management platform as well as a two sided hiring marketplace. Having used Hired, Angellist and TripleByte before on both sides, I'm definitely really curious about seeing where things evolve.