Hiring Developers: How to avoid the best
getparthenon.com
getparthenon.com
My company works with a bunch of not so mainstream APIs so if I just waited for experts in everything we work on, I’d wait forever. I’d rather hire good, smart, people and then fill in the gaps in their knowledge. Smart, hardworking dedicated employees are much harder to find than leetcoders. And they learn really quickly with a lot less attitude and grandiose opinions of themselves.
Have you ever experienced what it's like to try and hire decent developers or are you only offering the candidates' point of view?
In my experience more than 50% of the applicants who make through to an interview are the kind I describe in that first sentence.
The real world problem most of the time resembles understanding instructions, navigating in an existing codebase, implementing some feature. This gives really good insight into how much they've built, how much they know or how much potential they have - for example if they are unfamiliar with some things, they are always allowed to Google and if they do it efficiently, that's very telling about their potential.
With Leetcode you won't know whether the person has actual skill or experience to build something or they just practiced Leetcoding for 6 months straight.
The only people to ever write a merge sort are either in/preparing for an interview, and John von Neumann.
If someone can fizzbuzz with a for loop, recursion, and a list comprehension, they probably know enough of that language to do your junior/mid-level job. If they get a problem they don't know, throw their hands in the air, slam their desk, and start crying, you may not want to work with them.
That should be the goal of interviews. Not flexing obscure language details or academics. You need to see if you can tolerate/enjoy working with this person, and how they handle a problem they don't understand. More time on the job is spent trying to figure out why this API isn't working, and discussing solutions, than writing sorting algorithms
...
"Most of the time in the interview, though, should be spent letting the candidate prove that they can write code."
- Joel Spoolsky, the Guerrilla Guide to Interviewing
...
" If they get a problem they don't know, "
Well they should be leeting on something at least a tiny bit novel in the first place, not over the top algorithms, but something that requires a bit of thought. No trick questions needed, just something a bit open ended.
[1] https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guid...
I guarantee an engineer sitting down with a candidate for just 15 mins will gather way more impactful, insightful, accurate hiring information than any hours-long Leetcode obstacle course ever has or ever could.
An hours long leetcode assessment is not the answer, but you need the candidate to have provide proof that they can actually code, and "having a chat about it" doesn't prove it.
You need them to write some code AND have a chat about stuff.
I couldn't bluff my way through an interview with a senior C sharp developer, and if I'm interviewing a Go or Typescript dev I can tell within about 2 minutes if they actually know the language, and within about 10 how well they know it.
I'm not sure what else the practical code test tells me, apart from how much spare time they have.
You're not getting the point.
There are plenty of people with years of developer experience who can talk about things for 45 minutes, quite thoughtfully - and are still terrible developers.
Talking about music is not making music.
Nobody has the ability to judge the quality of a developer after only 10 minutes of talking to them about Typescript.
Knowing some arcane things about Typescript is not a measure of problem solving or coding ability.
"I'm not sure what else the practical code test tells me, "
It tells you something more important than how much they've read up about Typescript.
Typescript is simple / accessible enough, that I wouldn't even care if someone was familiar with it. I wouldn't even make it a requirement for the job even it was a TS focused job.
I would take a 'great all around dev.' any day over someone I knew to be very knowledgeable about TS but otherwise big question marks about their development ability.
Of course, the same holds true for memorizing algorithms - it's a nice signal that someone can do some fancy B-Tree stuff off the top of their head, but not really what you are looking for so interviews shouldn't be focused on that.
Typescript and most of it's best practices (most of the odd corners of TS are not important), can be taught very quickly to any decent dev.
Well that's what I don't think you get much in a tech test.
Not many tech tests probe your ability to understand business requirements, nail the acceptance criteria, work with others to develop test cases, or even demonstrate ability to integrate with other services.
Those sorts of skills are what set experienced devs apart from bootcamp graduates IMO. And those sort of skills are easier to talk about than to demonstrate in a single time limited test.
I'm not aware of any company that does that, but I may be corrected...
90 something percent of people on earth will never be able to do any of that.
That's setting the bar pretty low.
If the candidate is from a serious institution he should be able to manipulate more complex data structures.
Do you mean "for the first time and without errors"? I assume that most people should be able to give an overview of how a merge-sort works, and a pseudocode implementation.
Something that will never be needed in a career can hardly be called "fundamental knowledge".
I don't remember anything about how merge sort works. If someone wanted to interview me on that, they'd convince themselves I can't code, despite decades of delivering production code.
> If the person you're interviewing went through college it should be easy.
I did study CS in university. A very top CS school, even (CMU). Probably I must've studied merge sort at some point, but the last algorithms class I took at CMU was almost 30 years ago. Not once have I needed that info since then, so it's long long forgotten. Its relevance to a software engineering career is nil.
That’s fine if it’s relevant to the role. But my understanding is that a lot of those interviews, especially at the higher companies require you to get it right, quickly, without issue, under interview pressure. And if you don’t you probably won’t make it past that stage. Also don’t bother trying that stuff for typical CRUD roles at corps that won’t ever require anything those sort of skills, and yes that’s likely. I’ve been in environments where even if strong CS fundamentals could improve the product they won’t let you because it’s not a priority.
Leetcode, far from silly, is far more likely to get an idea of whether or not they can do the job ahead of them.
Joel Spoolsky speaks to this directly: get people to code.
In my younger years, I noticed that there was zero correlation between the quality of code of all of my mentors/seniors and their work ethic, composure, communication skills etc..
Great, thoughtful organized thinkers who could barely code. Great leaders with lazy schleppy code. Obnoxious weird guys obsessive over absolute perfection (to greater or lesser extent).
Leetcoding on completely irrelevant or arcane things is a waste of time, but given a very straight forward, general problem which 'homework' wouldn't have helped with - works well.
A big misunderstanding about leeting is people think that the problem being solved is 'test worthy', like an exam - and really it shouldn't at all.
The other issue relates to people's ability to slog through documentation and find solutions to tricky problems because that's what we do 1/2 the time but is harder to test.
Someone who can take basic requirements, understand them, communicate the tradeoffs, and write something approaching 'clean code' after a couple of iterations - that's worth gold. It also requires kind of a 'rounded experience' with a bunch of tech so that they have at least a bit of intuition for it.
I honestly feel the best devs are not the one's extohlling some kind of genius, or deep knowledge, but rather more of an 'extreme common sense' where they can absorb all of the fuzz of a situation and produce something simple and coherent.
I feel the 'personal' issues relevant will also come out well enough during some basic leeting, though obviously that part of the interviewing has to be done.
If the contention is that Leetcode measures the bare minimum, the lowest bar, the 100-course material, then what does that say about the people who are being hired? An interview should be far more nuanced and compassionate than that.
Spolksy articulates it well here [1]
"Engineers are perfectly capable of walking through a problem with a candidate and almost immediately measuring their ability in how they approach it"
Software is not Engineering in the classical sense, and almost zero software is Engineering, and almost zero developers have a formal Engineering background.
The material reality of Software is understanding problems spaces and producing coherent solutions, sometimes at different scale, sometimes using different bits of tech, but a degree of coding ability is definitely a necessary aspect.
So if we adjust your statement: 'Only a developer can judge a developer' - of course - that's the point of leeting.
In what scenario would 'talking' in abstractions about something be more useful than 'actually doing it'?
Coding is a huge part of the job. Of course, it's not everything, and some devs. may have really strong skills and yet a narrow view of things, but that's actually easier to change.
Getting along is important as well, so that's why we have an interview ... but there's no avoiding leeting/close whiteboarding.
[1] https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guid...
The biggest hires, like Microsoft, Amazon, etc - are fine with this. The core of the problem is companies become Uber corportizized, entirely separating employment from the work being done. Where HR are filtering resumes based on criteria they learned in university that applies to traditional jobs like accounting. Big corporate works despite inefficiency, due to economy of scale and control. Therefore they will wait and wait, and if they can't find a "senior full stack programmer 20 years in rust", then no matter - they'll just up the work on current devs and ultimately let the project fail because they can.
I sent out exactly one copy of my resume to a company that I thought might be interesting to work for. Otherwise I just responded to LinkedIn recruiter requests.
In the time it took that one company to get back to me at all, I had landed a job and was on week 2 of 3 weeks notice.
Move fast matters.
My resume at the time wasn't as impressive but I was obviously more than qualified for the role and they were unable to fill the role for a year.
I, or somebody else on our team, look at every single CV/resume that comes in, regardless of whether or not the HR team have looked at them.
We also aim to respond to every single applicant (i.e., beyond the initial automated acknowledgement), even if it's a straight no thanks. Every now and again somebody will slip through the net, but that's a mistake rather than the norm.
Lots of companies don't do either of those things. In their defense they probably get a lot more applicants for their roles, which makes it harder to keep on top of. Still, with half-decent modern ATSs it's generally pretty easy to quickly review and either reject or progress applicants, so it is infuriating if you apply for a job and just hear... nothing.
Another thing we do that a lot of companies don't is give feedback for applicants we've interviewed who haven't been successful. You know, sometimes it's the case that someone was decent and there wasn't anything specifically wrong, it's just that we spoke to someone else with more experience, or more relevant experience, so they didn't get the job, but we do try to give (hopefully) helpful feedback to rejected applicants as often as we can.
Occasionally that bites us in the ass because somebody will argue with the feedback, but not often enough that I'd want to stop doing it. The point I always try to remind people of is that they're never interviewing in a vacuum: we always have a cohort of applicants to consider so, whilst you might disagree with us that X is where you fell down in the interview, we're seeing that in the context of talking to half a dozen others about X, and how they performed, as well.
It’s all referral or brand name (Stanford, mit, FAANG). If you didn’t go to a famous school make friends with someone who works where you want to be and get a referral through them.
One of the other employers who interviewed me had not contacted me for a couple months. Then, out of the blue, they contacted me again asking if I'd like to continue the interview process.
Unsurprisingly, I turned them down. I was already a few weeks into my new job. The long delay gave me a bad impression too.
Literally months later I then received about 6 interview requests! It blew my mind how so many companies were months behind.
On all occasions, a recruiter from Ebay reached out a month or two after I'd started my new job to ask me if I wanted to interview there.
Also a reasonable strategy for dating, I suppose.
Are you joking? I’m married with kids, and I’ll be lucky if I have a few hours of the week to myself.
I don’t mind that, but beyond my unwillingness to grind leetcode in general, I wouldn’t have any time to so effectively.
The selection bias for young, smart, single unattached people is incredible.
Of course, that’s exactly the kind of people that’ll happily stay and work overtime too, so I can see why a company would like the idea of that.
For their sake, please don't. It's not worth it.
This is for a job that pays 450k+. Do you really think you’re gonna be handed it with no effort?
If you want a mediocre job, then there’s plenty of companies you can get hired at with little effort and you’re welcome to work at those companies. Just don’t be surprised if you make 1/3 to 1/4th the comp.
Because it’s a job that pays that amount, I kind of expect their hiring process to select for the best. But it doesn’t. It selects for those with an abundance of time on their hands.
Or maybe it does, I haven’t tried.
I strongly agree with your point about bias. When I was not a father, I spent a lot of time studying (and passing) AWS certs and reached the point I got all of them. Now? I am happy when I read few blog posts each week and, very often, it takes several attempts to be able to fully watch a single re:Invent session.
"Yes, but you are reading and replying to comments on HN!"
Indeed, with my baby in my arms haha!
I'm slowly coming around to the view that the widely accepted process is ageist. Whether that's deliberate or an externality I'm still undecided.
Every minute I spend on take-homes (oh dear lord the take-homes) is a minute I'm dumping the childcare responsibilities on my wife. And she heads out to work, so I do a bunch of childcare in the mornings/evenings.
Then I also have a full-time job. Like, unless I want to stop sleeping I don't have a whole lot of time to do this stuff.
I just (mostly) finished one and it was because my wife took the baby out to meet other mums.
The worst part is that I have lots and lots of work online, plenty of GH repos and a bunch of really selective companies on my CV. And yet still every time I need to prove that I can in fact call read.csv and do a bunch of data manipulation/analysis.
And I love doing this work. I can only imagine what this is like for someone for whom it's just a career (which is totally fine, tbh).
But the thing is, lots of the experienced people you want to hire will be in this position, so it's worth accounting for.
You’re complaining about the process being ageist, but I think you need to wake up to reality that life is not fair and sometimes you have to make sacrifices. In our case, if you sacrifice your life for 1-2 months it can set you up at a nice job for the next 2+ years. That’s so much better than what most people have it like.
Also, even if training for algorithms questions was purely a matter of signaling with no positive externalities - it's actually a much faster and easier process than getting another degree, which is a common alternative.
TL;DR If you put in the time, it can absolutely change your trajectory in ways that you might like a lot. If you don't, how will you know?
Out of college I sent out to hundreds of places and got one interview offering an abysmal 30k, then at some point got contacted out of the blue by a recruiter for a big company. The email was so badly written (different font faces/colors/sizes, bad English) I thought it was possibly a scam, but then that turned out to be an easy and very well-paying job for someone starting out. Then the next place said I was the best candidate they ever interviewed because I answered some basic language questions clearly.
My conclusion has been that hiring in this field is just confusing and nonsensical, and you never know what you're gonna get, but you probably don't need to touch anything like leetcode unless you're shooting for Google.
I don't think these cheesy interview questions like writing a circular linked list or implementing Conway's Game of Life should even take any "grinding" if you have good fundamentals.
I almost feel shorted that I never got a question like how I would measure the depth of the ocean with an apple, as the article parodies it, since I find that kind of thing fun and interesting.
the big n tech companies have the same problem as harvard, more or less. way more qualified people apply than they have headcount for, so how can they pick efficiently?
I don't enjoy leetcode interviews, but for these extremely competitive positions, I can't think of a reasonable alternative I'd prefer. you know in advance what topics you'll be tested on, and the interview prep applies to several different companies you might be interested in. I'd much rather do that than prepare a bunch of "tell me about a time when..." answers for each company's supposed values.
> In what other industries are the bars so high?
pretty much anything where you can start at $200k with a bachelor's degree? honestly what other jobs like that have a lower bar?
The famous Hunter & Schmidt meta-analysis suggests that only work-sample tests and IQ tests work well enough to use, but it's an old set of studies so hard to know if it still applies.
So debugging or implementing some small stuff against a real application would perform better than leetcode.
TBH, I think the original point of algorithms was to act as disguised intelligence test, which are tricky to use in US hiring.
The more general point is that the algorithmic approaches from leetcode problems have not a lot of relation to what most programmers do all day, and as such, are less useful as a work-sample test.
Doing a take-home where you fix some bugs would probably work better (i.e. more correlated with outcomes) than leetcode interviews.
I'd say asking someone to regurgitate some solution for a random leetcode problem is far worse an approximation than asking someone to write, say, a little toy API that does nothing more than retrieve a value out of a set.
See how well they're able to develop in a language of their choosing. Can they get started immediately or do they stumble putting together the first little building blocks?
Treat it like a "real-world example" and make that clear up front. Do they think about logging and metrics? (for the purposes of a toy interview problem, just writing to stdout for both would be sufficient). Do they think about dependency injection? What about unit tests?
Then follow it up by asking them to modify a bit of their logic. ("okay, we've got it returning a matching value from the set if it exists - what if we wanted to add in wildcard support at the end of the incoming string?").
Tons of very real things to consider, even in the constraints of a simple toy problem.
As someone who works in Big Tech, I would much rather have people on my team who think about maintainability, debuggability, monitoring, what can go wrong, etc. etc. (and have shown during an interview they're capable of writing some trivial business logic around that) than someone who absolutely nailed mirroring a binary tree and solving the longest common sub-sequence problem.
In the updated paper, work sample tests do not come up as important as they were in the original paper:
It appears that almost all of the validity of work sample
tests is captured by GMA measures, because the incremental
validity is essentially zero.
But work sample tests are a great mechanism when GMA cannot be used for legal or other reasons. The paper concludes with: The research evidence summarized in this article shows
that different methods and combinations of methods have
very different validities for predicting future job
performance. Some, such as person-job fit, person-
organization fit, and amount of education, have low
validity. Others, such as graphology, have essentially no
validity; they are equivalent to hiring randomly. Still
others, such as GMA tests and integrity tests, have high
validity. Of the combinations of predictors examined, two
stand out as being both practical to use for most hiring
and as having high composite validity: the combination of
a GMA test and an integrity test (composite validity of
.78); and the combination of a GMA test and a structured
interview (composite validity of .76).This holds for blind applications.
But Facebook reached out to me a few years ago which I was pretty excited about, but then I was dumped into their standard applicant pool, and I really didn't have time right then for an 8 week hiring process with 7 or so leetcode interviews.
In my experience running a company, it's the lowest risk way to hire competent software developers and given just how expensive and risky it is to hire people, it's worth it. Most competent developers don't mind spending 60-90 minutes answering technical questions/leetcode questions in order to get a high paying job so there's not much pressure on me/my company to not do it.
>In what other industries are the bars so high.
Almost all professionals working in fields that pay as high as software development have higher bars, whether it's law, medicine, finance. It's a myth that only software developers have to go through a kind of technical challenge in order to get a job. If anything, spending 90 minutes to solve basic technical questions and getting a 6 figure salary as a reward is among the least demanding and most objective systems that exist among professionals.
>Take a chance on folks and don’t be afraid to part ways if it doesn’t work out.
So I should hire someone who is likely leaving an existing job to come work for me for 3 months during which time I pay them, all for the sake of what? What is the benefit of doing this other than appealing to HN/reddit's hatred of technical interviews?
When I first started my company back in 2009, I was a young, naive 24 year old entrepreneur and decided to listen to reddit about hiring and running a company. Valve was all the rage back then and they had this culture of no management, anyone could work on anything they wanted, do whatever they want etc etc... and so I decided I would run my company the same way. I had this idealism that if I hired people who seemed motivated, enthusiastic about technology, good well rounded people then nothing could go wrong and my company would be sure to succeed.
Well... boy was I wrong and it almost drove my company to failure. Running a company is absolutely damn difficult, managing people is incredibly hard and honestly frustrating and time consuming.
People are not intrinsically bad or evil, but people do respond to incentives and if you just pay people, even smart and well intentioned people without having rigorous expectations as well as solid management and structure then they converge to a point where they basically do nothing productive. My idealism that smart, hard working and good people would be able to be productive without needing to be prodded in the right direction, without the need for management and structure, without reviews, timelines, goals etc... failed quite miserably.
I thought hiring "good" well rounded people would mean they would be able to learn things on their own, find ways to advance their career through technical books, or attending conferences or other ways of self-learning but that never happened. Instead the people I hired spent an inordinate amount of time on various social media, Facebook, Youtube, playing flash games. The amount of distractions that exist all of which are competing for your attention and to pull you away from being productive are enormous. Especially if you work in a technical field where you have to solve problems and be creative, you can find yourself with the equivalent of "writer's block" and end up spending a great deal of time just procrastinating and doing nothing. That's what I ended up observing among the people I hired. They were not bad people or lazy, but they just couldn't fight off distractions.
In hindsight it should have been obvious, I mean if all it took to run a successful company was hiring "good" people then then every company would be successful because really, almost everyone is a good person and I rarely encounter bad people.
But being a good person doesn't make you competent and what a business needs first and foremost are competent people working within a system that has a proper incentive structure in place to reward their skillset.
I continue to give people technical interviews because while I might miss out on some strong candidates, even some of the strongest candidates... I am effectively guaranteed that whoever I do hire will meet the minimum standard needed to do well at my company and that risk/reward ratio makes it worth it. If only because people who are good at technical challenges are people willing to put in the time and have the kind of discipline needed to prepare for them instead of people who think they're owed a job, that kind of self dedication is genuinely hard to find.
So at this point I have "lived long enough to see myself become the enemy" to quote the Dark Knight. My company does a lot of the things that HN/reddit says are bad, like we have technical interviews, we have hard deadlines, we have management yaddi yadda... and the end result is we now have a productive and successful company that grows year over year.
There are just so many risks that one takes in running a tech company that the additional risk that comes with hiring people on anything other than their technical competency is not one worth taking.
The more traditional professions do their own gatekeeping and have one, standard, set of exams to take. Once you've taken them you don't need to re-do them for every interview, although you may need to stay current.
In programming, every employer has a different, non re-usable, exam.
> In programming, every employer has a different, non re-usable, exam.
True for DS too. This is the real problem. Like, if I could take a bunch of re-usable take homes and then not have to worry about this for a few years, I would totally do that as it's honestly so frustrating to have to do mostly the same crap over and over again.
I could have done three other tests as well, but those were >90 minutes and I just couldn't find the time or energy for it (Amazon's requires a dedicated 2.5 hours, for example).
So effectively I spent roughly 12 hours just taking exams for my last job search, and basically let the house go to shit for a solid month since I was working on them (or prepping for interviews, or doing other things asked of me) basically every night, and had zero energy on the weekends to catch up much beyond a couple load of dishes.
Compared to having to take a single bar exam, one time, that you cram for in the prime of your textbook knowledge, I'd take that any time.
I often wonder when seeing job adverts that ask for a motivated and driven self-starter who is good under pressure and organising and prioritising and willing to work overtime and on-call and has skills up and down the tech stack, etc. etc. ... why would a person like that be applying for a job as an employee, instead being a founder or consultant?
The fundamental trade of being an employee is a kind of subservience - "I give you my time and effort, you tell me what to do. If it doesn't work out then you take the hit, and if it does work out then you take the bulk of the profit". At the extreme of "I've hired you, can y'all just self-organise into a profitable company and I will still take the bulk of the returns" it all falls apart. It's trying to push leadership and management down onto employees, without any of the money or social status or potential returns or even the ability to put "manager" on their resume and leverage it for promotions in future.
The problem is outside the big companies everyone knows, it’s hard to get documentation on a companies interview process.
Glassdoor exists, but often is little help, as there’s a complete lack of information about the actual process, it seems too included only people who didn’t get an offer complaining about something that may or may not apply to you, etc.
Even the sites made specifically for aggregating those sorts of companies often fail. I’ve looked at them and seen stuff like “X company, but only very specific team” or “Y company”, but when people talk about them nowadays, they seem to have switched to utilizing leetcode or similar for screening or something. And god forbid you out any filters on.
Very much this. I've never actually done a single leetcode problem and never will. Recruiters will tell you what the interview process is like (if not, just ask). If it is based on whiteboard puzzles like this, just refuse. Be sure to tell them why you're not interested!
We can improve the maturity of hiring in this industry but only if we collectively refuse to participate in these bad practices.
As long as newbie frontend engineers out of coding bootcamp continue dominating the hiring market this will never change. It's factory mentality.
This is the key observation. It's mostly ok for the bar being too high, though it means companies miss out on good people.
But when the interview bar is in a random place completely unrelated to the job skills required, that is the fundamental problem in our industry.
My very first job was working with tech I was completely unfamiliar with and had really never touched as the lone developer. Yet, I managed to be productive very quickly in the short contract it was. Turns out that a lot of the programming languages and frameworks used in “real life” are pretty damn similar and it takes a little bit of reading the docs to be able to figure out.
Yet nowadays I can’t even get an interview because my resume isn’t plastered with talk of k8s and every other cloud/infra software the company used once.
thank you
The quote from the matrix is suitable to all these recruiters... "how about I give you the finger..."
In my experience rather:
The better the developer is at self-promotion, the quicker they’ll find a job.
I was reading advice about job hunting recently, and one person said interview at large companies first, that take a while to hire and have offers that stay good for some days or weeks - then interview at smaller companies, where turnaround can be quicker. This makes sense to me.
I've also been asked by HR when interviewing where I am in terms of the process with other companies, and some mention to contact them if that process changes (e.g. if I get an offer).
One piece of advice about this sort of question: The truth is irrelevant, answer what you think will serve your interests best.
Had a company recently tell me one of their principles was Loyalty, and to "remember loyalty when putting the ink on the paper".
This was their attempt at solving early-stage developer burnout. I didn't sign.
Yet when I was applying for my last job, I made 2 dozen applications direct. Got 3 replies, about 2-3 months late. And for all 3, got a standard rejection.
Sad but true: We need recruitment agents, as companies will never do anything until someone is breathing down their neck over the phone.
Those companies that never replied? One year later, they are still running Linkedin ads promoting open positions.
I had pretty good experience with recruiting agents. Sadly didn't get the job as I flunked the leetcoding part but I got an interview compared to rejection when I applied via forms and CV.
Don't work for Minnesota companies, kids. Optum, CHR, Target, etc, they all suck with shite culture, bad pay, and poor career prospects.
The onus is on the companies to fire their management, not on engineers to navigate whatever bureaucracy they put in place.
Market and approach to finding a job in IT sector seems to be somewhat different in Russia compared to US, even regarding remote work for non-resident employers, so don't be surprised if something would seem atypical. I'll omit most of the stuff that's not too relevant.
I put an CV on a job site, had few calls, but they were clearly not what I did want. Over the course of about 5 months, I've applied for 3 positions that I could be applicable to - I've never had any experience with web - and that were remote.
On all three I've done take-home tests. The last one took about one week, most of that just thinking, with maybe two evenings of actual coding. They accepted me, and strangely, told me do make a web app, despite no mentions of that in the job description. Luckily, half a year later, I've been offered an non-web, "mainline" position in team.
The one before that didn't go as well. Due to misunderstanging, I've implemented a much more complex solution, and did a mistake in the implementation. Though it was indeed faster than expected solution, after fixing errors.
The first one is what burned me. There were two tests, one done in two hours, and another one was "serious". It used some clearly real data - I had to download it from some US buerau, took a month of 3-4 hours of coding everyday for POC implementation, and not much less than that for a more formalised one, where rule set for matching data entries had to be indexed by 4-D array (not sure if I'm correctly using terminology). I haven't got answer for either version, and only got one a week after an reminding email, when I've asked for some clarification. They've told me they decided to drop the vacancy and not hire someone. Still I don't know whether they just wanted someone to do a task for free, or that it had to be done in a fundamentally different way.
Given that what I'm currently doing isn't market relevant, most likely I won't be any less desperate when looking for a next job.
Really quality people are HARD to find. If you send people a pop quiz about probabilities and then some random brain teaser puzzle algo to solve in 30 mins you're gonna lose eventually because your competitors will have the actual quality people.
I applied for only one job at the insistence of my wife because it was with a renowned company. I had to actually write out a C.V. to apply, and as of Friday, a week into my new job, seven weeks later, my application is "still under review" according to the internal recruiter/manager.
I had a lot of technical recruiters reach out to me, almost all of them failed to garner my interest based on a few simple questions I asked right up front. Before interview I prequalified all of the positions to ensure that it involved remote work and that the pay was within a range I was willing to accept. "Is this position remote? Or on-site? What is the pay range for this position?" A large proportion of the people who reached out did not respond to the questions, and of those that did, several gave responses that were immediate red flags.
I interviewed with a FANG, on the recommendation of a friend, and I ultimately turned down the offer, but had it not been for my friend's insistence who works at the FANG, to "keep going" through the interview, I would have simply stopped the interview, and in fact thought about doing so several times. Whiteboarding and take-homes for people with decades of proven and verifiable experience and a couple of master's in computer subjects is still apparently a thing.
I had an interview lined up with another FANG, which was to be a full day of "first round interviews" and then two full days with different teams to figure out where I would go. I withdrew my application once I accepted the offer for my current (new) position. It was not a company I was interestd in, but they were doing interesting things in augmented reality.
I put in my two weeks notice, and the company I was working for made a counter-offer, almost two hours after my last day on the job.
In all I had five offers on the table, at base compensation of $100K (absolutely absurd interview with a low-ball offer even after pre-qualifying), $120K (reasonable interview, low-ball offer even after pre-qualifying), $150K (45 minute interview, knew the size of the offer going in, interesting work), $230K (a quick chat, then four hours of shooting the shit, exceptionally interesting work) and $260K (two full days, whiteboarding and take home (which I refused to do), career advancement).
My current position I didn't even apply for, and I don't think anyone even looked at the C.V. I got the job because of an old colleague who said "are you looking?"
Total search time was from late June to mid-August. Maybe eight weeks total. I was being extremely picky with regard which companies I talked too.
Jesus Christ, I wish I knew how to target these companies.
As for what I want to do, it’s a bit hard to describe. It’s much easier to describe what I don’t want to do. I don’t want a job that a year or two in I’ll dread waking up in the morning and having to work. That’s been a constant in my career so far. I’d also like to work less in the same old and would like to work where I’ll be exposed to me more and ideally working on something that interests me. Ofc the latter goes back to the “hard to describe” thing and mostly something I know when I see, but can’t put it concretely.
For the most part I just look at job listings, and have to filter through the swaths of stuff I don’t want to find the occasional job that looks good only to realize there’s no way I’d ever to get it. Sadly it seems like the best way to get where I want is to have been in the a different place with a different mindset five years ago.
What do you key off that makes you not want a job? Is it possible you’re filtering too hard up front and excluding things that could be a good social fit?
The only place that required a C.V. was someone in HR at the FANG. I used the same C.V. to send to the company my wife wanted me to apply at. I had to create a C.V. specifically to satisfy HR. I haven't used a C.V. in almost 20 years when looking for work. The last time I built a C.V. was when the company I worked for got acquihired and that was 9 years ago.
I don't think my C.V. got looked at once during the entire interview process. Nobody I spoke with even mentioned my C.V.
I'm not a particularly strong candidate, below average intelligence, so-so education.
C.V is here: https://justin-lloyd.com/
There's nothing remarkable about my C.V. that would get anyone hired, and I know this because nobody ever looked at it.
I obviously failed miserably and they did not even follow up on the challenge even if they said they will... nice!
It is not healthy to set up the candidates to fail - at especially such a late stage - because you just waste everyone's time (especially your own employees'!). I do understand that the companies are trying to protect themselves against false positives, but it sometimes reaches some ridiculous proportions!
Since then, I have something else so happy end (at least for me because they still haven't filled their position...).
As a new grad desperate for getting paid, I took a job working for a software built on a language no one uses outside of the company. Never got a promotion. Everyone was 10+ veteran. The processes was bureaucratic and inefficient but everyone was ok with it.
After realizing I was paid 60% of market rate, I wanted to get out but it was hard. I thought about software architecture built when I was born. I was out-of-touch about new trends. LeetCode-like questions were my saviour because it's a way to break into the job interview process. Getting a new job away from antiquated tech was one of my best day in my career!
However, recently when I put myself on the market I found many companies are now doing take-home tests. I find I hate them even more, so I appreciate leetcode interviews now. I think take homes are too asynchronous and the last thing I want to do is waste my nights and weekends working on them. I've refused to do the last 4-5 I have been offered after agreeing to do a couple and then dropping out instead.
Ultimately I went with companies that didn't do tech screens beyond a simple code pairing session.
It doesn't really take long to get to the point where talking about a problem with others can be helpful, less than a day most times, but starting off a new problem with verbal spitballing with peers has not been all that useful in my work. For me to really learn something I need to hold it in my hands/code editor and get to know the ins and outs, build up intuition so that I can speak about it accurately. Jumping into unknown problems in an interview by standing up at a whiteboard talking just seems like putting the cart before the horse to me. Maybe the interviewer wants to see my "thought process," whatever that means, but what does it really matter if I can get to a good solution without vocalizing every step along the way?
I often go down the wrong paths when problem solving, if only to traverse them for my own edification. If I can make 10 mistakes or false starts in a row and still arrive at a decent solution as quickly as anyone else, what does it matter in the end? I also tend to write code out of order. I might jump around between concepts and write disparate sections of a solution without linking them back right away, following my intuition without trying to enforce order on everything I do. No one has ever complained about my speed or code cleanliness/clarity, quite the opposite in fact. Yet when I am put under the microscope, these behaviors inevitably stand out to the interviewer as cause for concern.
Despite a strong track record of building numerous successful systems and apps, many solving "serious" problems that go beyond what can be assessed in an interview, on tiny teams where I shouldered large amounts responsibility, if I can't present my thoughts in a coherent, structured way, in the moment I am thinking them, I am bound to catch flak from the interviewer. So I often feel I must alter my behavior, go slower and try to only display ordered thinking, but this does not play to my strengths. Frustration and stage fright further degrade my performance. So the take home test is much appreciated for people like me. I am happy to be left to my own devices when starting a problem, and happy to talk with peers once I have gotten myself oriented, but the initial process I use does not lend itself well to interrogation.