Brief thoughts on getting hired as a senior coder
medium.com
medium.com
Why would you ever do that? The whole point of sending over code is so that they assess whether you can write understandable code. I don't know what you have to benefit from this.
> I sent over some different code, it was a 5 line code change that halved the average response time of an API. But I also said you know, I’m not interested in auditioning for you. Either we’re a good match or we’re not, but I’m not particularly interested in being “grateful for the opportunity to apply”, frankly I think you should be grateful that I took a few hours out of my day to explore whether we want to build something together…
Why would you even? Just why?
All the shittiest managers/administrators I’ve met spend a lot of time talking up their “opportunity” and putting down the candidate/employee. It’s just grade school level manipulation from emotionally stunted adults. But if OP was fishing for it to prove a point that’s immature.
Candidates shouldn't be groveling on their knees, and any hiring manager who expects that should be avoided at all cost, because they're selecting on willingness to be abused. But it shouldn't be the other way around either; hiring an asshole is not good for the company.
I'm happy to talk about code I've written, or pair or walk through complex code in an interview, or refer you to my github, but if you ask for a link to a small amount of code in your application that "makes you proud", I'll send over code that made me proud for some reason whether or not it was technically 'good code'. I explained my reasons in the application. I stand by it as code that would have been a good indicator to me of someone's ability to problem-solve if I was on the hiring end.
The second one was basically a "not interested" note, yes. I'm not going to just accept a power dynamic where someone tells me that they already have significant reservations about me, but they are going to 'give me a chance to impress them' - if other people don't mind wooing hiring managers that openly flaunt power dynamics like those, more power to them.
There's a big difference between saying, "Hey we liked you and we also want to talk through some code you've written that you are very technically proud of, let's set up a video chat" and what was said here.
Hard to have sympathy with this guy, as a result.
Note: I got feedback from everyone I did an in-person with (3, this time around)
The only feedback I wish I would get is yes or no. I hate being lost in the ether.
"Each of those four wire-to-wire interview processes took between 40 and 60 hours"
..ok?
>#2) Tech interviews are just stupid broken [...]
..ok?
>I was /never/ offered feedback. Not once! [...] This sucks.
You're talking senior positions. A senior, just going by semantics, should be very aware of his standing, and what recruiters want to see for the specific position he wants to be his job. If you have questions, ask the recruiter, that's appreciated. Why should they spend money on the time it takes? For the luls? When you don't even ask for it? You tried senior and you didn't make it. Either you didn't know about important criteria, or you didn't meet them, in both cases you're just not there yet.
>#4) Recruiters are absolutely useless, unless they are good, and then they are gold. Not much to be said here, general recruiter model seems to be throw all your jobs at every applicant, see if any bite. Throw all your applicants at any job, see if it anyone gets hired. Keep commissions if it works.
the entire paragraph is hot air
>#5) Not publishing salary information sucks. Asking someone what they expect to make without publishing salary information double sucks.
If you don't know your value, you're not worth the value they'd be willing to pay if you did. It's not rocket science...
>#6) Weed out the jerks early [...] CTO wrote back and said verbatim, “I honestly wouldn’t have written you back, because the code you sent over is terrible. But my team liked some other things about your resume so I want to give you a second chance to impress me. Can you send over some different code?” [...] And he wrote back and said basically oh I’m sorry, I thought I was clear, I have 50 resumes on my desk from the best CS schools in the country, you went to a boot camp, you /are/ lucky if I decide to interview you. And I was like, no thanks! Can you imagine for working for that guy if that’s how he treats candidates?
guy was honest with you, gave you feedback you did't want to hear (heh, #4) and made sure that you would't waste even more of his time (due to complete lack of context-awareness with respect to the position and concurrence), while still giving you a chance, because some people in his team were interested. bruh. this is the best imaginable case. get a grip
I disagree with this. Knowing your value requires access to information. For many people, this information is obtained informally, through connections. But this puts people without connections, who were at a disadvantage anyway, at a further disadvantage.
Information should be free, but shouldn't companies be free to
a) negotiate in their own best interested
b) use NDAs?
So you're asking what is, to me, the wrong question. To me, a more valuable question to community, society, and humanity is "why are we not putting them in a hammerlock and demanding decency?". Like--is there economic benefit to hiding this stuff from workers? Or is there greater economic benefit to at least some significant level of transparency with applicants and with workers after they're hired?
My guess is that that transparency is of significant social, as well as economic, value.
Not for information that shouldn't be secret. You use NDAs for trade secrets, not for mere salary information.
it all depends on the world you want to live in and who gets to be empowered.
more sugar:
>#8) Last one — always trust your intuition and get in there and really talk to people. [...] The job I took — on paper not nec a match for me and glassdoor reviews were also not encouraging to me. But every time I talked to the engineering manager I was like hmmm, I kinda feel like this is a good fit for me. I’m not sure why yet, but my spidey senses say lots of green flags.
"Ok, so I have no numbers on applications, but its 20+. I have very high criteria, I'm selective asf. No one talks back to me, they're all super rude. But now I've got a job. Ok, it doesn't meet my criteria, and yeah, bad rep on glassdor, but my spidey senses say we're cool. #alwaysfollowyourintuition"
this should become a copypasta
Alas, writing a blog post about how nobody will hire you and give interview feedback is a sure-fire way to get an abundance of unwanted interview critique for an interview you never did. If I ever find myself with an over-abundance of faith in humanity, I might just do this with a fake name, email and CV and see what gems of human garbage get thrown at me.
On the upside, I'd like to take this opportunity to say that #3, #4 and #5 are absolutely on the money, and all boil down to ease (or, depending on your bias, laziness). It's not easy telling someone their faults - unless it's in an anonymous email to a random stranger on the internet, clearly - and it's far easier for a recruiter to throw cvs / job opportunities everywhere and see what sticks, than to actually be careful and methodical.
You mentioned it's a lot like dating; essentially, many recruiters are the equivalent of those dating gurus who show you how to become an alpha and promote a mixture of negging and other horrible practices; it works based on percentages, not based on content. If 1% of potential partners have low enough self esteem, and you attack 1000 people, you're almost guaranteed to find someone. Lose your soul, find a bed-buddy. To some people, that seems like a good tradeoff. If you spam enough people about your opportunity - often at no cost to yourself - you're bound to get one hit, often at significant profit.
I'm afraid this is never going to change; hedging a critical message so that it doesn't hurt someone's feelings is hard, especially when there is no incentive; letting someone know your budget for their role and missing out on an unreasonable bargain is hard, especially when there is no incentive; and putting real work into recruitment when email spam is just soooo easy is hard, no incentive.
Our only option is to be the change. I'm lucky that I work for a company that values giving recruitment feedback; when people I know well broadcast job opportunities I encourage them to publish a ballpark salary; and when I find a good recruiter I broadcast them far and wide and review them positively on LinkedIn. It might not change the world, but it might help a few.
Programmers switch jobs frequently, and the startup world especially is still a small place. Word gets around about your company culture, the way you hire, the way you fire, what you pay, etc.
Programmers have hiring power. Especially senior ones with a lot of demonstrated experience. That doesn't mean you deserve to /be hired/, that's not what I was trying to say. It does mean you will /get hired somewhere/, so if you are not under immediate financial pressure you can afford to both be more selective and push back against crappy hiring practices more than other professionals/industries.
--
Re: the emails, I can't prove causation, I only know that the moment someone decided to point towards a /person/ that it went from comments /here/, to bizarre anonymous emails attacking me for being an overly-sensitive whiner that probably can't code and that's why I didn't get hired. Which is fine, we all know the internet is a shitty place these days, but it just seems like such a /strange/ reaction to me.
Agree or disagree with the idea that employers should offer prospective employees money for take-homes, or more feedback, or even whether you should tell a jerk to go shove it.
But what is the emotional urge to somehow align current hiring practices in the tech industry with some kind-of, let's be honest, masculinity and toughness and if someone critiques them, they must be #1) a bad programmer, #2) a wimp, and #3) dumb.
I truly don't understand, but honestly, I don't want to put that much effort into it. These days it's easier to block than to empathize, on all sides, and that's a little sad.
I just found the first resume that google returned that was clearly yours. Not that you have to care about random google searches, but you might want to consider taking down your old resume.
What do you mean "not including current job"? This resume clearly says 2014-present.
Do feel free to ignore me, I'm not really trying to force you to explain yourself here if you don't want to.
I have like 19 more projects I'd love to get on the site as well. Cobbler's kids and their shoes and all.
I'd love to ignore you, but when you dox someone with a throwaway green account, presumably to throw some shade on them not being a "true programmer" and they get a bunch of obnoxious emails first thing in the morning, I kinda gotta deal with it.
I've posted all my contact info in various HN hiring threads, so I'm not exactly anonymous here, but making an account to post old resumes just to make some sort of point about my experience or lack thereof was kinda bad form in my opinion, and maybe you should look into your own motivations for doing so for someone that just wanted to vent about how grueling the hiring process can be in tech.
Of course there is a difference between really great and average recruiters, and of course the outreach is almost spam. That doesn't mean they're useless though, think of them like fishnets dragged around, except the fish can decide to leave
Oh, I have enough recruiter emails to write a blog post on how it's objectively bad. Any attempt to hire someone is going to need to cover at least a few things: What am I doing? Who am I doing it for? (and maybe, what do they do?, since SWE is usually combined w/ some other industry) How am I being compensated for that work?
Now, I "get" that many companies seem to like to withhold compensation information until the last possible moment so that we can try to negotiate a candidate as close to 0 as possible, so I don't really expect to get all of that information in the first brush. But half time time, I get none of it, or nearly none of it. E.g.,
> Your profile seems to be impressive for a [senior backend SWE] with our direct client in [location I am not interested in, which is mention in the LinkedIn profile the recruiter is coming from], If interested, please do respond with your contact details.
That's the whole email. We got like… half a role. Okay, Senior SWE, backend, but that's basically my résumé. What does the company do? What industry are they in? What is the team working on? What might I be working on?
Alas, it's not even geographically relevant, despite LinkedIn having that information in a structured format, so, it's not relevant.
Lots of talk about unicorns and VC funding though.
This is the reality in $CURRENT_YEAR and it needs to be dealt with, not bristled at.
I see no reason to not bristle at piss-poor social conventions. Sending a "Thank you for your time. We will not be moving forward with you at this time." doesn't expose you to a single iota of risk.
Though if there is a silver lining, a company not deigning to extend a simple courtesy is a strong signal that they are a shitty group to do business with so it's likely for the best.
But yeah, real feedback is never going to happen for the reasons you mention.
Too many things will go wrong when you provide precise feedback.
First, most people don't react well to negative feedback. The natural reaction is to get defensive.
Tell one person you felt other candidates were stronger in XYZ: they get back to you with arguments and examples that shows that no, actually they know a lot about XYZ. Ok, you're nice, you take a look again. Then you decide their XYZ level is still not up to par and you thank them for their time. Once in a while, someone will not give up. They'll argue with you forever. Until you stop all forms of communications. Only a minority of people do that, but out of the one resume a day you receive, you can be sure to hit this problem almost weekly. So you learn to stop giving feedback. And of course, once a year, you have the candidate who threatens to sue because your answers show that your hiring process is biased/unfair.
We'd love to give good feedback. Others ruined it a long time ago for everyone.
If you tell me, "Hey, thanks for spending so much time with us, the team really loved talking with you, and we were super impressed with your experience in X and we were really impressed with your take-home and the way you dealt with questions about why you decided to go with the architecture that you did. It was a really hard decision, but ultimately we decided to go with someone that we felt had a bit more familiarity with Scala and also had more client-facing experience because it meets our current needs. We'll each out in the future if we think there's a mutual fit, otherwise best of luck in your search!"
That may be mostly bullshit, cause there are things you can't say, but at least it helps me hone in on either areas where you were looking for something I wasn't, or areas where I might be able to improve. Maybe I get feedback from 3 or 4 places that they want more experience with scaling issues so maybe I spend the next 6 months trying to hone those skills.
I really don't think it's hard to offer actionable feedback, as I've done it for every person I've ever interviewed. I'm not gonna tell someone I thought they were annoying, or underprepared, or grossly over-represented their abilities, it's not a perfectly honest feedback system, but i I liked someone enough to spend multiple days with them, I'm certainly going to try to offer them something honest that I feel would make them a stronger candidate, for another company, or for future-us.
Why are you burning candidate bridges to someone you clearly liked enough to spend over $10k and lots of time interviewing by sending them a one line canned response?
I would probably not respond at all to a candidate trying to argue with why they got rejected. Just radio silence.
which says a lot about their hiring process.
And that's not even getting into the people who are willing to go down to corporate HQ with an AR-15.
Ghosting has become acceptable in recent years as a personal safety measure -- in dating, too. It's important not to get too offended by it.
Has that ever happened?
Whenever I see people defend the current practice, they tend to back it up with anecdotes like "I once had a technical manager who couldn't code his way out of a wet paper bag","We once got this fresh CS grad that couldn't even write basic control statements, ridiculous!", "I have a co-worker that can't code".
I'm not sure why this field is more affected than any other I've been in. Other than "tech", I've been in regular business, and in electrical engineering (at big global corporations) - and the technical grilling is absolutely nothing like what you see in coding-focused tech.
I think technical interviews have their place, and are legit, but not when they're being used the wrong way.
Some guy breathing down your neck while expecting a 100% correct recital of some esoteric data-structure or algorithm, for the sake of correctness, seems like a terribly flawed way to go on about things - yet it's something you can expect to experience in this industry. Reminds me more of quizzing than interviewing.
So yeah, that's my observations on the current atmosphere. There are good companies with good practices out there, but sadly a ton of low-effort stuff that probably hurts both parties in the long run.
On top of this, the criticism regarding how the author is self-unaware (I don't entirely disagree) seems especially misguided because often how self-unaware people become self-aware is through constructive feedback. With that in mind, since the author seems to be here, the one piece of feedback I have is that:
"I sent over some different code, it was a 5 line code change that halved the average response time of an API."
I don't know if the author was at this point interested in the job or not (if this was a joke, please disregard) but some clever 5-liner is extremely unlikely to impress anyone looking for a senior engineer and is impossible to evaluate in isolation. Also most of the work involved in "halving the response time" - again, assuming a reasonably complex system - is identifying where the bottleneck is, not writing the simple fix to address the issue that was discovered. You're expected to write substantially more code than that even in a 30-minute technical screen. When people are looking for code samples (again for a senior engineer), they are looking to see the ability to design and organize larger chunks of a system, make trade-offs between different architectures and ability maintain good code hygiene over a larger sample and so on - providing a 5-liner raises more questions than it answers.
There is an oversupply of developers generally and an under supply who know your exact stack.
A few interesting things happened this interview cycle: 1) I actually did get feedback, at least from the companies I had an in-person with. I think I managed that by enthusiasm and friendliness during the interviews. But, a bunch more didn't give me any feedback and barely told me that they weren't progressing, which sucks. AngelList itself was actually one of them. Penultimate communication was "we really liked your takehome", next communication was nothing, but when prompted they said "actually no" and nothing more. :/
2) I was asked to write a lockable node tree as part of a remote screen-share tech screen. I wasn't too excited about the job, so I felt like taking a risk and pulled out a line I'd wanted to pull out for awhile: "If this is the kind of work I'd be doing, I don't want this job. How about we switch to something more like what I'd actually be doing?". Still wrote the code, and did get a call-back, but by then I'd found something.
3) During an in-person tech screen, they asked me to implement something I'd already done as part of a different tech-screen, so I just pulled that up and we went from there. It was fantastic. That one ended interestingly; I get "we really like you and would want to hire you for a position we don't currently have but we don't have that position yet" rather more frequently than seems reasonable.
For my current position, I had a half-hour phone interview, then a 2 hour in-person interview. My previous job was about the same.
For out of town interviews, I've had to fly out the evening before, then a whole day process, so maybe 30 hours total even if you count the time I spent asleep in a hotel. I have never had a process take more of my time than that.
Also, funny what is considered (or at least how one considers themselves) senior now. 15 years in and I think of myself as mid level.
> "Senior Coder" His education and experience puts him on verge of Senior, but I'd go in expecting not a lot, and probably focus on throwing shit from right field at him and seeing how he react and learn on the fly. The blog post strongly implies he'd just angrily hang up (which is actually rare!)
Also, "Coder"? I can see he went from design to PHP to Ruby (via a bootcamp), so I can see why he uses 'Coder' here. I don't want 'Coders', though. I want people who can deliver well architected full stack solutions while being able to mentor junior devs in the process. The article and experience leaves me pretty low expectations of that.
The simple fact is that it's WAY WAY worse to hire a bad fit than it is to let TEN great devs walk away.
This simple statement sums up so much of what is broken about tech hiring. Everyone prides themselves on how they take smart risks and how entrepreneurial they are, and how they “fail fast” and “explore.” Yet when it comes to hiring, all of a sudden it’s “OMG we have to be super conservative! We can’t fire people and one bad hire could ruin us! We must reject 99% of candidates because Risk.” What happened to being bold and risk-taking?
But, good/great devs only want to work with good/great devs. You get a bad fit in there that manages to stick around, and your good/great devs start to leave. Then you end up with either only lesser devs or a bunch of devs that hate each other.
Even if feedback in a single case isn't actionable, one can imagine that in aggregate it could be. If during discovery lawyers can find certain themes/patterns in the feedback offered to rejected interviewees, they might be able to use that as evidence. Perhaps I'm paranoid, but my wife's a lawyer....
Aside from that, in simple economic terms, offering feedback makes no sense. After all, if it helps rejected candidate, you're basically helping to improve someone who may end up working for your competition. And if it doesn't, you're wasting time. I'm not saying "in economic terms" is the right/only way to guide behavior, but if you want to understand the behavior of most companies, it's something to keep in mind.
Wouldn't it save time and cost overall to hire fast and fire fast? Make it very clear that your first two weeks are a vetting period and your first 6 months are still probation?
Maybe I'm cynical from watching SCO v IBM (still not over, after 16 years, even though SCO never really had a case), but my perception is that you can file a lawsuit without a case. You just have to, in your initial filing, give the appearance that there might be a case.
What people forget about is the social capital you gain/lose. If 50 people come through your process and you give no feedback, they'll tell their friends about your weak hiring practices and that alone will cost you candidates.
If you've already put in many hours to interview someone, taking 30 minutes to explain some areas of improvement or why it wasn't a good fit is a very valuable thing to do for your business in the long-run.
And yes, I do think you lose the opportunity for someone to reapply to another open position (or refer their friends) which is a shame, because presumably you thought this person was a /strong candidate/, they just didn't quite work out at the end for some reason.
Which examples demonstrate this?
> CTO wrote back and said verbatim, “I honestly wouldn’t have written you back, because the code you sent over is terrible. But my team liked some other things about your resume so I want to give you a second chance to impress me. Can you send over some different code?”
So you did get feedback, but only from the company you decided to be a jerk to.