30 ms·
If software engineering is in demand, why is it so hard to get a job?
- ItTabs 5y agoeveryone wants to underpay the talent and there's only limited amount of talent the price floor for really talented engineers is also high so high in the sense most startups can't afford those 300-400k salaries.
- cj 5y agoOutside of FAANG, who is paying $300k+ for a standard / non-management dev job?
- Beaver117 5y agoAny big trendy startup that everyone knows the name of
- dabfiend19 5y agopretty much any public company with salary plus rsus
- nickjj 5y agoThe comment I'm relying to is pretty grayed out at the time of me making this comment but is this really that off? I know a number of folks who work either as developers or on an IT team for a publicly traded company. 300k+ is a stretch but a lot of them pull an extra 30-80k / year more than working at a non-publicly traded company simply because of the stock options they get every year as part of their compensation. Having publicly traded stock is nice because once you've gotten past the vesting period you can hang onto them for >= 1 year and sell them on demand for 15% long term capital gains tax instead of the usual 35%+ you would have to pay on income tax. Getting an extra 25k to 68k extra post-tax income every year on top of an average dev salary is a big deal.
- nthj 5y agoA lot of companies. https://www.levels.fyi/charts.html# https://www.levels.fyi/charts.html#
- ghaff 5y agoSo a handful of well-known Silicon Valley-ish companies and then you have Comcast, which is probably as good an example as any of a well-known technology-oriented but fairly mainstream company outside of Silicon Valley, and they're paying a senior engineer about $150K.
- myvoiceismypass 5y agoYes, but Comcast is in Philly and has a much lower CoL than CA & NY
- thebean11 5y agoDo you consider Senior SWE and above IC roles "standard"? If so lots of companies. Think Salesforce, Adobe, etc.
- readams 5y agoIt's hard to get a job because there are a lot of charlatans out there and it's often very hard to get rid of them once hired. Even worse is hiring someone merely mediocre and not actively harmful. That said of course the modern coding interview is I think only very loosely correlated with quality.
- foxfluff 5y agoI get the feeling that mediocre business should be able to run just fine on mediocre people. So it can't be that bad. Of course, every business likes to pretend they're the top and can only hire top talent.
- slickrick216 5y agoI think the thing is there are a certain core number of critical things a business has to do where if they are continually messed up it’ll go out of business eg payrolls, strategy around capital expenditure etc. The issue might be that even small business involved in e-commerce mean cross over with these areas. For example storing sensitive data is dangerous. PHI/PII is digital toxic waste. Like with real toxic waste do you want trained experienced professionals or inexperienced charlatans.
- Jenk 5y agoA team of well managed mediocre members will be less of a headache and ultimately more value to a company than a team of rockstars. Besides all that, mediocre literally means average. You (collective) should be fine with average and stop overloading terms making general life more difficult than it needs to be.
- Humdeee 5y agoExactly this. Mismanaged rockstars going off in different directions is chaos. I have no clue how the term 'mediocre' has come to mean essentially bottom of the barrel proficiency that is still the minimum hiring level quality. The top dog companies can be elitist, but when the company is "MegaCrudSoftware Inc.", it's just plain narcissism. Many Reddit/HN posters exude this in the individual sense and believe they're god's gift to the keyboard and it's just as narcissistic.
- slumdev 5y agoI've never seen this question posted by anyone who had either a CS degree or any nontrivial amount of experience. It might be hard to get a FAANG job, but it's not hard to find a $100k legacy code janitor job at any old Fortune 1000 in a flyover state.
- pdimitar 5y agoIt's not hard, you say? Give us some pointers then? I'd appreciate a legacy code janitor job for a few years while still collecting $10k a month. I need the break from stress.
- slumdev 5y agoWell, where are you coming from? Getting the first few years of experience is going to be the hardest--hardest relative to the rest of your career; it's not that hard by any absolute measure. Apply broadly, and take whatever comes. If a company is looking for a junior or mid-level SE and wants "1-3 years" of experience (which is common), your degree is that experience. If you have a CS degree and are in a low- or medium-cost of living area, you should expect $60-80k to start. If have a CS degree and are in a high-cost area, you should expect $100k. If you don't have a degree or experience, it's going to be harder. But why should a shortcut be easy? Is there a secret backdoor career path for people who want to become physicians without going to medical school? No. Do the work, and earn the reward. There are plenty of online and nighttime options for earning a CS degree. If you apply somewhere and don't get a call back, don't sweat it, and don't take it personally. It just doesn't matter. Hiring is a noisy process, and the cost of a bad hire is tremendous. Most companies will try harder to reduce the number of false positives than to reduce the number of false negatives. Again, apply broadly and treat it like a numbers game. There are limits, though. If you've applied for 10 jobs and not gotten a single interview, pay a professional to rewrite your resume for you. If you're getting interviews and bombing the technical questions, then study. If you're bombing the cultural/behavioral questions, read some self-help books and join Toastmasters. If you think you're acing the interviews and not getting any jobs, then you're probably bombing something but are too clueless to realize it. Hire an interview coach. If you're at the point where you have a degree or 5ish years of experience (or ideally both), you are ready to be a $100k code janitor. Learn a common stack well enough to do smart things with it. For instance, if you learn .NET, you should be able to manipulate collections in interesting ways with a single expressive LINQ statement. Pick one from each category (but don't combine Java with SQL Server - I don't think you'll see it as much in the wild): 1. Java or .NET 2. Angular or React 3. SQL Server, Oracle, MySQL, or PostgreSQL I'm going to offend a ton of niche fanboys now: Don't pick Vue, Go, Erlang, Haskell, or Rust. I'm sure each of them is amazing in its own way, but getting a job is your goal, so you don't pick a technology used by only 1% of employers. Now I'll offend the embedded and systems programmers: Don't pick C or C++. They're just not widely used in business applications. I know both (at only an intermediate level), but I've never seen either used in a business application. You should know both on some level, but you're not going to get a Fortune 1000 code janitor job with either of them. Congrats, you are now qualified for the majority of SE job postings at non-tech companies.
- throwaway1492 5y agoA recent comment from reddit: This year I became a co-owner of the company that worked at for the past three years. It's a small development and consulting company and we're currently struggling to find new developers. At the same time, my girlfriend is trying to get her foot into this field. Since she's interested in a completely different tech stack than what we use, hiring her through good ol' nepotism is not going to happen. This situation gives me a small glimpse into both sides of the whole equation. Before I continue, I want to point out that no side is at fault here. It's just market forces at play. So why don't companies want to hire newcomers? It's simple, really. It's never worth it. Even newcomers want competitive salaries because bootcamps, popular media, etc. paint the picture of a career in software-development as being extremely well-paid and with great benefits. This picture is absolutely true -- for senior developers. Meanwhile newcomers need to be trained and built-up, often with intensive mentoring from senior staff. In general, there's nothing wrong with that. I had a great mentor and in turn I love mentoring. But once they've gained know-how and experience, they will look for a different company hoping to use their newly acquired commercial experience as leverage to get better compensation. And that's exactly what they should do! Trust no employer that talks about crap like loyalty. Leaving your first job after max 2 years is something I would recommend every new developer. It is what the legendary Andrew Hunt (author of The Pragmatic Programmer) recommends in this podcast episode. If your first employer gives you a hefty competitive raise to keep you, use it as the new base for negotiations and still try to switch because, as Hunt puts it, at the beginning of your career it's crucial for you to expose yourself to different technologies. Maybe you'll start out as a web developer only to find out after your first job switch that you're much happier in embedded systems. Switch jobs often. Forget loyalty. But what does that mean for employers? Let me explain it with a few of our cases. In the past, we tried hiring newcomers multiple times. In the most recent case, I was the senior responsible for the new hire. I spent up to 16 hours per week on one-on-one training in the first 6 months to get them up to speed in anticipation of a big project. They left us after 14 months for a different job in the middle of said project. I do not blame them, it's the exact right thing to do. For us, this was our third failed attempt of hiring newcomers and it was frustrating and extremely costly. Since we're a B2B company creating software for IT departments, I asked around to see how our clients approach this whole situation. And the consensus is, "We refuse to train the future employees of our competitors. Hiring newcomers is a waste of resources. Paying the premium to get senior developers is always better." Especially small IT and software departments/businesses cannot afford training people who will just ditch the place within 2 years while big players like the FAANG companies can and have their pick from the very best newcomers. As a result, entering this field is incredibly difficult and one has to essentially hope a company is dumb or desperate enough to take the gamble of hiring someone trying to get into developing. So how can this be fixed? Well, I don't think there's a fix. Most newcomers will never find a job and quit trying to enter this field, the lack of senior developers is going to hurt small and mid-sized companies in the long run and many of them will eventually disappear from the market as their current developers are reaching retirement and cannot be replenished. Only newcomers who give the impression that they don't need extensive training will ever have a chance to get hired. As such, my recommendation is portfolio is king.
- larrymyers 5y agoI think this article gets close, but glosses over one of the major issues in software dev hiring: the filtering process is all wrong. Front line recruiters tend to be non-technical, and can't pattern match for good candidates outside of very narrow criteria. (ex: They won't know that a person with strong C# skills will likely be just fine with Java.) Just getting your resume in front of actual people doing the hiring is hard. My experience is that if you want to make it easier to hiring talented software engineers you need to make it easier to get the right candidates in front of the actual hiring team.
- firebird84 5y agoI think this is part of why getting hired through connections is even more important in this field, and why it's also interesting that so many members of the field look down on that very process. I agree it's not very meritocratic, but it DOES get people in front of people more qualified to pattern match their qualifications more quickly. The problem with getting more people in front of the actual hiring team is the "charlatans" other people have mentioned in this thread will effectively waste the (very expensive) time of said team. Using a (less expensive) recruiter as a first stage seems rational until you discover the high rate of false negatives. I've mulled this problem a lot and I still come up empty on a new, more effective way to solve it.
- selfhoster11 5y ago> getting hired through connections (...) it's also interesting that so many members of the field look down on that very process. I think the explanation is quite obvious. People who gravitate to this industry are not as social as those who gravitate to other industries, hence the disdain for (or rejection of) the process that leans heavily on something that doesn't easily come to them, that feels like something they shouldn't have to be dealing with.
- ghaff 5y agoI'm not sure it's so much a case of social vs. not-social though some of it probably boils down to that. I think it's more of a rationalist viewpoint that the "best" person should be hired rather than a merely "good" person who knows someone who may put their thumb on the scale.
- Nbox9 5y agoI think a lot of this is because our profession does not have an accepted universal bar everyone can jump over to be considered ‘qualified’. Every technical interview feels like rolling the dice in proving I am a competent developer. Giving me 50 minutes in a high pressure situation in an environment i am unfamiliar with and people I just meet will never product my best results, and then add to the fact that I could be asked any question, and my ability to answer is it being ranked against other candidates. Maybe someone else _just_ did a similar question in another interview and it’s fresh on his mind. Maybe someone spend their entire career focusing on just this type of problem given in the interview, but the question in the interview is only partly related to the actual job.
- omarhaneef 5y agoThis is a great point. In many other fields (medicine, law) people study a standardized body of knowledge, take a standard test and then get a license so they can do something others cannot. However, this doesn't prevent a lot of awful and a lot of great people getting through. You would still need to interview a lot of them. I wonder if it sets a minimal level.
- ghaff 5y agoFor the top law firms, things are pretty straightforward. You have to pass the bar, there's the school you went to, your class rank at the school, internships and clerkships, and then associates are largely up or out. I assume it actually works pretty well but there's obviously a huge amount of gatekeeping involved.
- commandlinefan 5y agoThat all makes sense, and it bothers me, too, but they do hire somebody eventually, which implies that somebody can produce quality results in 50 minutes in a high pressure situation in an environment they're unfamiliar with and people they just met.
- gabereiser 5y ago
- DeBraid 5y agoVery few firms want to hire juniors, while nearly all firms desire senior-level talent. This manifests inflated job vacancies because so many firms have an evergreen job posting for "Senior Full Stack". Because talent is scarce these roles rarely get filled (hiring managers expect million-dollar candidates to accept $100-200k compensation). Also, because lots of software requires specific expertise, there are vacancies that can't be filled because of a knowledge gap (novel industries / projects, etc). For example, how could SpaceX possibly fill all their engineering roles? Surely money is not a limiting factor, but rather the limited supply of qualified expert rocket engineers?
- dimitrios1 5y agoTo go in line with firms not wanting to hire juniors, I think generally firms do not want to invest heavily in employee training or education. I would, for example, happily make a shift from CRUD webdev and distributed networking to hardware and embedded and more lower level type work, but I doubt a firm would hire me near my current level and train me up.
- aNoob7000 5y agoI think you hit it on the nose. Companies don't want to invest in training their new hires. They just want someone to hit the ground running with as little hand holding as possible.
- ghaff 5y agoIt doesn't help that, for a certain slice of the software industry, staying in a position for 18-24 months has almost been normed. If it's unlikely that your hire is going to be there for more than a couple of years, why on earth would you "invest" in them. It's not like you'll get a return on that investment.
- cableshaft 5y agoAnd why would software engineers stay if you did invest in their training but in the meantime you're going to reduce or eliminate bonuses, make your health plan worse (or just plain switch to high-deductible with no PPO options), stop 401k matching, other key employees have left and you don't hire new people and instead dump that responsibility on someone else without promotion or raises, etc. I've seen all of those things happen at a single company before (and relatively quickly, over two years), and several of those things happen at several companies.
- thevinter 5y agoI'm European so I'm unsure as to how the situation is in the states but here the situation is as follows: it's plenty of "developers" that taught themselves coding trough udemy or similar courses and can effectively code basic stuff in one or two languages. While I'm not trying in any way to devalue their knowledge or expertise in my experience a self taught developer will, on average, produce worse code and will ask for a lower pay. For employers though this doesn't matter because they mostly watch at the finished product and we all know "that guy" that can ship a feature in a week when testing/engineering alone would require two. It follows that there's a market saturation for entry level positions for low-end companies because they don't see the need to hire engineers or people with a degree that ask more while delivering "the same product". In my experience this changes when a company is more professional and there really is a lack of professional software engineers.
- notapenny 5y ago"Young" companies generally don't care about quality, testing, processes. They just want to build a product. I put that in quotes because being a consultant I'm sometimes amazed at companies that make millions/billions and have never bothered to think about these things, until the reach the inevitable point where every change becomes a pain in the ass.
- wil421 5y agoAny advice for someone trying to get back into web based software engineering? I’ve spent the past 5 years implementing off the shelf solutions that enterprises use. Lots of API work, light web dev with some AngularJS but mostly scripting using JavaScript. I wouldn’t be able to pass a whiteboard interview. My salary is above $100k and I could probably find a job doing what I’m doing for $150k or higher. My next choice is do IT consulting or try to find a management position but I don’t want to be tied to a vendors platform. Plenty of people have made entire careers on the backs of vendors like Oracle and others but I don’t want to be a crusty old dev keeping things alive until I retire.
- Clubber 5y ago>I wouldn’t be able to pass a whiteboard interview. What the people who insist on giving these interviews don't realize is they are extremely hackable most of the time. The people who give them often aren't bothered to make up their own tests, so they go to the google and type "whiteboard interview questions for bla bla." I suggest you do the same and study up.
- faizshah 5y agoWhen I was trying to get my first internship it took me 160 applications to get 1 interview, before that I applied every year for ~20 internships at the big names and never got 1 interview. Similarly for my senior year I applied to full time and internship positions it took me ~145 applications to get 2 interviews for internships (I would be interning after I graduate). I did the resume prep, went to the career fairs to talk to recruiters and get feedback, went to hackathons to add to my resume, I don't feel that it really did anything. I even tried cover letters as some people on HN suggested to me. The process seems completely random and based more on pedigree than on anything else. If you have a signal like an Ivy League school, an older friend in the industry who can refer you, or a FANG on your resume those seem to be the only ways to be picked from the sea of resumes.
- fossuser 5y agoThe lottery of front door applications is largely a waste of time. The best way to get an interview if you didn’t go to Stanford or MIT (I didn’t) and haven’t yet worked at a famous company is to get a referral. Which requires somehow making a friend or connection with someone at the place you want to be.
- jonfw 5y agoIf you can build a specialized skill set you can make things much easier. When I got out of school with no experience, no internships and a degree from a second tier state school, I still had good luck on the job hunt. What worked for me was that I had been studying Kubernetes and was probably the cheapest guy on the market with that skillset :)
- faizshah 5y agoI actually disagree with this (if you’re aiming to work at a company between Unicorn and FANG size), I think there’s 2 parts to getting hired as a new grad or getting an internship as a student. The first part is the University Hiring recruiters determining whether out of the 1000+ resumes they have read you are likely to have the basic skills required to learn to be a FANG engineer. In this part they don’t actually care much about what you did at your internships or what technologies you’re interested in all they care about is whether you know how to code in a language, know how to manage time and be managed by a superior, and know how to learn to do your job independently. If you pass this, great now you’re off to the races that was the hardest part due to the volume. Then there’s a second part in every FANG university pipeline where University Recruiting and different hiring managers bounce around your application to find an intern for their team. In this part your demonstrated interests, prior work, and skills are important you’re way more likely to get a deep learning internship if you have deep learning on your resume at this part. I posit that most university hiring advice focuses on the second part whereas the first part is the most difficult to pass. Think about it is the person with 4 hackathon awards and 3 deep learning side projects more likely to grow into a FANG software engineer than someone who has 2 internships? Do your side projects involve reporting your progress to your team? Writing design docs and getting feedback from your team? Thinking about maintaining the code base and providing documentation to your coworkers? Those software engineering skills are learned not taught and you learn them on the job even though to other software engineers we would value the candidate with hackathons and side projects more than the one with 2 internships in terms of ability to grow. I’m probably going to write a blog post or something about this cause I feel quite strongly about this after my experience following everyone’s advice.
- pictur 5y agobecause expectations are not clear. Most of the companies do not know what they expect from the employee in the advertisement or in the interviews. it's just confusion on both sides.
- southphillyman 5y agoOnly entry level software jobs(because of the weird x years requirements) and FAANG jobs (because of the required DS&A prep) are hard to get. Standard run of the mill Fortune 500 SWE jobs paying 100-200k are relatively easy to get once you have any experience at all.
- djtriptych 5y agobruh done grown up since #thatsite lol.
- tomkat0789 5y agoSlashdot had a post about this topic a few years ago that I thought was colorful enough to save for posterity: https://developers.slashdot.org/story/18/03/14/1428242/demand-for-programmers-hits-full-boil-as-us-job-market-simmers#comments https://developers.slashdot.org/story/18/03/14/1428242/deman... The top comment seemed to capture the problem best: "What is in extremely high demand is programmers with 20 years of experience in a technology that has been around for 5, no older than 19 and working for 20k a year. And that demand will be high, forever. Pay more and you get more. Pay this and what you get is code monkeys that couldn't find a better employer"
- gscott 5y agoThis is often done to hire H1b applicants. You run the local applicants through an interview that ends up with them even if they are qualified not taking the job then go and hire the H1b that you really wanted because the H1b is then dependent upon you for staying the United States. You can now hold that over the person and anything you want they have to do like working 100 hours a week.
- co2benzoate 5y agoThat is how labs hire postdocs on the cheap too.
- bob33212 5y agoI saw a posting for a full stack engineer last year with a rate of $20/hour. It was temping to apply just find out what they expected. I can only think since this was a startup they were trying to "fill a seat" to look better for investors because having a higher headcount would seem impressive?
- agd 5y agoI want to challenge the premise of this article. Is there evidence that's it's hard for devs to get a job in general? E.g. The average hiring times for software devs (on popular platforms) in London was on the order of a couple of weeks. I know from personal experience that junior devs from bootcamps were getting snapped up quickly - source, I worked for 3 years in the recruitment industry and also hired many devs in that time. Doesn't seem to be a problem in general?
- adventured 5y agoAnd certainly one must ask: in comparison to what? Is it far more difficult for a median skill software developer to find a job than the equivalent person seeking employment as an accountant, electrician, or plumber? I doubt it. The persistently very low unemployment rate for software developers rather speaks volumes about how not difficult it is to find a job. The interview processes are obnoxious in the field? Sure, that's a reasonable claim and seems to widely be the case.
- SilurianWenlock 5y agoComputer science has the highest levels of graduate unemployment in the UK
- deleted 5y ago[deleted]
- moksly 5y agoThe demand for programmers is largely becoming a myth in my experiences. I work in public sector digitalisation in Denmark and as such come into contact with a lot of private sector companies from whom we buy development, I also work as an external examiner for CS students to keep up with the field and spot potential candidates. A decade ago my region of the country would produce maybe 50 fresh CS candidates a year, now it’s closer to 500 spread across multiple different educations. This may not sound like a lot, but in a region of 1 million people it’s actually quite a lot, and those are the technical CS/SE types not the myriad of soft IT/design/communication educations which produce a further couple of thousand each year. It’s like this because we (as in the employers) have been telling everyone we needed more and still need more for that same decade. But this is a half truth. We don’t actually need more people to become CS candidates, we need more trained plumbers who are proficient in X technology that we can use for 5-10 years until they leave us or we replace them with someone cheaper. And how do you get cheap labour? Well, one way is to make sure enough people are educated in what you need them to be, and while it may have been the case that the world needed more CS candidates a decade ago that is no longer the case, but it’ll take a while for young people to realise this. Well that’s one part of it, the other part is how the educational organisations educate our young people by giving them the wrong kind of skills. I’m not exactly sure why they’ve abandoned teaching people actual computer science, but the part that the most students fail on and the part that shrinks year by year is now computers work. I can see how the fundamentals aren’t as necessary as they were in the 90ies when I got my degree, and I also remember how much some of us hated that stuff even back then. But it’s what’s required to fill the best paying jobs, like running the cobol systems for a bank. Cobol itself isn’t hard, a cobol system is hard because it came with nothing and was build in a time where everyone invented the wheel their own way. So what you need to become a good hire for such a system is all the basic CS knowledge that nobody no longer teaches so that you may understand and reverse engineer whatever all those cobol programmers did in the 50 years before you arrived. It’ll be sort of interesting to see where it lands us though, but I’d frankly get into actual plumbing if I was young today because that’s bound to be a better career for most people who aren’t aces in either the technical or the financial/management side of CS.
- ozzythecat 5y ago> decade ago my region of the country would produce maybe 50 fresh CS candidates a year, now it’s closer to 500 spread across multiple different educations. A degree is not the same as “talent”. The degree doesn’t even mean you really “learned” the fundamentals, so much as you were able to regurgitate information and pass exams. I’m a Principal at Amazon. One issue I see among CS graduates is a lack of understanding in very basic CS fundamentals. On paper, these candidates have CS bachelors degrees. On the other hand, they struggle to pick the right algorithmic approach when something is clearly a graph or tree traversal problem.
- aikah 5y agoBusinesses refuse to invest in workers education thus refuse to hire juniors. Then they refuse to hire older developers because "not culturally fit". Tech businesses are full of sh...
- paulpauper 5y agoIts like this for all jobs: the reason is that a bad employee typically subtracts more value than a good employee adds. So companies put a lot of effort in lowering the odds of hiring bad employees even if it means positions remain unfilled.
- shagie 5y agoThe classic article on this is: The Net Negative Producing Programmer http://pyxisinc.com/NNPP_Article.pdf http://pyxisinc.com/NNPP_Article.pdf The bibliography is also something to track down and read if you're interested in the subject.
- supergeek133 5y agoThis would go along with some type of unionizing or organization.. but in the traditional trades (Electrician, Plumber, etc) there are education programs and apprenticeships before becoming "licensed". Maybe that's what we need here, something to gap the "I'm brand spanking new" and "I'm a senior" time period.
- commandlinefan 5y ago> apprenticeships Oh, man, to have somebody to do all the stuff I don't feel like doing...
- bmn__ 5y agohttps://news.ycombinator.com/item?id=27662804 https://news.ycombinator.com/item?id=27662804
- yashap 5y agoThere’s a tonne of variance between software engineers. Even at the same level (junior, intermediate, senior, etc.), it’s not uncommon for a strong hire to be ~5x better than a weak hire. By this I mean more productive, better at helping others, writes fewer bugs, creates more maintainable abstractions, makes better architecture decisions, can tackle more difficult problems, etc. And at the same level, the strong and weak hires get paid roughly the same, so companies REALLY want the strong hires. This is not a McDonalds type situation, where anyone lightly competent will do, you’re trying to hire someone outstanding at their job every single time. Firing sucks, but it’s hard to truly tease out quality during interviews. So most companies go for false negatives over false positives. Generally this means that of the 3-to-6 interviewers, all have to have strong positive opinions of the candidate for the hire to happen. Because of this, as a candidate, it’s a bit of a number’s game. You can be a great candidate, but still not get hired on any individual interview, because companies heavily bias towards allowing lots of false negatives to avoid the odd false positive.
- hnfong 5y ago> hard to truly tease out quality during interviews I'm not sure I agree here. I doubt most interviewers have actually given much thought to what they are actually trying to look for in a potential candidate. The widespread practice of over-focusing on algorithmic whiteboard questions is a symptom. There's got to be better processes in assessing candidates' qualities beyond solving algorithmic puzzles (which perhaps is 5% of a software engineer's job at best).
- yashap 5y agoI dunno, I’ve conducted about 100 dev interviews over the years. Have tried various combinations of whiteboarding, architecture/design questions, take home problems, talking about past projects/experience, and sitting down together with the interviewee and pair coding on bugs or small features. I don’t know that any approach was clearly more effective than another, and for all of them I think the ability of myself and other interviewers to predict performance at the company was decent, but far from excellent. The clearest signal is probably a super enthusiastic referral (from a highly trustworthy source), but it’s rare to be able to get that. It’s just really tough to figure out in 2-3 hours how someone is going to perform in a given role over the next few years. Interviewing is an inexact art, not an exact science, and it’s very much my experience that companies compensate for this by favouring false negatives (not hiring possibly strong candidates) over false positives (hiring weak candidates).
- miohtama 5y agoI reviewed around 5000 candidates last year for TypeScript frontend and backend positions. Global, remote only. I received ~600 applications for an Angular position in one week. The hiring percent was below 0.5%. There are a lot of candidates, but most of them could not fulfill our core requirements a new team member must be able to accomplish. In our case it was TypeScript itself, unit tests, integration tests, working in a Linux environment. Salary requirements for the same position varied $1000 - $20000/mo. Because there is a lot of supply side (read: developers available), one can be picky. More details and statistic here: https://www.linkedin.com/pulse/hiring-remote-angular-nestjs-developers-stackoverflow-mikko-ohtamaa/?trackingId=NGKnWQqwQnSm4YR0l8m7kg%3D%3D https://www.linkedin.com/pulse/hiring-remote-angular-nestjs-...
- devit 5y agoInterestingly, the exercise is so boring (add authentication to a website with tests and documentation, for an outdated framework like Angular) that it probably selects out people who want to have a somewhat interesting job in addition to those who are incompetent.
- notapenny 5y ago"Some candidates asked for an interview without completing the exercise. Unfortunately, this was not an option, as this would not be fair for the candidates who worked hard to get to the interview." This is just how I look at it, but if I reply to a company about a position, I'd like to know about the position before you make me jump through hoops. The exercise itself is okay, and a brief test like this is much, much better than making a candidate fill out an assessment, but why would I invest that kind of time if I don't even know whether or not I want the job. Think about it from the candidate's perspective, some people in this thread note having done 10s/100s of interviews. Imagine how much time they would spend doing menial coding exercises before even getting to know about the actual position other than the JD. Again, its probably just me, but last year I literally thanked companies for their time because I didn't know anything about the job and their company and they were already asking me to do take home assignments. Sorry but I have a life, and critically to anyone who's hiring; plenty of people reaching out to me not trying to make me jump through hoops. Maybe if you invited more than 24 people for the exercise or just spoke to some people first, you would've gotten a better pool of (potential) candidates.
- duxup 5y agoI agree 100% with the general ideas that "we ask stupid trivia questions when hiring people" and "nobody wants to hire Jrs". I'll toss out one other thing. The people hiring people SUCK at finding people and waste everyone's time in the process. The amount of Java / JavaScript confusion that persists among the people who are involved in just finding people reeks of incompetence / and maybe worse. Head hunting corps, even random company recruiters / HR seem more interested in bringing in mass volumes of names / resumes / warm bodies regardless of how qualified they are. Then they filter and I guess justify their work? I think of it as the Hiring People Industrial Complex where it feels like the end goal is not actually having even the slightest chance of getting a job, rather the goal is to have a process, go through it, and that's it. I get so much spam for jobs that aren't right for me, not even in the slightest. I'll even do calls with them and explain that it doesn't really fit, and they still want to move forward to some other inane level of the process, but I know I've got zero chance. It just eats so much time.
- Clubber 5y agoI dunno why this was downvoted. Most recruiters have no idea how to program and thus really aren't qualified to be more than a contracted HR person / keyword matcher. Their main qualification is they have a special account on monster and dice to post qualifications that the hiring company gave them. There are exceptions, but they are rare, and they don't work for the big recruiting firms. They are just body pushers.
- gldev3 5y agoI have had a couple of friends get rejected because HR pulled some engineer that was having a particular bad day (which is completely understandable) i wonder how many good programmers have been filtered because of these interview processes.
- rbanffy 5y ago> Waited hoping one day someone will hire me without requiring me to white-boarding. Yep it is worse than water-boarding. Never tried waterboarding, but my issue with white boarding is that it’s deeply subjective. With working code you at least can judge the correctness straight away with a real piece of runnable code. You can also observe how the candidate reasons around the problem and how they formulate and test hypotheses. With a white board you can observe the candi^Wvictim making a table test, a term I first heard in the 70s and last heard in the early 80s. It is just cruel.
- odiroot 5y agoGetting any software engineering is probably as easy as 1-2-3. It's getting a promising job, in which you can grow, what's hard. And yes the recruitment process can be very tedious, illogical and sometimes even unfair. On the other hand, there are leagues of junior engineers (or just self-taught people after bootcamps) applying for all these jobs, so the process is hard for both sides.
- mistrial9 5y agoyou ignore the methodical, persistent, pre-meditated and enthusiastic efforts of business development people to marginalize, reduce wages and commoditize human workers !
- mihaifm 5y agoAnother aspect might be that companies list job openings when they don't actually need them. It's probably just to gain visibility in the market, justify HR salaries or keep a door open for the next 10x developer who might land on their site. The only ones who lose here are the people taking the interviews and getting rejected for no apparent reason.
- ffggvv 5y agoi feel like everyone just wants to fight for the top 20% of talent with insane salaries while disregarding the other 80%
- asah 5y agoBecause you need 10 years of experience in a technology platform that's 5 years old. /s
- devwastaken 5y agoHigh experience on paper is in demand. You with a college degree and not having already worked for X titan of the industry, is not. Marketers and managers always run to the cash cow, and ruin it. They have no clue how the job works, they're just following what their professors told them to do when hiring accountants and laborers. Fire corporate, that's how you get good workers.
- allo37 5y agoIs this an American thing? Or maybe just a non-embedded systems thing? I live in Canada and was looking for a job recently...got two offers! One was just a casual chat about my experience, the other was a casual chat + take-home exam, which took about 3 hours. Ater reading all these scary whiteboard interview stories on social media I studied up on programming puzzle-type questions...was a bit of a let-down, honestly.
- UncleOxidant 5y agoMy experience with the embedded world is that the engineers and managers working in that field tend to be older. They're from the era when it was common to get a job after a casual chat. About how old was the manager who hired you? I got a contract gig with an embedded development house a few years back after a couple hour interview - more of a chat. The guys hiring me were in their early 60s.
- ryandrake 5y agoCan confirm. I had two jobs in the past which could be considered embedded development, and got both of them after casual (but technical) chats. The first one converted to employment after a 6 month trial period as a contractor. No whiteboard hazing, no leetcode, no take-home "challenges". And the average age at both shops definitely skewed older. I also got the impression that there weren't a huge torrent of engineers with assembly and JTAG debugging experience banging down their doors, which probably helps.
- allo37 5y agoYeah, you're definitely on to something: The average age was much older- maybe not early 60's, but definitely older. I wonder if we'll see the same sort of thing creep into the embedded systems world as these managers/engineers retire.
- siva7 5y agoSame in Europe, i also believe most of these rants on hn about hiring are describing a unique trend in the united states.
- rsweeney21 5y agoIt's because in software engineering your work product is confidential/proprietary and work samples take a very long time to produce. If you could review someone's code from their previous jobs, I think it would be quite easy to vet applicants. And it would be much easier to move from job to job. Instead we have to simulate work samples through whiteboard coding, pair programming sessions, take home coding projects, coding knowledge tests, etc. We know that none of these methods are particularly good, so we err on the side of failing candidates when we are on the fence. They also take a long time to complete, so software engineers are reluctant to change jobs because they know how much of a pain it will be to go through interviews again. It is much easier for product designers and product managers to pass interviews. You can see their work product. At my company we're working on a way to create standardized coding projects that can't be faked so you can use them across job applications. If you are interested in this space, shoot me a message: robert at facet dot net.
- UncleOxidant 5y agoDo medical doctors face this? Their work is confidential as well - patient data is highly confidential.
- 6gvONxR4sf7o 5y agoMedical doctors have licenses which include exams and all sort of other barriers before they’re a ‘real’ independent doctor.
- adamhp 5y agoI'd be curious to hear peoples thoughts if they would subject themselves to this sort of professional board and licensing for software. There's clearly a pre-determined set of information and skills that are fundamental enough to be tested, but it is also fairly creative and subjective at the end of the day.
- rhacker 5y ago
- fuzzfactor 5y agoSeems to me it's just so much in demand that it pays more than companies are comfortable and they almost never want to introduce any applicants to higher pay levels than they have experienced in the past.
- mtnGoat 5y agosomething i have seen a few times: candidate is far more qualified for the job than the existing employees and they are afraid of their superiority showing, of the possibility of replacement, so they railroad every candidate. imposter syndrome can prevent teams from growing in positive ways and limit their creativity.
- newbamboo 5y agoWhen big tech says engineers are “in demand” they mean “we can make money off them.” There could be 10 jobs worldwide, as long as companies can make money from those 10 people, they will say they are in demand. Rather than think demand equates to quantity of jobs, it’s better to think of it in terms of cost. The more engineers competing for the 10 jobs, the lower their cost to the company and the higher the demand. Lower salaries mean more money can be made by employing them. “In demand” means the exact opposite of what most people think. And by telling people the demand is high, it increases the supply further lowering costs for the companies and thereby increasing the demand. Engineers could organize and form guilds or unions, like lawyers and doctors have. But that would decrease the demand because it would increase costs. Tl;dr software engineers don’t grok labor economics. VC do.
- betaby 5y agoEven mom and pop shops copied FAANG interview process.
- hsn915 5y agoSoftware Engineering is not in demand. What is in demand is cheap labor that can churn out low-quality web applications, label them MVP, and use them to convince investors to pour in money to hire more cheap labor. The biggest tell that this is true is hiring for a specific library/framework/platform. If you wanted a software engineer, you wouldn't care what particular thing they have worked with most recently. Maybe you would care about the general category of work, but mostly you would care more about practical experience and past achievements/results.
- bluedevil2k 5y agoThis isn’t true at all. Maybe in some locations (Silicon Valley? I don’t know), but every job I’ve been on has needed top level programmers for critical applications that have real world value.
- hsn915 5y agoThey need senior level programmers, but most of them are not willing to pay much more than junior level salaries, because they think they just need copy-paste programmers.
- HeyLaughingBoy 5y agoI think that a lot has to do with his #2 point: Software is BROAD. I've changed jobs twice in the last 6 years and in none of the interviews was I asked any coding questions. There were sometimes broad questions about design and concepts "how would you handle situation X"), but no actual coding or whiteboarding. In fact, going back 15 years to the start of the previous job, I don't recall coding questions then either. They were more concerned about my general capabilities and knowledge of useful algorithms that I would use on the job than the actual code. But then, I'm mainly an embedded systems developer. Sure, I do the odd webapp or desktop application or tool, but controlling hardware is where most of my time is spent. Maybe in this field there's less of a culture of "interview by whiteboard?" Or perhaps it's because I was applying to higher level team lead positions that were more concerned with architecture & design than the framework of the month? Or is it mainly the web guys (admittedly the largest section of the pie) that are being asked the odd algorithm & whiteboard questions?
- nsonha 5y agoIs it hard? Seems that it only is at entry level which is true for all fields. However in other fields there are very few ways to stand out as a grad so opportunities are distributed more evenly.
- nell 5y agoSo many singles, fewer marriages :)
- justinzollars 5y agoI was laid off during the recession and was "out of shape" in terms of algorithm and interview skills. There is a lot to know. The two previous interview cycles in my career were a completely different experience. I could probably leverage my personality more - in the pandemic it was just a zoom call. Now I do regular practice problems so I'm always ready. I actually recommend this. It looks something like this: Sunday - Stack | Queue | Priority Queue (Heap) Monday - String | Math Tuesday - Tree | Dynamic Programming Wednesday - BFS | DFS Thursday - Graph Friday - Linked List Saturday - Sabbath
- lifeplusplus 5y agothis is actually funny
- justinzollars 5y agoagree.
- 6gvONxR4sf7o 5y agoOne aspect not mentioned: Tech really want to be a meritocracy. We don’t generally succeed, but we try. Engineers at least want to be unbiased, and the Bay Area cares about it culturally, generally speaking. So we fight against increased barriers to entry like credentials (but that Stanford/MIT degree is still a golden ticket into the interview). We try to give as objective an interview as possible, meaning it’s explicitly technical, rather than just talking about past projects open endedly and going with the feeling you get about the candidate. I’d bet if we collectively decided not to try to be a meritocracy, we could make tech interviewing a lot easier, but I wouldn’t like that. I came from a nontraditional background too. I only got in the door because whiteboard style interviews let me demonstrate what I knew despite my total lack of credentials. We suck at being a meritocracy, but I’m glad we try to keep the barriers low and unbiased. I bet we’re better than most other fields that pay this much.
- Apocryphon 5y agoBut just as with companies that attempt holocracy and having no hierarchy, de facto hierarchies just creep in. And so the data structures/algorithms interview is a de facto credential, except worse, because it needs to be re-taken at every single company, rather than however many times it takes to pass the credential exam.
- diogenescynic 5y agoBecause companies don't want to train anyone.
- sixstringtheory 5y agoEvery time I think about this topic it reminds me of The Grapes of Wrath. Flyers everywhere talking about how much the orchards need fruit pickers, creating a veritable gold rush of workers. The outsized demand for jobs from the supply side of labor drives down wages and working conditions.
- black_13 5y agoH1b/ageism/purple squirrels
- mywittyname 5y agoEverything about interviewing sucks. Being the interviewer sucks. Being the interviewee sucks. The politics of hiring sucks. I hate it on both sides. The more I interview people the more empathy I have for good candidates who can't get hired. I've seen so many potentially good candidates passed over because someone in the hiring chain didn't find them good. Usually this has to do with "lacking experience with X technology." This is incredibly frustrating because usually the person doing the rejecting didn't know X when they were hired, but they were paid to learn it by the company. On the flip side, I've been forced to re-interview obviously poor candidates because a hiring manager liked that they had "experience with X technology." Even though I was pretty confident that they were lying. Usually this ends up being merely a waste time, as I've never changed my mind and usually bring along another interviewer who concurs. I think the hiring process is 50% luck, and 50% having experience with the right tools. My new strategy, after working in the sausage factory, is to look at prospective jobs, find the tools they are looking for, and find a reason to use them in my current role. Read all of the documentation so you really sound like you know what you're talking about, then interview. I'm not sure if this works in the SV startup culture, but it does seem effective in my situation.
- ipnon 5y ago0.9^7 < 0.5 If you have a 90% chance of getting everyone you meet to like you, but any one of them has the power to veto your entire candidacy, then after 7 "rounds" you are not likely to get the job.
- stakkur 5y agoI’d argue that the ‘demand’ is overstated, largely because job listings and forecasts != actual jobs.
- dleslie 5y agoOutside of the browser space there's a lot more opportunity to land work, since there's _far less_ competition for jobs. Thanks to the billions of dollars spent and hundreds of millions of hours expended, anyone who takes a four week bootcamp can become a passable frontend web developer. The tooling is just that simple and accessible. And so there's a lot of folks taking such bootcamps, and employers have no lack of choice for roles.
- spo81rty 5y agoJust because you have a degree or think you are a software developer, it doesn't mean you are any good at it and should be hired. Companies are substantially better off having fewer developers than having bad ones. Bad developers take a lot of time to train, manage, QA their work, fix their work, fix their work again, and then finally someone else just does it. They are in fact a net NEGATIVE impact on the team. You are actually better off without them. They actually slow you down instead of improving productivity. It's akin to hiring a cook who screws up every meal they make. Not only did I pay them to do so, now I have to pay others cleanup their mess.
- phendrenad2 5y agoWhy does it take longer to QA their work? Do you not QA "the good developers" work? Why does their work need to be fixed and re-fixed? Do you not have a test suite?
- bankim 5y agoAs an experienced software engineer with a CS degree and having worked as an Individual Contributor for over 12+ years, finding some job is not hard but finding a job that pays well like FAANGs and other similar top tier companies is indeed very hard.
- krony 5y agoCoding interviews should just: - review your recent resume - have some conversations around coding topics that dive in enough to know if you generally know what you're talking about - focus on things you really expect them to do on the job - if you really love giving algorithm riddle programming tasks, only use them on recent university grads who are used to such things. it has zero (ZERO) usage for experienced devs in our industry - basically much of the US already interviews conversationally with little or no coding exercise. but for some reason big tech and the valley fail to change (which is funny since they are usually on cutting edge of other aspects of our industry) TL&DR: don't do live coding interviews, they are a waste of everyone's time
- deleted 5y ago[deleted]
- darepublic 5y agoNot sure but.. some people I know who work in less well paying office type jobs (perhaps with a large data entry component), see the trend and think they want to get into programming. But they just don't enjoy it whatsoever. Their preferred approach is going to the cheapest college course they find, passing the courses by the skin of their teeth and then showing up with diploma in hand at a job interview. But unfortunately that process doesn't leave them able to contribute much and the employers know it.
- lake-effect 5y agoI've done two technical interviews this summer. The first one was shakey, the second went really well, but ultimately both places moved on with another candidate. It's definitely a skill and learning to not get so nervous about them helps a ton. I went from grad school physics to my first data science job and I'm trying to further transition into ML engineer type roles. My biggest insecurity is not knowing the comp sci 101 basics, since my programming was self taught along the way (learning what I had to learn for my thesis research simulations and then whatever else I learned in my first 2.5 years as a data scientist). I long for the day that I have enough experience under my belt that I'm a ML unicorn and companies view me as highly desirable, but I probably got many more years of grinding til I reach that point.
- kiliantics 5y agoI got into software from a similar background. You can get pretty solid CS basics very quickly if you go through a book like Cracking the Coding Interview and do a few leetcode problems. It will also probably dramatically improve your experience writing code.
- MeinBlutIstBlau 5y agoThe best way to actually learn how to code is have someone else teach you whose been doing it for several years. I wouldn't be where I'm at today had I not had my lead help me out during my internship. My school was just trash at teaching programming. Not only was it basically self taught, but everybody got A's so long as they just submitted code that compiled. My lead actually taught me how and why this stuff works.
- debarshri 5y agoWe made the interview process very simple and traditional in our current organisation. 30 minute chat, judge whether the person can do the job or is a good fit, if yes then offer a year contract with 1-3 months of evaluation period. Changing a job is risky also from the candidate's perspective so if the person is pretending, the lies will catch up. Most of the scenario it has worked pretty well. Sometimes, people who you think are not capable to do the job, often outperform expectations too. It is all about taking a risk on a person and giving them respect and a chance. We could have done leetcode, or pair programming session. It takes more energy and effort to do it from both sides and probability of finding a good candidate is more or less the same.
- c4m 5y agoThis is super interesting! With a traditional interview and job offer process, a new employee can ramp up without worrying their job is on the line. And I think this is important, because it can take awhile to ramp up to full productivity, which can be stressful if the new employee feels like they're being evaluated already. Where I've worked, my new manager told me "Hey, welcome to the company. Please feel relaxed and take your time ramping up, you've already passed the interview and we're happy to have you here." With your process, how do you deal with people getting stressed out during ramp up or feeling imposter syndrome?
- dannyw 5y agoIf you are a semi-experienced software engineer and haven't been deliberately lying during your interview, you shouldn't really worry about getting fired.
- mrtksn 5y agoWouldn't people go from stages similar to culture shock? 1) Wow, very interesting company. I didn't know so many things can be done in different ways than I'm used to. Very smart ideas out there. 2) OMG, this company is full with idiots. Everything is done the wrong way but somehow it has not collapsed yet. 3) Yeah okay, some stuff is the way it is because it would't be feasible any other way due to the quirks of the business. Other things are the way it is because of historical reasons and it doesn't make sense to re-do it at the moment. 4) You know what, I think I understand what this company is all about. It's not perfect but people are actually doing great things here. 5) OMG, this business is crime against humanity. It shouldn't exist, I don't know how I'm supposed to do this anymore. Money can't buy me. 6) Well, the world is not perfect and I understand the imperfections and I can function. It's not like they are doing it any better anywhere else. I grew to appreciate upper management, now I understand our business and I'm happy to do my part. 3 months should be enough for a nice honeymoon stage. Both sides can know that longterm relationship is achievable if they have a nice honeymoon stage.
- deleted 5y ago[deleted]
- nickjj 5y ago> One drawback to this is that the engineer interviewing you, if he/she is human, will not be familiar with all of them I see this as a potential plus not a downside. If the person doesn't understand the language you're using but you can explain how your code works in such a way that you can get them to understand it that's a really good demonstration of being able to communicate and how you would describe your code to a co-worker. I've only sat in on a few interviews (as a person doing an interview on the sidelines) but all of the questions I tend to ask are more casual and around thought processes, or at least the pseudo code implementation. Personally I don't really care if you can't remember the exact syntax of something off the top of your head but I do care that you know how it would work and what you would Google to look it up. Personally I don't know what it's like being interviewed tho. I've been doing contract work for my whole career and every job came from either talking casually or someone finding me with intent to hire me as long as I didn't come off like a maniac. I know for absolute certain I would fail any algorithm based whiteboard test (I never went to University) but if you're struggling to find employment, just know there's a whole world out there where people don't care about traditional software engineer interview strategies. They only care that you're dependable and can solve their problems in a reasonable and maintainable way.
- isitdopamine 5y agoRoughly: if there’s one job per person in the field, and for each opening there are 100 applicants, it will take 100 applications for the average person, on average to get hired.
- flashgordon 5y agoBecause we interview for CS and not software engineering? Software engineering is at the very least requirements understanding, customer empathy, resolving ambiguity collaboratively, and on a more technical side class/interface design, maintainability, tradeoffs, testability and finally the implementation. What we test for is 3 leet code in an hour and oh asking too many questions shows lack of independence! Worse interviewers often have a different interpretation of interactions as they present the candidate at the hiring committee!
- jppope 5y agoAs software developers/ engineers we love talking about this issue... but realistically it's just a symptom of the growth in our industry. Anyone who pretends you can accurately assess a candidate in 3 hours worth of interviews is lying to themselves. The only real way to know if someone is good is to work with them and get to know them over a long period of time. I wrote a little bit about this here: https://jonpauluritis.com/articles/a-better-way-to-hire/ https://jonpauluritis.com/articles/a-better-way-to-hire/. Practically speaking this means the best way to recruit is via "networking," but networking takes a lot more time than posting a job advertisement and having someone solve some leetcode questions. (related article: "Why Aren't Developers Paid MORE" https://jonpauluritis.com/articles/why-aren-t-developers-paid-more/ https://jonpauluritis.com/articles/why-aren-t-developers-pai...)
- wreath 5y agoAs of recently I started having really confusing opinions on the state of interviewing and our industry in general. Since there is no gatekeeping (for better or for worse), you get a large pool of people with wild variety of skills, so these silly interviews are the laziest way to assess people as an alternative to having credentials such as that of a Civil Engineer, Doctor or other professions. I don't know of any other industry where the interview is this silly, but studying for it for a few months top could get you a 6 figure salary (not everyone makes it, but the chances are quite high) if you know what you're doing/skilled enough. I started to play the game as well and actually got a lot better at solving this type of problems than say few months ago. My confidence is high and I'm a lot less intimidated by this type of interviews, but so is my I-take-no-shit-ometer since even if I aced some of these interviews recently and the interviewer(s) was/were acting in ways I didn't appreciate, I can just say no. I mean, I can play your game, but I'm not gonna put up with your shit.
- deeblering4 5y agoWhy is it hard? Because Google ruined technical interviews with irrelevant trivia and excessively long interview loops. For some reason a lot of the industry said "hey, if Google does that it must be right!" and they also started asking pointless trivia questions in very long loops. But why stop there? Let's build out pointless trivia as a service, and assign a numerical score to represent your ability to perform pointless trivia outside the context of an interview. I really think it's that simple. Tech interviews are broken and need to be drastically simplified. Candidates should be evaluated conversationally as humans and given the opportunity to learn on the job. It's a risky proposition in both directions, there's really no need for trivia, it doesn't prove anything (except act as a red flag for candidates).
- nickff 5y agoI agree with most of what you say, especially about simplifying and shortening the process, but I'm not sure about: >"It's a risky proposition in both directions" It seems like the worst case for the developer is that they get paid for doing nothing useful for a while, then have to find another job. The worst case for the company is that they pay out a bunch of money, and dedicate a variety of resources, to someone who delays a (hopefully non-vital) project. This is not a symmetrical proposition.
- deeblering4 5y ago> they get paid for doing nothing useful for a while, then have to find another job. That's true, but if they took advantage and get fired then they would have poor references and a spotty employment history, which will negatively affect getting another job (and would have been a factor in the hiring of the current role). So in that way there is an incentive for the candidate to perform well in order to maintain their career, and they do risk that track record to some extent when taking on a new role. It sucks for both sides if things don't work out.
- Areading314 5y agoI think one imbalance in the industry is that software engineers require years of on the job training to be able to independently get things done. In medicine this is also the case which is why doctors have to go through a residency. Junior engineers are kind of like hiring a resident and asking them for medical advice -- it'll work in a pinch but you really want to have at least one doctor in the room when making important decisions. This is also reflected in the salary. If companies understood this and gave juniors much bigger raises (really an annual market adjustment) there would be far less turnover and interview time wasting in the industry.
- munk-a 5y agoAt one point I was working in the gaming industry and really wanted out. I was talking to a hiring consultant and asked if it'd be helpful to give my notice now so I could be available for an interview at the drop of a hat... to which they responded "Hell no, not only will you put yourself at financial risk - it'll likely take you longer to find a new job." I've been unemployed and snapped up for a job before - but it was that gaming job and I wanted to hop over to a place that offered a better work-life balance. It's been my personal anecdotal observation (enough qualifiers yet?) that unemployed folks are similar to the last pear in the supermarket. Sure, that pear might look fine and be perfectly ripe - but two hundred people picked two hundred pears from a pile... and no one picked that one. When you are unemployed and looking for work I suspect you end up getting rejected by a number of places out of hand since, while there's no solid evidence proving it, you might have something wrong with you as an employee since no one is currently employing you. Once you've landed a position - especially if your LinkedIn shows several title bumps during your tenure - all the vultures salivate over how likely it is that you're a high value employee. With engineering in particular, solid reliable team-players are worth their weight in gold, and, from the outside, there is a strong perception of vast differences in employee skills that I think is mostly driven by the extreme wage disparities we can observe "Sure I've got Sharon and they're a really solid developer - but I only pay them 45k, those hackers in SV make 250k plus bonuses. I can only imagine how amazing they are!" I think this is somewhat further entrenched by the extreme role experience with similar problems plays - and the really deep levels of specialization we have in our industry. Database specialists are absolute wizards when it comes to database stuff and can resolve problems in a fraction of the time someone who's never touched a DB would[1] - and yet both of those developers might be employed as full stack developers. Engineering is really complicated and our field has yet to fracture as much as it really ought to into specialization - so the majority of folks dip their toes into a lot of different pools. This is totally based on opinion and personal experience but I think that specialization is what really makes it hard to "break in" to engineering - and that specialization makes overcoming the unemployed stigma even harder than in other fields. 1. This isn't an insult to the other developer btw - it's just a lack of experience and possibly a pre-disposition. There are plenty of people who are wizards with a database that will just fumble like they've never seen a lego before if given a ticket to resolve having to do with ops - or systems programming.
- dandersh 5y agoLooking seriously for the first time in a few years and it's shocking how much worse the process has gotten. I did a technical, live coding screen for 45 minutes. It went well enough that they were interested in moving forward. 4, one hour long technical interviews and another hour with management, all spread out over the course of a day. I'm already working full time with a family and I'm expected to burn through an entire day of PTO? And to add to it there was no response as to what would be covered during these 4 separate technical interviews. What's really maddening is that it's our fellow software engineers that are doing this to us. We're the ones that think it's okay to do "take home assignments" and essentially work for free. We know how awkward and stressful live coding exercises are but yet we do them. We value our time and work/life balance but yet think it's okay for every candidate to go through 3+ hours of interviews. The one thing that's helped keep me sane through all of this was having watched Jem Young's Frontendmasters course "Interviewing for Front-End Engineers".
- Justsignedup 5y agoPersonal advice from going on and giving a total of at least a hundred job interviews in my years: - no matter how desperate the situation, always treat an interview as a date -- you might meet some really interesting people, you might hear some interesting things, learn how different people think about problems. Or it might really suck and you can't wait to leave. This attitude works amazingly well. If you are happy to be there and talk, you'll have a good time, they'll have a good time, they'll like you, you win. - always think about how would YOU interview yourself. What info is useful for you to interview someone for 30 minutes and make a decision. Shadow some interviews. Your literal job as an interviewer is to get an understanding of the candidate. If you know what they want to know, just focus every word on giving them that answer. Any interview I ran where everything I was gonna follow up the interviewer mentioned intentionally, I was like "wow, okay cool you really answered everything I wanted to know, let's move on" and those interviews are really the best with time to just chit chat and get to know the person. This is also useful for understanding why they ask you questions, asking clarifying questions to make sure that you understand what they're looking to get out of you. There's nothing worse than losing 5 minutes to someone talking about something completely pointless during a 30 minute interview. "Tell me about a time you failed." "Oh I have plenty of those, but are you looking for say a failure with my team, or a time I crashed production, or when a project got really late" doing such a prompt instantly makes the question easier for you AND makes you look 100x better. - coding is a tricky one. 90% of the companies want you to code an okay solution, but they mainly want to see how you _think_. Like who cares if I can sort a billion numbers in memory in O(1) time, write a paper and move on with life, if I can't explain it to anyone I am useless to the team. Code out loud, just slowly solve whatever problem, and talk about the problems you're trying to tackle, what is important, what is not. If you mumble make sure to create "okay, I have a solution, I can walk you through it" because mumbling = they disengage. If you explain your strategy, it makes you look better AND if your strategy is flawed, the interviewer will often help or prompt "I really want to help but this is what I really want you to solve" and now their cards are on the table, you know what they want (see previous point). - learn to whiteboard at least a bit. You need to be able to explain your thoughts to other engineers. Sometimes pulling out a whiteboard is an amazing way to do it. Yeah its cliche but it really is a practical skill. - If the interview requires you to solve a complex mathematical problem perfectly on the spot or get out, you're either interviewing for FAANG (and have studied for a month or 3) or you probably don't wanna work there.
- ArtTimeInvestor 5y agoI think the concept of "getting a job" will go away. It is from an area where we did not have software and the internet to work together efficiently as we do now. "Giving you a job" carries work and risk. "Accepting a job" too. We do not need that type of friction anymore. I think systems like Upwork will become the norm. Where you just start working on some small task. Without much of an application. Without much expectation. Then both sides can grow together over time and work together more and more. To me, the old way of writing and reading applications seems rather insane these days. Imagine we would do the same for relationships. No more dating. Write and read letters instead. Then meet and talk once or twice and then BOOM: Marriage. Nobody would want that. I think we will abandon it for jobs too.
- kodah 5y agoI think SWE requires two things: - a centralized accrediting authority with uniform standards. - a apprenticeship model. An apprenticeship model let's you score folks while they're early in their careers and provides a standardized way to traverse levels of software engineering. This will show an engineer can write code. In my opinion, writing code is not the same as writing optimal code, and also isn't uniformly required. For finding people that can write optimal code you need someone with a more mathematics heavy background. That is where a centralized accrediting entity can determine that you have tested on algorithms, data structures, and how they are related for entities that need that. This differs from college because the standard is uniform.
- bmn__ 5y agohttps://news.ycombinator.com/item?id=27662804 https://news.ycombinator.com/item?id=27662804
- rdw 5y agoI currently believe that it is because software engineers are non-substitutable. The hiring manager is not looking for any qualified engineer, they are looking for a very specific engineer who is also qualified. Engineers also are not looking for "any programming job", they want a job at an early-stage startup or in an infrastructure team or to learn a new framework. This is true in many industries, of course, but significantly more so for software.
- theshrike79 5y agoNobody wants to hire juniors and train them to be seniors because there are very few incentives to hire them. Partly because projects are sold at such low margins that they don't allow for tutoring. Or the customer plainly states that they want 5 engineers with 10 years of experience each. It's a hard sell to make that 2 10 year guys and 8 juniors instead. Partly because the junior will bolt to a higher paying job as soon as they've learned enough. People don't stick with companies for the long haul like they used to. Even if the pay is good, people just get bored and switch jobs.
- SergeAx 5y agoWhiteboard interview is a non-specific skill for software engineer, but it is relatively easy to hone for any decent coder. Like a week or two 1-2 hours in the evening. It's like solving chess puzzles, and could be entertaining as well. I think that people who are ranting about "broken hiring process" are either mediocre coders or became old and ossified.
- lifeplusplus 5y agoGuys I've the solution.. Companies should do an ISA agreement. And see JR and interns as students. The new model works like this... - If you leave/fired < 4 months no responsibility. - If you stay after 4 months you agree to ISA agreement. - Agreement is that if you leave within 4 years you agree to share 20% of income up until you have paid $60k. - ISA is valid for 4 years. Then it's VOID. - ISA is also valid if you get a tech job.
- zcw100 5y agoBecause your premise is wrong. Software engineering isn't really in demand. It's a very dysfunctional system. I'm not even sure how you'd define "in demand".
- marcellus23 5y agocan you elaborate?
- sharadov 5y agoAfter being interviewed and interviewing the best course of action is have standardized exams akin to the GRE/GMAT, it's worked well for doctors, accountants and lawyers. Those professions are a lot older than software engineering. And once you pick candidates, bring them on board and have your behavioral/cultural interview to judge if they are a good fit for your team. Will save time for both interviewers and interviewees.
- bob33212 5y agoA lot of these jobs pay between 60-130k/year, have a very high preference for someone 2-5 years of experience out of college. That only covers a small percentage of the population. I used to fit that profile and back then, the minute I made any change to LinkedIn, I had people message me. Now people don't want to waste their time on someone that will be out of their price range or more experienced than their boss. FAANG is the exception, they seem very interested in scheduling an interview.
- phendrenad2 5y agoThere are two problems here: Getting your first software job, and getting all of your other software jobs. Getting your first job is harder, but for different reasons. You're an unknown quantity, and the only way to know if you're any good is to grill you on things you learned in data structures & algorithms class. Getting all of your subsequent jobs is also hard, because there's no way to know if you've been a stump who just sat there and collect a paycheck at previous roles. Perhaps the solutions are different too.
- the_only_law 5y agoSo I've had this idea for a little while, still extremely rough and potentially controversial, but I've talked to a number of people who agree. Its based both on my own experience as well as chatting with other developers. It seems to me, that there are "classes" of developers. This is not necessarily tied to market or ability, but those can definitely be be big contributors to which class you fall in. Prior to me entering the field professionally, blog posts, articles, etc. seemed to promise an easy six figure salary to anyone who could remotely code, smooth sailing after you get that first job and other highly appealing things. I have a good feeling a number of people on here would likely agree with this reality. For others I've spoken to, this was never the case. I never saw any of that personally. Reasons being both circumstantial and me not understanding the reality of things and being to quick to settle. I talk to developers from all categories: new grads in the bay area bragging about offers at companies and startups you've heard of, experienced guys in the midwest who claim to still be able to take home salaries unheard of in any other field, or guys who have a decade of experience, but struggle to find a role to pivot into, and all sorts of others. What always strikes me is they seem to live in different worlds. I had always considered local market to be the big differentiator, but the more I speak to people in the same market with wildly different experiences I start to question that. Particularly in this time where remote work should in theory expose more opportunity to people tied to local markets for whatever reason. Type of company seems to be the big differentiator here, and I don't mean in domain/industry or a tech/non-tech oversimplified manor. Instead of noticed personally, that the only companies willing to talk to me are very similar to the ones I've worked for in the past. This isn't even about the "stack" being used either, but more about the organization. Similarly people working in prestigious companies seem to be targeted by other prestigious companies. But the interesting divide to me is not upper bound/lower bound, but lower bound/middle bound. People who claim to be commanding impressive salaries while doing run-of-the mill, not particularly intense or specialized work at no name companies, but are talking about median salaries above what any roles I've ever seen is willing to offer. These aren't even in high CoL cities all the time, but the numbers I could likely get cap out at least a few dozen thousand below the quoted median salaries without moving into management. The problem of course, is when you're in the lower "classes" and want to move up. Especially at the experienced level, where you're expected in more desirable roles to have experience with X or Y, but the roles in your past never could have given you the exposure to that. The typical move seems to be to grind leetcode and pray you can get an offer through some avenue or another, but most people agree cold-applications are a waste of time, and the sort of recruiters you need are not the ones reaching out to you. Referrals seem to be the best shot here. Personally I never figured out networking. I've typically jumped more often and more quickly than my immediate colleagues, due to severe underpayment in my earliest years at places most people settle and become lifers. I actually enjoy discussing things like this, so if it doesn't get buried by the hundreds of other comments, so please tell me why I'm wrong/right/etc. This was probably an very poor description as the idea is still rather abstract up in my head.
- mrdoops 5y agoMore demand -> increased prices for developer time. Greater costs / impact / scale of software development -> greater risk to the collective stakeholders. Greater risk -> more potential for reactionary measures to implement more stringent hiring / control mechanisms. That's how you end up with many many interviews, lengthy code exercises, and huge opportunity costs for everyone involved. Consequently the same pressures would apply to software project management procedures towards growing complexity, and less agency/autonomy. Why does it seem like 'AGILE' often transforms into less of an idea of short feedback loops, context and communication and more into a bureaucratic control system? We implement control systems to reduce state space of unknowns / chaos and trade-off variance in favor of consistency. So if software in organizations is under high demand, increased cost, and greater risk it would also suggest likelihood of similar reactionary measures to implement control systems measures on software development as a whole. Consequently the ever present trade-offs of exploration vs exploitation or global vs local maximum would also apply meaning the reactionary measure of increasing control and consistency has side effects counter to its very purpose: improving software capabilities. Instead of increasing stringency / consistency through process/procedure also increasing cost of interaction one would instead want to reduce cost of interaction, but also reduce costs of downsides upon hiring (e.g. contract to hire + tasks to prove but where acceptability of failure is present). This has the added benefit of not accidentally removing "exploration" from the equation allowing higher risk higher reward employees into the organization which reduces risk of overfitting and innovator dilemma problems.
- hintymad 5y agoI remember someone on HN said a few years ago that $500K a year was a CEO's salary in a midsize company in the midwest of the US. Now imagine how long it takes a CEO to find a new job.
- robot 5y agoMy answer is that it is not in high demand at all. It is the news sites that tell these false stories for hype.
- spirodonfl 5y agoTop anybody interested, I setup a google form, completely anonymous, asking programmers their opinions on the interview process. I'm working towards building something better that is re-usable and makes life easier across the board. https://docs.google.com/forms/d/e/1FAIpQLSc8neScWE0-gmc00u1siQd7HIOAV_7iZHAq80CZg3SsxIyTOw/viewform https://docs.google.com/forms/d/e/1FAIpQLSc8neScWE0-gmc00u1s... So far, based on the responses, I'm seeing trends like: side projects barely matter, wages can be used as leverage to find better jobs, companies investing in your career are really important, etc... If I get enough data, I will post my results somewhere public and I will offer some packaged services to companies and developers alike that I think alleviates the issues we're currently seeing in the tech hiring process.
- lmilcin 5y agoI interview candidates regularly. Most engineers need no more than half a dozen interviews to get couple of options to choose from. Unfortunately, there is population that grossly overestimate their ability, don't prepare effectively at all and take as many interviews as they can thinking it is numbers game. Then blame "broken system". It reminds me when I went for exam for driver's licence. There was a group of people complaining at the examiner and broken system after one person failed their 27th attempt due to some "silly" problem like almost running a pedestrian. I had fun noting they already all know each other and then I passed on the first try. The people who complain the loudest are mostly ones like that. Clueless about what they are doing wrong, not willing to honestly retrospect and evaluate their situation, learn from mistakes. This is their modus operandi. If you always try to find external cause of your problem where a lot of other people clearly succeed, there is a systemic problem with you that prevents you from effectively learning anything. If this is you, I don't want to work with you. I want people who if they encounter same failure over and over again will eventually stop to think what they are doing wrong. Or who will not start by blaming compiler for their broken code (I had a coworker like that - total disaster). The first step to solving a problem is admitting there is a problem. The whiteboard problems we give are nothing out of ordinary. Unfortunately, they are also biggest filter as a lot of candidates who seem to know basics of Java can't write a simple function to specification. I understand some are due to stress even though I try as much as possible to relieve stress, give hints, etc. My boss once tried to listen to popular "advice" and get rid of whiteboard tasks. The next two hires were total loss and we had to fire them within 6 months. We are again giving whiteboard problems.
- loftyal 5y agoWhile I agree with you that theres a few like that, you have forgotten about the candidates that genuinely don't want to spend their spare time grinding leetcode. I worked at facebook, when I started looking for a new job, I had to start grinding leetcode again to prepare for a new job. Take a step back and realise how ridiculous this is. Big companies that have prestiege and pay alot of money use it to eliminate false positives, not to actually recognise true positives. If your at a big company that can afford to throw away many true postives, sure use leetcode, but the rest are hurting themselfs by blinding following the mantra of FANG.
- jackblemming 5y agoSoftware developers are like studio musicians. In software hiring, we evaluate them as if they're stage musicians. Now clearly a lot of stage musicians can do good work in a studio, but you're throwing a way a lot of talent by doing this. And if you're competing with FANG, this might not be a sustainable thing to do.
- rsanek 5y agoI feel like a crazy person but this comes up so often and it seems to me like the answer has never changed? We don't have a lack of software engineers, we have a lack of qualified/competent software engineers. If it's difficult for someone to get a job in that area, there is at least some likelihood that they don't happen to be in the category of folks that are in demand.
- user_named 5y agoI think hiring processes fail when they tro to do the impossible: predict future performance of a candidate. And many processes do this. You need to be okay with some risk - so thankfully there are high-growth startups that hire less discriminately in order to scale (though of course this comes with other trade offs).
- mbrodersen 5y agoInterviewing is a numbers game. A large percentage of interviewers are incompetent and/or more interested in showing off than hiring. So keep rolling the dice until the stars align in your favour.
- berkeshire 5y agoThe interviewers want to prove how much more they know, as compared to the candidate. Or worse, they have one optimal solution in mind and anything else is a square peg / round hole. Ageism is also a factor with some age cohorts preferring to hire within their age groups who play with their cohort's favorite tech-stacks. A badly behaved interviewer - arrogant, rushed for time and treating the interview as a nuisance, egoistic - all of these make it harder for candidates to get a job. Data point of one: I have faced the worst lot of interviewers in startups and Unicorns, and have had the best-behaved and reasonable folks in FAANG companies.
- mbfg 5y agoif you are interviewing with a global company you also have to realize you are competing against potentially cheaper regions. If two candidates are anywhere close to similar levels, it may be that one candidate can be hired for drastically less money due to region. If you are living in a generally expensive region, this may be affecting you.
- sandos 5y agoIn Sweden it has never been hard getting a job as a developer, as far as I know. I have never had to do gruesome coding tests. Just very small ones. Say, finding syntax errors in a page of C++.
- Blackstrat 5y agoHaving recently retired, I suspect I’m a bit older than most of the people here. I began my career in the early 80’s as an entry level developer at a large company. Eventually, I chased the money into management. In those days, we tended to hire talented, motivated individuals. As time went on and the Internet became more prevalent, everyone who had ever built a family website in FrontPage was marketing themselves as programmers. As the Internet matured, the diversity of technologies proliferated. Now senior management was telling those of us in the middle ranks to hire specific skill sets, e.g. Rails. The problem was such resources tended to be scarce and expensive. And even graduates of boot camps and weekend warriors who had crunched through a couple of Dietel & Dietel or OReilly books thought they should be paid $100k+, regardless of experience or the local market. Enter the off shore providers: Infosys, Cognizant, et al. They offered senior management what they sought - specific skill sets at bargain basement prices. And senior management at many commercial firms went all in on the offshore/outsourced model. Disney is one of the most egregious examples. Up until the last two years of my career which were spent working at a startup, I was in management at a large Fortune 100 company. This company spent 9 figures, never delivered a product, and eventually sold off the division. At one point, we had 100’s of offshore developers. In the startup, we dealt with the same issues. Senior managers often read literature targeted to their level, i.e. marketing. Hence, micro services and the cloud were the big thing when I retired. At our startup, neither was necessary for the market size and scale that we were targeting. We hired a younger architect who had the lingo nailed and told the CIO what he wanted to hear. Finally, they bought me out and I retired. They still haven’t brought the product to market, now 18 months after my departure. So, at least here in the States, we have an expectations problem and a lack of engineering discipline. Is the technology proposal appropriate to the opportunity/problem? Often, it’s not and the failures are costly and all too frequent. Retirement looks better each day.
- danielyaa5 5y agoIt’s because they pay you a ton of money so they want to feel like they didn’t make a mistake
- jimmont 5y agosoftware engineering is decades behind other engineering disciplines; it's in the phase of elixirs, etc; that's why it's "so hard" because the industry is optimized around various insular self-reinforcing patterns; like recruiting practices in the movie Moneyball;