80 ms·
When hiring developers, have the candidate read existing code
- forrestthewoods 4y agoThis article would be much more interesting if they shared the code. They imply they use a new set of question every cycle so it should be safe and easy to share the examples used in a past cycle.
- ravenstine 4y agoThis would be great because if the code stinks to high heaven then I won't work there. When they think I'm not a fit for not understanding their code, the feeling would be mutual.
- innomatics 4y agoI agree with you in the sense that I only want to work places that recognize and value great code. But everywhere has code that stinks. And it's hard to find people with the skills and experience to get rid if it. Before it can be gotten rid off, it must be understood. In a sense it might be valuable to use the poor code in a reading screen. Firstly so we can agree it stinks, and the reasons why. And secondly, to find people with the attitude required to clean up messes that they didn't create (good scouts). Even when the job is greenfield, or extending great code, I'd rather have engineers with the battle scars of doing tough maintenance.
- pojzon 4y agoIf you want me to clean up the mess your ppl created over the years -> be ready to pay me hefty premium or equity. Often times it requires not only a lot of skill but also a lot of work. I can do it but be prepared to pay me 2-3 times the normal wage.
- ravenstine 4y agoI see a few people didn't like what you said, and that's mystifying to me because while I understand the point of view of the business owner, as well as the reality that nearly all code stinks more or less, at the end of the day your #1 obligation is to your own interests. There's no reason people should choose to work on projects they don't like if they have no financial need to do so, or if the pay isn't enticing enough. Attitudes will change in the next decade when vulnerabilities in software and tech become more obvious, serious, and regulated. Right now we're all happy hogs feeding from the trough of few meaningful standards, but the time will come when we are blamed for human lives lost as a result of bad code, and it's no longer going to be funny that we get paid so much to write such shit. As well, doing whatever companies pay us to do will become more shameful. From much of what I read here on HN and what I've seen in my own experience, way too many software developers will do practically anything for money and prestige. This is why the selfishness of only wanting to work with teams that write decent code is actually more beneficial for society than "fail fast, bruh". Already, the tech bruhs aren't revered so much as they were even a handful of years ago.
- pojzon 4y agoWe need an oath the same way doctors do. We also need Software Craftsmanship principles. Unfortunately industry sucked in too many coding monkeys to make such drastic move with good pacing. Like you said - ppl have to die or be annoyed a lot to start regulating IT hard. But TBH mission critical software has completely different set of checkboxes that are not so easy to fulfill.
- john_the_writer 4y agoHonestly.. It's not just the desire to clean. The management has to be set up to allow for this. People have to be able to work towards something as a team; else we are all cleaning in different directions.
- swayvil 4y agoYou could ask them to show you their favorite personal projects. Have a conversation about that. Seems most natural and revealing.
- forbiddenvoid 4y agoUnfortunately, not everyone has time or desire to work on personal projects. Being an engineer outside of work should not be a pre-requisite to being one at work.
- swayvil 4y agoThat's pretty weaselspeak.
- travisgriggs 4y agoI thought they made a good point. Make your objection more substantive and I'll get rid of the downvote.
- mech422 4y ago>>That's pretty weaselspeak as a more concrete example, as I get older I'm less interested in working on the computer off hours. I've noticed I don't even play video games as much as I used to. I actually started doing wood working a couple of years ago, and playing with 3d printers. It does go in fits and starts though - sometimes I get an itch to play with something just for fun...
- lucb1e 4y agoI think swayvil's original point was that you could still speak of work you've done in the past. They said 'show' and 'personal', but I wouldn't take that so literally if your favorite project wasn't personal. Even if under NDA, and I'm a security consultant so I know all about those, usually it's still possible to discuss the general problem being solved and how you solved it, and have a good conversation about that. That said, I do find this hard in interviews (when asked about past experience) and prefer to just be given a web application riddled with every type of bug and try to bingo them all in the time given to show that I understand them all. That one was my favorite interview. But that might just be a different style of interview for a different type of job.
- lucb1e 4y agoThat's interesting, I've never heard testing code skills by reading instead of writing. An example would have been nice though, as I'm not sure how to find a piece of code that does something standalone that is too large to grasp in 20 minutes yet make a reasonable prediction at the output. That combination seems kind of weird. I wonder how well it would work to modify OP's idea and present a candidate with some code that has a bug in it (you reveal what the bug is to save time, they'll need to understand the code anyhow) and you ask them how they'd fix it. First broadly, like what approach, then actually write part of it. To take my own advice and make the discussion more concrete, I should add an example. Random script from my github: https://github.com/lucb1e/randomdirectory/blob/master/randomdir.php#L7-L20 https://github.com/lucb1e/randomdirectory/blob/master/random... To prepare for the interview, one could add an argument like -h to show usage (in the same style as -v is currently implemented), then tell the candidate that the bug is that passing -vh executes neither -v nor -h (one would commonly expect it to execute both). Fixing this requires a 'structural' change to this little bit of code, but it's small enough to easily grasp and implement. The candidate might propose to loop over each character after a single hyphen to fix this, or they might propose to throw out this custom reinventing-the-wheel and use a proper arg parsing library. Either is fine, but they should be prepared to write the code (in any language, they can write just the changes in C, Python, JS, or whatever language they're comfortable with). Has anyone tried such an interview coding question?
- Buttons840 4y agoGood idea. I'm not sure I know arg parsing libraries in every language though. Even so, hopefully talking about where to make the change and finding some good documentation on an arg parsing library would be good enough start for 20 minutes.
- lucb1e 4y ago> I'm not sure I know arg parsing libraries in every language though. In my opinion, you should be free to look that up: that's what you'd do on the job as well. I also google it every time I need to use arg parsing in literally any language because I need it fairly infrequently, and frankly that's how this code came to be: too lazy to look it up again, too easy to write myself, and enjoying the writing of code. Any other solution would also be fine, this test would be about seeing if you can read and write code rather than if you come up with the (what the interviewers think) is the perfect solution.
- grangerg 4y agoThose are similar to my own thoughts. I like also having them talk about their favorite recent achievements. > I can quickly train a person to have knowledge in some domain, This part I have a little bit of trouble with. If you have a trivial domain, sure. In my experience domain knowledge takes a while to truly get your head wrapped around. But I expect that's why there's always other things that people do in an interview.
- deleted 4y ago[deleted]
- travisgriggs 4y agoMakes sense to me in general. We all spend much more time reading our own code and others', much more than writing code. In fact, first period a new hire is going to experience is spending a disproportionate amount of time, just getting to know the system(s) they're expected to contribute to. I'm currently looking for someone to join our own team, I'll be taking this adjusted priority in mind.
- gaoshan 4y agoThis is exactly what I started doing at my company a few years back. You are presented with a complete app written in the stack we use. This app has some bugs we will solve to get it working (nothing that's a trick... actual, commonly encountered bugs that have all the error messaging you need to solve them). Once it is working you will walk me through a particular flow of the app, explaining what is going on and why we do it this way. There are optimization opportunities (purely optional, there for you to notice), areas we can dig into if we choose (or if I feel the need to). If you tear through it we can examine a different flow in the app. Perhaps we could discuss the database structure and how it might be improved or changed, maybe we dig into some CSS or into some GraphQL or any other aspect that we need to. I've had people stumped and unable to continue but the vast majority of devs can make a good stab at it, even if they are not familiar with the specific stack. The best devs are barely slowed down by such unfamiliarity and can still reason, logically, about the code. So far I've had really positive feedback from job candidates. A couple even described it as their favorite interview ever! I feel like it has worked well, given the people we have ended up hiring.
- Aeolun 4y agoHow long is this interview? I can debug a random React app in 30 minutes, but a whole stack may be pushing it.
- jrochkind1 4y ago> because reading is easily an order of magnitude faster than writing. Hmmmm, really?
- jbluepolarbear 4y agoIs it not for you? I’m at least 10 times faster at reading code than writing code.
- xboxnolifes 4y agoDoes "finding the source of a bug" and "figuring out the correct thing to write to fix a bug" fall under reading the code or under writing the code? I feel like the answer to those questions determines which is faster. One may say that you only compare (lines_read / time_reading) and (lines_written / time_writing) to find an answer, but if we remove all "time spent thinking" from both then it kind of feels like a meaningless comparison.
- jbluepolarbear 4y agoI’m spend much more time thinking about what I will write than I do thinking about what I’m reading. In any case my reading is far faster than my writing.
- nathias 4y agoI think it's takes about the same effort when you're trying to read not just skim (which is probably what you mostly do when coding) ...
- bspear 4y agoReally like how this makes the interview simulate day-to-day work
- johnqian 4y agoI sometimes ask candidates "what kind of interview do you feel would best bring out your strengths?" and try to adapt the interview to their response if I can. It's helpful if they want to talk about side projects or war stories, but doesn't pressure them to. I still give my coding challenge after. Wonder why no one else does this.
- eBombzor 4y agoThat sounds terrible. That just implies, "if he doesn't have an amazing interview now, he's definitely an idiot".
- lucb1e 4y agoOn the contrary: I like the idea, but for context, my most recent HN comment contained: > [...] That said, I do find [it] hard in interviews [to talk] about past experience[s] and prefer to just be given a web application riddled with every type of bug and try to bingo them all in the time given to show that I understand them all. That one was my favorite interview. Now I see johnqian suggesting to ask interviewees how to best see their skills, and it sounds great. If the interviewer doesn't have something like this on hand, we could still go into different types of bugs that they care about. I've also had interviews that went terribly, particularly when no technical details were asked at all for a technical position (e.g. a manager just asking the standard questions where you need to give platitude answers, such as "why are you specifically excited to intern with Vodafone", methinks: "because I want that degree and you were the only option I could think of within 45 minutes commuting"... but one can't say that so I made something up.. he probed further on that... it went downhill from there), so being able to steer away from that sounds great. But it might also be that I would feel unprepared for such a question and give a total non-answer, helping neither party. Asking this in an email ahead of time might be better, though then the effect you're suggesting might be even stronger. Edit: I'm not the downvoter, to be clear. I think you raise a good point even if I am not sure whether it would necessarily be that way.
- burnished 4y agoWhat? Can you explain how that is terrible? I fear that the implication you are deriving says more about you than it does the method.
- _vdpp 4y agoI really like this.
- michaelrhansen 4y agoThis is my standard practice - I give a real world data fix script that has been simplified to understand and comment on in 20 minutes. The interviewee is the code reviewer before it gets run in production. It covers things like performance, security, typical syntax mistakes, and working with sensitive data. The best part is actually not the script, but the stories it triggers about past challenges.
- lytefm 4y ago> The interviewee is the code reviewer before it gets run in production. Yeah I've also been using this approach for Fullstack Devd: A small page with a bit of CRUD + a small ticket description of what the page is supposed to do. The code contains various bugs or questionable implementations, the interviewee is supposed to analyze the code and to either fix the issues right away or to write comments. Nobody is expected to get everything right within the time slot, but I've found it to be a great test on how a candidate might perform in their day to day work.
- zeroonetwothree 4y agoI think it’s fine to have this as part of your interview but I would be worried to have it as the only thing.
- lkrubner 4y agoMy one big tip: One vice that I see among hiring managers is an unwillingness to ask tough follow-up questions. If you ask a question and there is any vagueness in the answer, you need to drill down deep until all vagueness is eliminated, so you understand exactly what the person knows. Follow up on what's said, but also follow up on what is not said. Here’s a real-life example. I asked a recent applicant (for a fullstack software job, where we were hoping to hire a novice-to-mid-level engineer): Me: How would you improve a situation where a page is loading slowly and you suspect the problem is related to the database? Applicant: Well, I’d start by checking the HTML, is it correctly done, and then the CSS, is there any redundancy? And then the Javascript, is it correctly written, is it minified? Can we speed that up at all? Check the timeline, the API calls, see what is slow. Me: Okay, great, that’s a good start, but what else? If the problem is not on the frontend, then what? Applicant: Uh, well, then, I guess I need to look at the backend database model code. Is my database model code concise? Am I fetching the data needed, without any excess? Me: Okay, great, that’s a good start, but what else? Applicant: Uh, what else? Well, uh, we really need to look at that database code. Is the model bloated? Can we slim it down? Me: Yes, okay, you basically said that already, anything else? Applicant: Uh, well … uh, you need to check the HTML and the CSS and the Javascript and then, uh … API calls … uh ... the model code, make sure that is cleaned up. That needs to be lean. Me: Yes, okay, but you said all of that already, anything else? Applicant: Uh … well … the model code … and uh … Me: Have you ever worked directly with a database? Applicant: Uh … not much? Me: If you get unexpected results from your model code, do you know how to debug the query? Applicant: Uh … I guess I could … not really. Me: Have you ever looked at the “slow query” log? Applicant: Uh … no? Me: Do you know how to run EXPLAIN or ANALYSIS? Applicant: Well … uh …. no. Me: Have you ever written SQL by hand? Applicant: Uh … no. Me: Are you aware of any differences in dialect between the SQL of MySQL and the SQL of PostGres? Applicant: Uh … no. Basically, they were somewhere between a novice level and a mid-level engineer, so they knew the frontend reasonably well, but they didn’t know a thing about databases. Which was okay, because that was what we were looking for. We still hired them and they turned out to be great in some areas, and they were eager to learn about the things they didn't already know. But obviously, if I'd been hiring a senior-level engineer, and it turned out they knew nothing about databases, that would have been a problem. The crucial thing is that I kept asking the question, over and over again, until I had the full answer. In this case it was easy, but sometimes it can feel aggressive, asking the same question over and over, which can leave either you or them feeling uncomfortable. But you will never be any good at interviewing people until you learn how to tolerate uncomfortable moments. The goal is to find out if you want to hire someone, without wasting their time or yours. And asking questions like this, directly, and digging deep, is a much faster method than handing out homework assignments and then waiting a few days for them to complete it, then reviewing it yourself, then discussing it with them. And such direct, factual questions, as above, are at least as objective and as any “objective” test that you might invent.
- 0x20cowboy 4y agoI think we should just jump to the end game and make interviewees do ultra man triathlons while solving differential equations. Then at the finish line, they knife fight each other to find the one we let go to the next stage in the interview. That way we can be sure who has stamina and the best competitive programming problem solving skills. Something like squid game will truely find the A players. I mean, we wouldn’t want a bad hire after all, and everyone lies on their CV. (Obviously /s)
- andrewflnr 4y agoRight, if you're a big company you can more easily afford to have false negatives than false positives, so why not add knife fighting to the list of qualifications, just in case?
- mhh__ 4y agoarguably worse for smaller companies. if you hire the wrong person you can't even try and move them somewhere better suited to them
- dasil003 4y agoHard disagree on this. Large companies can't afford false negatives because false negatives can hide out and move from team to team without detection. At a small company if the same thing happens it means leadership is incompetent and you have bigger problems anyway.
- andrewflnr 4y agoAt the risk of over-explaining (hopefully) obvious satire, I'm considering a "false positive" to be someone who was hired who should not have been, i.e. the hiring process gave a positive result that was wrong.
- dasil003 4y ago
- steve76 4y ago[dead]
- andrewflnr 4y agoMy thesis is that the true measure of reading code is still the ability to fix and extend it. So my current ideal interview problem is still a tiny toy codebase, where the interviewee is tasked with adding some (relatively trivial) feature to it. Like ten lines of code, but where those lines require you to have grokked the other couple hundred or so. Any downsides?
- WaxProlix 4y agoOnly one I can think of is that a couple hundred lines (depending on content of course) can be quite a bit to grok within a 50 minute span. Especially if there are a number of places where improvements might make sense, but you have one or two in mind specifically... I've been in that sort of position tbh, where a 200 line codebase has maybe 20-30 obviously wrong parts (creds in code, calls to 3rd party service in code w/o cacheing, maybe that could just be a service? why is this not in a queue, ...) and it's sort of weird that getting 11/14 and talking over pros and cons of the others can be considered a barely-pass. Still, you're not wrong. Find a good enough, real-life enough example and it'd make for a great question.
- andrewflnr 4y agoYou would have to fine-tune the size, taking into account that narrowing your focus to the relevant parts of the codebase is an integral part of your reading skills.
- paulgb 4y agoOne thing I like about this (as opposed to a “blank slate” coding challenge) is that it shows how well the candidate is able to fit into the broader design style of the surrounding code. Not just the superficial things (like naming conventions), but also the structural patterns.
- lucb1e 4y ago> fit into the broader design style of the surrounding code[, including] the structural patterns. That might require one to be familiar with those ahead of time. If that's what you're hiring for, that's perfect of course, but I personally haven't had much experience with design patterns outside of a few C# ones in school five years ago. Yet I see myself as a competent amateur programmer (and C# isn't even my strong suit), just not one that often works on large code bases. These patterns seem like something I'd learn in a matter of days on the job... but that would not show in an interview.
- BFLpL0QNek 4y agoI like this approach. Far to often I’ve interviewed at places and been grilled by the interviewer only to find out when you start the quality isn’t great, what you where grilled on you won’t be working on “as that’s to hard” or “we don’t do that” despite being grilled on it and the level of skill not to great they just want senior people. It’s the bait and switch. At least being taken through existing code you know what you are getting yourself in to. Also looking at the current open pull requests and closed pull requests to see the standard and speed of delivery. Bonus points for no PR’s and trunk driven development as that shows a very mature team. My simpler interviews have often been with companies that have held a higher bar than the ones with tougher interviews. Those companies have often been sink or swim though and if you don’t make the grade you’ll be kicked out pretty quick. My last company had a reputation for new starts disappearing and not great that way, but the team was probably the strongest bunch of people I’ve ever worked with as only do good survived.
- kozd 4y agoWhy no PRs?
- lanstein 4y agoI read “no open PRs”
- ignoramous 4y ago> Those companies have often been sink or swim though and if you don’t make the grade you’ll be kicked out pretty quick. I hope they weren't some gatekeepers you ran into... "don't use emacs and fish and the dvorak keyboard? you don't fit in here."
- linspace 4y agoIt would be quite absurd to dismiss a candidate based on the editor and yet I find it more important that a particular cloud provider, which quite often is a requirement.
- deleted 4y ago
- wsostt 4y agoI've been doing this for a long time now. I present the candidate with a function (on paper) that compiles and runs. It does the job but it does everything poorly: an embedded connection string, leaves the connection open, no error handling, bad variable names, no comments, etc... EVERY candidate can find something wrong with this code and the things they pick up is informative. Juniors can find the easy stuff, more senior-level folks find the deeper flaws about the basic structure of the code like figuring that a lot of this is boilerplate that could be implemented elsewhere.
- Silhouette 4y agoI always preferred this style of technical interview because it has two critical advantages over tests based on coding from scratch in an interview situation. Firstly, you can work with realistic code. It can use your real tech stack and there can be enough code with a realistic structure to see how a candidate finds their way around. Secondly, you can make it open-ended. For junior candidates it might be best to stick to simple questions like what does this short function print and see if they can reason through some basic logic. But for more experienced candidates it can be a general code review. Your example code can include anything from superficial mistakes like typos and unnecessary duplication to strategic problems like inflexible designs or inconsistent models. You can include obvious or subtle logic errors and performance problems appropriate to the level of the role. Ask each candidate to talk you through what they're thinking about as they read the code and see what level they work on and how much they find in the time available. Are they methodical? Do they flag the trivial stuff but not get hung up on it? Do they spot the O(n^2) algorithm? Do they spot that algorithm but then start talking about worst case vs amortized performance and using a profiler to decide whether changing to a theoretically better but much more complicated algorithm would be justified? In this kind of environment you can quickly tell if you have an awful or outstanding candidate. For the majority who fall in between you have an objective basis for comparing their performance. And all without any trick questions or LeetCode junk at all.
- jra_samba 4y agoWhen I did interviews @ Google (I only do hiring committee work now, thank god :-) I usually asked questions around bugs I added to an existing codebase, to see if the candidate can avoid the pitfalls I ran into by making bad assumptions. As I'm a pure C coder, my starter question was usually something like: a). What does malloc(0) return ? b). Why does it do that ?
- llimllib 4y agoI'm not anything other than a C tourist, and I see that the man page says it returns either NULL or a "unique pointer value that can later be successfully passed to free()." I'm kind of at a loss about why it can return either of those two things, somebody want to take a shot at explaining it?
- jra_samba 4y agoBoth NULL and a unique pointer value can be safely passed to free() :-). Answers to this question taught me about the candidates taste and understanding of good API design :-). Both NULL and "unique pointer" are correct answers, but all modern implementations only chose to return one of these. My follow-up question is "why ?" :-).
- jra_samba 4y agoCandidate answers to this also tell me if they understand anything about malloc implementations, which is a very useful skill to have as a C coder.
- deleted 4y ago[deleted]
- anamax 4y agoWhen malloc returns NULL, it's saying that there was some error. However, IIRC the only malloc error is ENOMEM. It's unclear why malloc(0) would run into that. (If malloc(0) did run into an ENOMEM, then NULL would be required, but the result of malloc(0) need not tell you anything about subsequent calls to *alloc functions. However, there is a possible malloc guarantee to consider.) There's some interaction with realloc() which may favor NULL or a non-null pointer to 0 bytes, but that's too much work to figure out now. Suppose that malloc(0) returns a not-NULL value. Is malloc(0) == malloc(0) guaranteed to be false? (I think that it is, which is how ENOMEM can happen.) So, the "right" answer is probably malloc(0) returns a unique pointer because then the error check is simpler - a NULL return value is always a true error, you don't have to look at size.
- jasoneckert 4y agoOf course, if a developer comes with experience and personal references from acquaintances, you don't need to test their abilities at all during the interview process. For example, I hired a backend developer last month. She already had the job because she came highly recommended from a trusted friend of mine, but she didn't know that. Here's how the interview went down: Me: I see on your resume that you've achieved Grand Master level in Microsoft Solitaire Collection. Her: Yes. Me: Well, we won't waste any more time then. Welcome to the team.
- Cyph0n 4y agoCompletely off-topic: I am 99% certain that I read a very similar comment on HN a few weeks back. Did you happen to share this anecdote on another HN thread? This is my first time experiencing HN deja vu :)
- fma 4y agoSame here...except I tell up front when they apply that it's more of a formality for HR. I respect their time and don't want them to waste time preparing or getting nervous. I tell them it's mostly for the team to get to know them and for them to evaluate the team and we'll keep the interview light. I still give my team the option to decline them if there's major red flags - but I have not had that happen. Also, a reminder...an interview it is a 2 way street. Your 1 question interview doesn't give the candidate an opportunity to interview you or your team and the "Welcome to the team" is a little presumptuous...I assume it was left out for dramatic effect and I'm sure (I hope?) you allowed the interviewee time to ask questions.
- staunch 4y agoI still think Triplebyte gave me the best interview I've experienced, and I've done ~100 over the years at all kinds of companies. I've also interviewed people ~1000 times myself. It was even more impressive because the person doing the interview wasn't super competent and yet they still managed to do a fairly comprehensive technical evaluation in ~2 hours. One section was a debugging session where you had to get tests to pass. The code and tests were quite decent, which made it quite easy to show off. Every company should do this. Too bad the Triplebyte promise (not having to do phone screens) was a joke and their business model wasn't good, but that part of Triplebyte had major promise.
- ineedasername 4y agoReading probes the most fundamental skills. Reading code is probably 95% of what a developer does as part of their job. This is true. Most of the time I'm only reading my own code, and over the years I've been motivated to code better by having to go through crap I wrote early on.
- quickthrower2 4y agoIn my jobs I am reading other peoples code most of the time. Maybe a consequence of small company/team “jack of all trades” culture and also there are more “not mes” than “mes” contributing to the code base. Hell someone doesn’t even need to be currently employed there for them to have the pleasure of me reading their code (or maybe my pleasure!)
- monksy 4y ago> When hiring developers, have the candidate read existing code Are they intentionally trying to scare devs away?! (Some of the code bases that I've seen have been pretty bad)
- a_square_peg 4y agoWould really like to see one day a post about 'when hiring developers, read their CV and have a technical discussion about their past work in relation to the role required' becoming a thing.
- PretzelPirate 4y agoSo many companies are requiring 6+ interviews nowadays. If they decided to take a reasonable approach to interviewing, think of all those people who wouldn’t be able to write “Played an active role in hiring” on their performance review!
- sgustard 4y agoI do that extensively when hiring and it is valuable. But sadly, many people can hold a technical discussion without actually being able to read/write code. I'd like my orchestra to have a lively discussion of music theory, but I still need to hear them play the violin.
- fma 4y agoMy company requires just easy leet code exercises. If you can pass that and you can hold your technical discussions - the stuff you have on your resume is likely true. If I interview someone it's because I like their past experience and think they are a good fit and/or have growth potential. I just need to know if they're lying and if they fit the team personality wise. What knowledge do I have to gain in having them do medium & hards besides that they can solve medium & hard exercises, which aren't really applicable day to day? This is equivalent to fizzbuzz without fizzbuzz. But that's just my opinion and I do not work at a FAANG...
- anyfoo 4y agoI agree, and it comes up in every discussion about interviewing, here and elsewhere: People claiming that the "coding interview" is unnecessary and maybe even demeaning if the candidate presents the right credentials and can talk the talk, and people who know from experience that they are sadly necessary anyway.
- 4y ago
- ChrisMarshallNY 4y agoThis makes a great deal of sense, to me. But I am also the type of developer that would do well at this (experienced and older). Young folks, right out of school, or with just a couple of years of experience, would not do as well. I’m pretty convinced that one of the goals of LeetCode tests is as a “young-pass filter.” It controls for people close to college age, where those types of problems are common, as well as people that are willing to work very hard, learning exercises that appear pointless. Not sure that many companies, these days, are actually interested in older, more experienced, developers.
- travisgriggs 4y ago> Not sure that many companies, these days, are actually interested in older, more experienced, developers. I’m beginning to appreciate the value of cohorts as I age. I work in a ver successful triad, ages 51, 58, 61. We recently tried to integrate a young-30s in our group. It did not go well. They recently moved from our team and are working elsewhere with a group of people closer to same skill, aptitudes, and age. Both they and we are much happier this way. It’s a small sample set obviously. I value a diverse world where we tolerate and learn from each other. But years of working experience have made me wonder if we shouldn’t just let age/skill cohorts naturally work together.
- harrydehal 4y agoThrowing in my own anecdotal example and tiny sample size: many years ago I was part of a trio of 20s, 40s, and 60s front-end devs – all rare and elusive Bay Area natives who grew up in very different part of SV history with very different backgrounds. On first glance, we really should not have worked well together. But the group clicked because it shared a value system (be it for writing clean code, good documentation, user experience, collaboration, etc.). And it was two introverts and one extrovert, to boot!
- weatherlite 4y agoI get your point but its not like recent grads have it super easy getting their first job; you have decades of experience interviewing (part of which is Leetcode which you have probably done many times); for them it's probably the first time doing this. On top of it all many places don't want juniors at all.
- gotaquestion 4y agoThis is a clever idea. First, every team has tons of code that a new-hire would see on day one. Might as well see how they perform! Second, this truly is an important skill. I've read hundreds of libraries, if not thousands, and being able to accept not just a coding style, but a thought style, and internalize it is essential. Yeah, the more I think about this, the more I wish I had thought of it when I was hiring! I'm kinda jealous, I'd love to do code interviews again, but I haven't been a junior dev in ... /* checks notes / ... over three decades?!? cries in yaml*
- EMM_386 4y agoPlease comment your code, when it is is necessary. I don't need "we need to loop here from 1 to 50", I need "we have to rate-limit this function to under 60 transactions per second due to hardware requirements", etc. If you are putting "magic numbers" anywhere, COMMENT it as to what that number is, why you chose it, etc. I'm 30 years into this game and I still come across code that takes way too long to reason about.
- bkuehl 4y agoAgree completely. Also, good commenting skills take years to master.
- jgauth 4y ago> good commenting skills take years to master As a newer developer, it’s nice to hear you say that. I often find that I spend more time deliberating over comment wording and variable names than I spend writing the code itself!
- bkuehl 4y agoYou are on the right path! Most new devs don't even comment at all (and plenty of senior devs). As for variables names, I wouldn't fret about that. Yes, 'foo' isn't a good var name but the exact name doesn't matter as much as one would think.
- dwaltrip 4y ago> If you are putting "magic numbers" anywhere, COMMENT it as to what that number is, why you chose it, etc. Better yet, turn magic numbers into constant variables whose name becomes the comment. Of course, comments can also provide additional context :)
- srigi 4y agoAgree. I also add to this - name your constants by meaning, not value. Too many times I see const ONE_HOUR_IN_MS = 3600000 Instead I would like to see const RESEND_DELAY = 3600000
- faangiq 4y agoNo. Only leet.
- andrew_ 4y agoVery glad to see takes like this becoming more popular. This is how it was done when I started out.
- Uptrenda 4y agoExcept most commercial code bases are tangled rats nests and it would take a substantial effort to understand anything beyond the most basic details. My view of interviewing is it should require no special effort on the part of the engineer to demonstrate their skills. One simple way to do this is to have the engineer explain an open source project they've already built. Obviously this doesn't work for people who have never created open source projects they would be comfortable sharing. But I think we need to be doing more to actually value people's time. My experience with many companies is they treat people as a 'resource' that needs to be managed rather than a human BEAN. Companies, in the process of funneling around these resources, forget that there is an individual cost to these resources. And if your first introduction to a company is being dehumanized and treated like your time doesn't matter: what are the chances that this company is a good place to work at? And that mans name. Albert Einstein.
- megous 4y agoThis is so funny. :) Thanks for a good laugh.
- lesgobrandon 4y ago
- VikingCoder 4y agoWe had a mix of code written by brilliant people who knew how to maximize cache coherence in template metaprogramming hacks... and interns who generated more compiler warnings than anything else. Over the years, I found some truly awful code, in our cash cow application. So I turned those into the smallest representations of what was bad, and showed those to candidates. I was trying to assess, "How much will I need to mentor this person, and how hard will that be?" I may have given bad reviews to people who deserved better, but I honestly think I never once gave a good review to someone who deserved a bad one. A few times, the company went against my suggestions, and each time, the candidate wrote some terrible, buggy code that I later had to untangle and fix.
- no-dr-onboard 4y agoI’m personally against this approach. I’m an appsec person. I absolutely do not know how to write most of the code I review. In my past two jobs I’ve been required to read code and explain it during interviews. I’ve never had trouble explaining what’s going on because on a very basic level, most languages use the same conventions. If this were a heuristic of a good developer, it would let me (not a dev) in and who knows what the effects of that could be :).
- reflection99 4y agoInteresting take
- deleted 4y ago[deleted]
- no-dr-onboard 4y agoI’ve got more: I think one way to iterate on this to weed out guys like me would be to ask process based questions that reveal the candidates experience and preferences: “Brainstorm with us on how you would you make this messyFunction more performant given $these conditions” “We are thinking of developing a feature that would call this function more often. Would you turn this into a micro service?” “Looking at this db call, how do you see this scaling if we increase the number of x and y?” “Is the following PR safe or sane?”
- droopyEyelids 4y agoMaybe you’re seeing a benefit as a detriment. If you wanted a job coding, and you can currently read code, i think you could do a passable job if you were working at it for 8 hours a day. In this way, the interviewer is expanding their talent pool.
- andrewflnr 4y agoI suspect people like you, genuinely good at reading code but not at writing it, are not a significant threat to the average dev hiring pipeline. There aren't that many of you and you have better things to do than apply to programming jobs you're not qualified for.
- sriku 4y agoI do a variant of this in my interviews. I write code from scratch and talk about the statement and ask questions based on the code before asking them to make modifications to it and talk me through their thinking.
- rzimmerman 4y agoI have found a lot of value from putting up real code from our code base (maybe simplified with some parts removed) and asking the candidate to explain what a function does. It’s very fair, low stress, and you can ask open-ended questions about “why this way?” or “what are some other ways to do this?”
- rpmisms 4y agoI would like this. I'm a lowly front-ender with some engineering chops working towards a full-stack/backend role, and this would help me convey my knowledge better than getting brain freeze when trying to remember syntax in a language I might not be great in.
- MichaelMoser123 4y agoI saw that back in the nineties: my employee had an interviewing task where you had to look at a c++ listing with obvious errors, the task was to find the errors, like memory leaks, buffer overruns, use of stack allocated memory, etc. Actually few candidates would pass this test... I don't think they will do this: the interviewing process at most places seems to emulate that of the industry leader, nowadays that's google, correct me if I am wrong.
- baskethead 4y agoThere's only 1 real answer to hiring. Make sure the candidate's personality is a good fit for the team, have them do a fair coding question, and then hire them quickly. Give them 3 months to become productive and if not, fire them quickly and give a 3 month severance package. You can probably analyze the data and figure out which of the employees are good at spotting good candidates and lean on them to make the decisions, but overall fast-hire-fast-fire is the best for everyone, except for fake candidates. This also gives you the opportunity to take chances on borderline candidates or candidates with less experience.
- mostertoaster 4y agoI like this idea. My first job out of university, this was actually what they did. Though many companies don’t care if you’re familiar with the specific language they use, because they assume a decent developer can pick up a new language, and if someone weren’t familiar with that specific language it maybe could put them at a disadvantage. Or maybe that would actually be a good test of their skills??
- morelish 4y agoYeah I had an interview like this recently. First part of the interview proceeded well as they asked me to read different bits of code and how different language features worked. Then I was asked a brain teaser that I bombed. And that was the end of the interview.
- john_the_writer 4y agoI was once asked how I would sort 1000 bolts. I said. I have 5 year old twins, I'd give it to them and have them sort it.
- haspok 4y agoProblem is, reading is at least an order of magnitude easier than writing. In terms of natural languages, if you can read and mostly understand a text in another language, let's say you score 8/10. At the same time it is completely reasonable to expect that you would not be able to write the same text, and if you had to, it would be at 5/10. Then if you had to do it in a speech, you would score a measly 3/10. I'm not saying that focusing on reading and analyzing code is a bad idea, just be careful, and expect these differences in skill levels. Definitely a hundred times better than leetcode though.
- pelario 4y agoI suspect you have not read enough code.
- cphoover 4y agoIn my professional experience there is a lot of poorly writtem, convoluted spaghetti code, that is extremely hard to follow. Im not sure why people seem think reading code is easier than writing code... this is often not the case.
- icedchai 4y agoAnd OO spaghetti ("lasagna") can be the worst. Class hierarchies 6 levels deep. Some methods overridden. Needless abstract classes with single implementations. "Logic" spread out all over the code base.
- cphoover 4y ago100% why I prefer avoiding languages that fall into the OO+Inheritance trap, if I can help it.
- kissgyorgy 4y agoGood article, terrible advice at the end. I agree 100%, seems like a way better interview approach, but the last sentence is just not applicable to everybody. I enjoy doing side projects, but should not be a requirement and you can be a great developer without even having a public project on GitHub.
- buf 4y agoI've interviewed maybe 500 engineers in my career. I'm an early engineer of Instacart, 3rd engineer of Eventbrite, founding engineer of Reforge. Started 3 companies myself. My interview is always the same: 1. Bring code you've written 2. Share your screen 3. Explain what it does and I will casually ask questions about it You get so much information from this: - How they think about code - If they think it could be better - Who they blame if the code isn't the best - Personality - Product dev glimpses - Comms - Sentiment
- itronitron 4y agoA lot of developers' best work is within employers' proprietary code bases, do you consider it a red flag when they share some of that code with you?
- refactor_master 4y agoIt should be. As should “bring your own code”. In which other engineering industry can you ask this of people?
- IshKebab 4y agoArt, architecture, writing, music, I mean pretty much every creative industry.
- siquick 4y agoVery few of those jobs have output that is obfuscated from public view.
- refactor_master 4y agoHence why I said engineering industry. Would you ask a chemical engineer to bring a recipe for a proprietary drug synthesis? The creative industry doesn’t exactly aim to obfuscate its methods. Even better, would you ask a chemical engineer for their spare time projects? How would that even come about?
- lizardactivist 4y agoRelated to this, is solving programming-trivia on white-board with a clock ticking and someone watching over your shoulder still a thing? I think that's leaning to interrogation, and less of interviewing.
- vippy 4y ago
- KaiserPro 4y agoAt first reading, I thought this would be horrible but then I realised it would tell me as an interviewee how good/bad the code is before I join. If there are no comments, loads of "clever" optimisations lots of "syntactic sugar" it would be a good time to GTFO.
- dagmx 4y agoI'm struggling to think of code examples that would be concise enough to be usable in an interview setting, but that are complex enough to still discern their skillset to code. If you introduce subtle issues in your code, you're most likely just testing their familiarity with a framework or language nuance. Big issues could work. Perhaps just providing a take home codebase that's 80% of the way there, and asking them to take it to where they think the remaining 20% should be is a good middle ground.
- jll29 4y agoThis does not just work for companies: The University of Cambridge (England) asks for candidate-written code as part of the application package for its Master's program in advanced computing (MPhil).
- AlecSchueler 4y agoTo be honest as a developer I might have thought twice about certain roles had I seen their code base ahead of time! Nothing cured my imposter syndrome (self taught, no degree) like walking into a startup and seeing PhDs fail to follow just about everything I'd ever learned was best practice and was doing without thinking in my own projects.
- opensrcken 4y agoThese kinds of articles always seem to get a lot of comments, and so many hiring processes seem to miss the mark. If the criteria that you use for engineering hires has nearly 0 overlap with the criteria that you use for engineering promotions, then I'd assert that your company is suffering from some serious cognitive dissonance. This article describes a hiring process that is probably a lot more useful than what I've typically witnessed at the FAANG's, provided the results can be quantified.
- lysecret 4y agoIt's kind of funny hearing both potential employers and employees coming up with "concise" or good enough code example. I think this exactly the beauty of this approach. If you don't talk about some simple sorting Algo code is always full of tradeoffs. Talking about these tradeoffs how your potential hire thinks about them if they even see them. This is the real value of this approach I think.
- langsoul-com 4y agoI hope it's actually to an ide. They do so much to make code easier to read, like showing the code highlighting, function docs, and links to the source
- DeathArrow 4y ago>Nobody sketches code on a white board or notepad as part of their daily work. Sometimes when I'm trying to plan something which requires a lot of thinking I take a piece of paper, write bits of code, draw schematics of the flow, schematics of data structures. If I am planning the architecture of an application which isn't trivial, I like to go to the whiteboard and draw. Even if I have it in my mind, visualizing it helps me find improvements.
- DeathArrow 4y ago>So instead of writing code, consider instead having the candidate read existing code and talk about what it does and how it works. While reading and understanding code written by others is an important skill, I am not sure it would be totally fair in an interview. The candidate might not be familiar with the particular coding style. The code can be very easy to read or very cryptic. I can write easy to read code, cryptic code or anywhere in between. So since reading code doesn't solely depend on the candidate 's skills, basing hiring decisions solely on it, might not be the best idea. I would see no harm, though, if part of the interview consists in testing the comprehension of well written code.
- saos 4y agoNah lets give them leetcode instead!
- pierredewet 4y agoThis is my preferred option also but I love reading the comments when these sorts of posts appear as it seems that interviewing is still something that causes loads of debate and no matter whether the op is whiteboard, tricky algorithm or <other> focussed, there’s still a hot debate. Interviewing just seems broken It must surely boil down to the profession aspect. Doctors and lawyers do a period of internship after and during the degree that perhaps mitigates the uncertainty around hiring. I doubt that doctors are asked to bring in a cadaver to operate on during an interview for a new position, or lawyers are asked to jump into court unprepared and defend someone as part of the hiring practice. It sometimes seems that programming jobs need to be a calling. Ie: you spend 50 hours a week at job doing the thing but then are also asked to have a portfolio on the side that you presumably do in your spare time. It could just be an American thing, though. Perhaps hiring is seen as very risky because sv salaries are so out of proportion to the standard across the rest of the working environment, in addition to there being very little quality control regarding professionalism in the industry that makes technical hiring such a minefield.
- BlargMcLarg 4y ago>It could just be an American thing, though. It's not. You'll find plenty of anecdotes outside the US. Even just outside SV is enough to put things into question, as salaries outside SV are way lower. >Doctors and lawyers do a period of internship after and during the degree that perhaps mitigates the uncertainty around hiring. Two problems with this. For one, this is changing rapidly. Any institute of higher education is becoming a worker factory focusing on what the industry wants in candidates rapidly. Despite this, interviewers continue to complain about the most minor things which in reality are very easy to grasp for people with a degree and some projects. For two, this problem still persists after having some years of experience under your belt. If an internship mitigates the need for other professions to go through this, surely having verifiable experience should do the same. But it doesn't, and it takes away a lot of time from people to build their own portfolio to get through interviews with too. >It must surely boil down to the profession aspect. I don't believe so. Hiring is plagued with perfectionism and idealism, looking for the perfect candidates and failing candidates over the most minor things. You could actually be the best candidate in the world, and you'll fail because you said something or did something in a way the interviewer preemptively labels as "unviable". The problem is actually as you point out: hiring managers are pushing risks onto individuals in the name of "calling", and loads of developers are doing nothing to push back on it. Or worse, they are encouraging it. See also why the average junior requirements includes an entire IT department's worth of skills.
- jokethrowaway 4y agoSounds great for testing the candidate but at the same time it sounds like the best way to get the candidate to look for another job. I still haven't found a company larger than a few employees with a codebase that didn't make me want to leave.
- jacquesm 4y agoThat's a good approach if only because it shows how and how fast someone can build up a mental model of what a piece of code really does. The problem is that the 'existing code' may well be of poor quality and that in order to understand it you first have to get into what it was supposed to be doing in the first place, and this isn't always obvious. So the writer had better take good care to make the code self explanatory or provide additional documentation to give sufficient context. In a way the underlying assumption is that the code is 'good'. And that's where the real problem lies: lots of code isn't all that good and plenty of it is probably best described as 'single use', in other words: write only. Trying to read it or trying to make sense of it is more effort than writing it ever was. And given the fact that code is typically read many more times than that it is written it pays off to write it well, but hardly anybody really does. The pressure to deliver the next commercial feature is just too high. And woe to the interviewee that points out the deficiencies in the code if the author of the code happens to be the interviewer, because people will be people, so this could easily turn into a minefield. Questions to ask of the interviewer before 'reading' the code: - who wrote it? - is it functional? - are you supposed to debug it or explain it? - was it written for the express purpose of the interview or is it code from the company codebase that is representative of how they work there? (this alone might be reason to terminate the interview depending on how it looks :) ).
- throwaway693 4y agoThere is no baseline to measure against candidates as opposed to competitive programming problems
- whitesilhouette 4y agoI do almost the same but a bit differently. Like a lot of people have suggested here that they can't share their company's proprietary code (neither can I). So I have cooked up some sample questions asking people to code for a app involving REST and CRUD (because that's resturant what we do at office). It's not much work and can be done in 2-3 hours. Then I get down to discuss their answers and the 'why' questions around their approach. Always gives me a pretty good insight on their work style and doesn't give the candidates any opportunity to cheat (in these remote times) because eventually they would get caught whole explaining their code. This approach has given me excellent candidates every single time and also led to a lot of time saved otherwise wasted.
- ornornor 4y ago> It's not much work and can be done in 2-3 hours. I bet it’s much more work than that. It’s maybe 2–3h for you, who has reviewed dozens of submissions, have designed the problem, and know what the actual solution is. For the rest of us, it takes trial and error, implementing, polishing (because of course you want to show your absolute best code when being judged solely on your code) and it’s probably actually taking 2–4x as much time as you think it does. No applicant will ever tell you that because they don’t want to look bad. Try and have people on your team do the challenge, you’ll see how much time it actually takes. I personally pass on these. If it’s more complex than “implement array.flatten”, it’s going to take way too long and I decline to go further. If it starts with “implement a web app that…” or “an api that…” I don’t read any further and bail.
- whitesilhouette 4y agoIt's 2-3 hours for a guy having a 2-3 years of experience (which is what I'm looking for). And yes, I get those attempted by the guys in my team before sending it out. And yes, most of the time, I end up flushing out a few bits of the question before actually sending it out based on their suggestions. In reality though, the time spent by the guys varies. I always ask them how much time did they spend on the question after selection. The mileage varies from 30 mins to 4 days (because they had office work/weekend trips and attempted the question only when they were absolutely free). No, the hiring HR makes it specifically clear to not try to give a polished code during the initial call and only work 2-3 hours on it. I see where you're coming from, lengthy problem solving questions are definitely not worth anybody's free time. I've seen problems that can take 1-2 weeks to solve. But for me 2-3 (or even going by your maths of 4x3... 12) hours... is definitely worth your free time... Because 1. that's the amount time you spent while giving your 4 other interview rounds in 4 other companies paying ¼th the salary. 2. Or for a similar company paying an equivalent salary that takes 4 rounds of interviews spread across 4 different days (counting your commute time as well). Implement array.flatten can be Googled in under a minute. That beats the purpose of a test. I'd rather take a telephonic round and be over with it. The core idea behind my shift was to ensure candidates can't cheat. (And I hate video calls because a lot of them end up having connectivity issues during the interview, especially during the difficult questions). > I don't read any further and bail. Yes. This. You're the kind of guy I don't want my time wasted with. There are a lot of intelligent candidates who'd have definitely aced a telephonic round (or even this written test for that matter) but bail out at the sight of "implement a...". In my experience, you're the kind of a guy suffering from Dunning-Kruger syndrome. The good work is there, but the headaches that such candidates cause on the other 90% of the times makes it not worth my time. We can argue this to the world's end but in the end what matters is the demand and supply market forces. You can call my process a waste of your time. I'm sure you'll end up getting a better job the next day. And on the other side of this coin, even I'll end up getting a better candidate than you. In my experience, all the candidates that I've hired in this format have been marvelous, so I'm gonna stick to this.... At least until I keep getting great candidates.
- throwaway14356 4y agoin my ignorance i wondered.. perhaps it is possible to have some automation compare methods used in the employers software with ones used by the dev in their public repos? Imagine how interesting a job offer would be if they can prove you will get to do things you know well.
- EdwardDiego 4y agoIn the past, I've taken existing code that needed a good refactor, checked the unit tests gave a good working/not working signal (i.e., deterministic pass/fail), set up the candidate's preferred IDE/editor, and asked them to refactor it to be better, according to their definition of better. Then we talked about the things they did and why that was better. Probably the best "coding exercise" I've ever done in terms of getting to understand how someone approaches a typical code base. But sometimes candidates were very unsure about how to approach it, they found it hard to proceed without knowing exactly what "better" was. I stopped using this, as I realised that my approach was unconsciously selecting for a certain type of person, one who resembled myself and it excluded people who could be amazing devs within clear parameters. TL;DR interviewing is hard to get right, this reading idea is a good one.
- datavirtue 4y agoSounds legit. Also gives me a look at the real day-to-day that I can expect. No contrived code, just real production code at the company, please. That way I can avoid the great waste of life that is: thousand line functions without tests.
- dennisy 4y agoThis is a great idea! I would love to see some real examples, what can people think of that would work for this?
- mmmuhd 4y ago
- amai 4y agoIn my company we go one step further: We encourage the candidates to „bring their own code“. Then we let them explain their code, discuss possible issues, extensions and so on. Usually simply from looking at the code style one can infer a lot about the candidates level of skills. Also the candidates are less nervous and are sometimes really enthusiastic explaining their favorite side project. All in all it leads to a quite good interview experience for the candidate, but also for the interviewer.
- Aperocky 4y agoI have a lot of weekend-ish side project on github (e.g. http://aperocky.com/cellular-automata/ http://aperocky.com/cellular-automata/), but I also know a lot of capable engineers that does not have that. One of my favorite thing to look at for a candidate are their github, but unfortunately more often than not people don't have it or only CS-X01 repository exists. The interview is in no way affected by this as it is not an indication of weak technical ability. But if someone does have it, it does get looked at, at least through me.
- zeroonetwothree 4y agoHow does this work if they only have coded as part of jobs? Do you assume everyone is working on some side project or open source?
- jansommer 4y agoWould make sense to provide it as an option, and approach candidates without side projects in a different way. I would much rather show up with code I've already written and use that as a starting point for conversation.
- vmception 4y agoMy bet is that it doesn't work. My experience is that they are assuming that, just like those recruiters and hiring managers that look for “an active github” and swear by that
- 4y ago
- hyfgfh 4y agoI would probably think twice before accepting an offer if I had a peek in the codebase of some companies I worked on. From weird practices to complete useless tests and straight copies of other projects without any planing. But for first step a Psychotechnical test on the candidate, and to be fair, the team and manager.
- sirsinsalot 4y agoFor an interview, I took a copy of the product's source code to the interview with me to talk about issues it had. They couldn't work out how I got hold of it. It wasn't open source and only distributed as a binary. It got me the job. Risky strategy.
- pipogld 4y agoThis is brilliant. Thank you for sharing that. I have always thought that writing code in front of somebody else was not indicative of skills. This is showing a very good and simple alternative.
- dccoolgai 4y agoEven better: read the code, understand it and then change it.
- pkdpic 4y agoWhy don't companies just have prospective candidates work for 2-4 weeks on the actual job unpaid and then select 1-2 candidates from that pool based on performance? Most job seekers are working for free when applying for jobs anyway and it seems like this would have the nice benefit of providing a free rotating labor force for the hiring companies. It might even allow them to do without a couple of paid positions long-term.
- nonameking2026 4y agoThis - this is important!
- padheyam 4y agoI am a solo non-technical founder who hired and fired around 10 developers on a freelancer platform before finding the gem of a developer who single handedly completed the platform. Unfortunately, after a year he has left and now I'm struggling to find a replacement. The web app is still running fine, but further development is stalled. I'm wary of giving access to the entire codebase to the would be new hire. And I being a non technical person, have no idea how to give only partial access to my developer. Just rambling after reading the title. Sorry!
- SonOfLilit 4y agoI'm a consultant and former technical founder with a lot of experience in helping non-technical people have control over their software projects. Feel free to contact me (username on gmail) to think about how to proceed in this situation. Edit: obviously interviewing is one of the issues you're facing, but far from the main one. Trust is hard :)
- justconfirming 4y ago
- robbywashere_ 4y agoWhen hiring developers, fetch a stoic subordinate who is A) good at eye contact and B) able to maintain said eye contact without blinking. Have this subordinate and the candidate participate in a staring contest. This will show a couple of things about the candidate: A) How well they maintain eye contact (very important for communication) and B) How long it takes them to back down from a challenge; this taps into their primal instincts.
- natpalmer1776 4y agoI honestly can't tell if this is satire or an interesting look into an alien (to me) work culture.
- leaflets2 4y agoGotta tap into their primal instincts. I would also sound a fire alarm, to see how they react to working under stress, and measure how much their pupils dilate.
- glouwbug 4y agoImagine how valuable pupil dilation would be to a giant tech company pushing infinite scrolling with advertisements to a user base capturing most of America. ...Anyone know if Oculus has been bought yet?
- forgotusername6 4y agoI've had managers be critical of candidates with poor eye contact before. I've had to remind them that not everyone is good at that. It certainly isn't required for being a software engineer.
- cookie_monsta 4y agoIs this one of those tests where you hire the first person to call out your BS interviewing technique?
- amon22 4y ago
- daxfohl 4y agoHow do you avoid language familiarity bias? I've had one interview like this and am sure I did much worse just because the language was Javascript, which I have limited experience with. Intuitively I'd expect that not to make much difference since most mainstream languages are pretty similar, and the interview wasn't syntax oriented. But that's not what I experienced. Signal to noise ratio was there and definitely affected speed of processing the code. (To answer my own question, for coding interview style algorithmic questions, it should be easy for the company to translate the questions to the applicant's preferred language before the interview. (if not then it's probably not a good interview question). Hopefully this company does that.) Obviously if the company explicitly wants the candidate to be familiar with deep aspects of whatever language you use, then this doesn't matter. I can imagine hypothetical cases where this would hold, but I'd think it relatively rare.
- gavinray 4y agoA good interview should be language-agnostic, if it's not a junior position IMO. Most of my code-based interviews have been this way, and when I've been the one interviewing, I say: "Use whatever language/tech you like."
- mc4ndr3 4y agoShoot, just ask them bout their own FOSS changes. "Why'd you design it that way?" "Why'd you implement it that way?" "What alternatives did you consider?" Interviewers be so lazy in 2022 though. 'uh um do a fizzbuzz in ten seconds no your solution not match my first mental solution bye'
- mbrodersen 4y agoWe ask candidates to review and criticise 2 pages of really buggy, badly written C++ code. It is a great way to find out how experienced a C++ developer is and how good they will be solving hard problems. Writing new code is easy. Fixing problem in code written by other developers is much more of a challenge.
- adave 4y agoI liked the article and kudos to reaching top of hacker news.Your article however does not consider real world problems like - What if this technique becomes popular and now there is LeetCode db for your question? In that case its really easy to just know the answer and get far. - Same for reading the code part. Most interviewers have a set of questions they go with to be fair or what not however once you know the code snippet in question you can talk about it. The real issue is that one approach does not work for all and there need to be uniqueness to every team so an avg candidate cannot just hack the interview process. This is the problem with the current system as well since everyone uses it and its become its own nemesis.
- bgro 4y agoBut wait, how is this fair to the millions of software engineers that can only pass interviews by memorizing the question? Isn't that the whole point? To gatekeep people with other learning styles and fast track people who arguably cheated on tests throughout school?