9 ms·
I'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 compa
by buf 4y ago
I'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?
- ratww 4y agoI graduated and worked for a few years as an electrical engineer. I had/have a portfolio of sorts and would gladly bring one to a job interview, including previous projects. > Would you ask a chemical engineer to bring a recipe for a proprietary drug synthesis Nobody is asking for anyone to bring complete codebases, either. Not to mention that, in chemical engineering, if something is proprietary enough, there are patents. Those come with credits. I get the feeling that programming is the only industry paranoid enough to treat the most utterly mundane work as if it was bomb codes, averse to recognition enough to not credit people and disorganised/rushed enough so that 99% of companies are unable to let workers share their findings with others in the field.
- aidos 4y agoWe do the same thing and I find it’s a reasonable approach. For the candidate, it puts them at ease; they’re talking about something they’re familiar with (we go a step further and ask them to make changes to it).
- buf 4y agoI've never been put in the situation where an engineer shared something alarming from a proprietary code base, but hypothetically if someone brought with them the code for how to hack superuser privs for an old company, that would be an ethics violation and I would pass.
- deepsun 4y agoWell it does not matter if it's alarming or not. They are in violation of their signed NDAs with their previous employer. Also, if they don't work there anymore, they should've deleted all the code (if they had it) and surrendered/cleared up all the laptops. But I like your idea, anyway I give big kudos to candidates with their own pet projects.
- deleted 4y ago[deleted]
- pg_1234 4y agoAlmost every employer will violate their employee's rights without a second thought in ways they consider "unimportant but necessary to the business" ... as long as that continues it should be a 2-way street.
- hnfong 4y agoThe point is not necessarily whether it's morally wrong to violate a contractual agreement when the other party is likely to do so. It's that the interview process proposed by the G[...]P may force the candidate to do things that may be illegal to pass the interview. The candidate is of course responsible for their own choices, but the point is that as an interviewer, if you force your candidates to do this, you might short list those who have a tendency to violate contract terms. This might work out for some, but I'd say it's a fair point to bring up.
- leaflets2 4y ago> you might short list those who have a tendency to violate contract terms. An asshole filter https://siderea.dreamwidth.org/1209794.html https://siderea.dreamwidth.org/1209794.html (maybe you've read already?)
- mbeex 4y agoIt hasn't to be the 'best' work. The actual value comes from the conversation.
- ProZsolt 4y agoI have tons of open source code on GitHub to scratch my own itch, but nothing that I consider production ready.
- jseban 4y agoSounds good maybe for a founder or early in a startup, but otherwise this would probably illustrate the mismatch in priorities that exists between a single person's passion project, and risk-averse enterprise groupthink.
- aidos 4y agoI think it’s really important to differentiate the code and the coder. Where we use this technique, I actually say to candidates, “I don’t care about the language / quality / age / immaturity of the code- it’s just something that you should be familiar with”. If someone turned up with an open source codebase to talk about it would be absolutely fine too.
- jahnu 4y agoSurely this will filter out ~50% of people who are good but don’t have any public code? I have a family and as such no free time for coding so I haven’t written any code I can legally show anyone else in more than a decade. But everyone who has employed me is more than happy with my work. Not to mention code is only half of why you would want to employ any developer.
- xarope 4y agoI agree. I would be happy to provide references of the developers and engineers in my ex-teams, whether collaborators or mentees, who would give me glowing references. Instead, I'm asked for senior-managers/directors as references... who were the reason why I left in the first place. I guess HR just wants to know I was actually employed there (tick box)
- moonchrome 4y ago>Surely this will filter out ~50% of people who are good but don’t have any public code? It then becomes a take home assignment where you get to pick the topic. Surely you wanted to protoype some tech but didn't have the opportunity at dayjob - so make that prototype and bring it to review. Much higher interview value than take home assignment IMO, but you need to be competent as an interviewer to enter into a discussion on something you might not understand yourself. And it's also higher value to the person applying because they get to protoype stuff they find interesting.
- EugeneOZ 4y agoWork created in 1-2 hours is very different from a work created in 1-2 months.
- brongondwana 4y agoYeah, but at this point you're not left with many other options other than sticking your finger in the air and hoping you can detect if they know how to write code.
- anyfactor 4y agoI am out. My good code are paid for and thus is owned by someone who is not me and can't be shared with a third party. The code that own is inherently bad as I want to create things as fast as possible without being bogged down by proper code writing etiquette.
- buf 4y agoEveryone in this thread seems to be hung up on sharing code from an employer or 'good code'. You could clone an open source repo and use that if you're worried. The value isn't the code; it's the conversation. "Bring your own code" is just meant to put the interviewee at ease because they are already prepared to talk about their own code.
- anyfactor 4y ago> You could clone an open source repo and use that if you're worried. The value isn't the code; it's the conversation. Open Source code plagiarism is a major problem and doing random forks/clone of popular repos to up your github cred is a thing and in my opinion it is unethical. Even if the interviewee tells you it is an open source project you will have a hard time distinguishing their code and the code from the original repo. I think the interviewer should show their own production code and ask the interviewee what they think and what suggestion they have to offer. If you are not comfortable showing your own production code ask the interviewee to explore an open source codebase. The "Show me what you got" approach puts way too much unjust pressure on a candidate and might force them to chose unethical means just to impress you. Then again if you want be impressed and if it is working so far for you, ignore my whole argument.
- berkes 4y agoWho said th ex interviewee must present 'own' code there? The conversation can just as well be around a library, product or system that isn't authored or contributed to, by the interviewee. 'What architecture is used here, and what are the down and upsides in this implementation'. 'What would you do different'. 'Which part do you admire, and what don't you like'. Etc.
- tick_tock_tick 4y agoSounds significantly worse then whiteboarding.
- caffeine 4y agoI think this is a great interview. I do something similar. I’ve done most of my interviewing in finance where: 1. The engineers are mostly really good 2. They almost never have side projects, and everything they have ever done is super secret and proprietary. For this it makes sense to ask people to do a take-home, and then ask them questions about it when they come in. I usually also ask them to add a simple feature to their code and just silently watch them code it. You learn a lot from watching how someone breaks down a simple problem, especially where they are expert (ie they are working in their own codebase).
- shafyy 4y agoI recently interviewed at Whereby and they did exactly this. It was a breath of fresh air and I really enjoyed it. If you didn't have an existing code, they suggested you built something from scratch and compensated you for the time spent.
- deleted 4y ago[deleted]
- zeroonetwothree 4y agoWhenever I see a comment that starts out bragging about someone’s accomplishments I always assume the rest is going to be simplistic at best and nonsensical at worst. I was not wrong this time either.
- noisy_boy 4y agoSure - I'll be happy to show you the scores of scripts I have written to do every tasks like switch pipewire audio sinks, wrapper to youtube-dl, generate/copy rsa token, convert/combine images to pdf etc that were written in the sliver of time afforded to me after I'm done family and kids. Those scripts in no way represent the code I get paid to write in my job but if you find that to be an an issue, then you have found the flaw in your method.