It is interesting, the two best developers I know are on the polar opposite of each other, from the outside.
A: Started coding when he was 6 years old, was making 3D games from scratch at 12, and sold his first software at 15. Never went to college, as he was right in time for the dotcom boom. The man just loves coding, and always works on his side projects in his spare time, mostly software he finds interesting. At work, he's the closest I've seen to a mythical 10x
B: Hadn't written a line code before he switched majors in college. Went from having zero experience with programming, to being a straight A computer science student, finishing one year faster. Best student prize at university for masters, and then a Ph.D in record time. Writes flawless code, is a top tier architect, and just a machine. Doesn't write a line of code when he comes home (at least according to him), basically severs himself from work as soon as he leaves work.
> It is interesting, the two best developers I know
Over time I've come to appreciate the difference between people who are described as the best programmers and people who are best at delivering results.
Some times they're one in the same. It's wonderful when you work with someone who is both an excellent programmer and excellent and delivering results in a team.
Many times I've worked with or even hired people who are brilliant developers and praised as being very smart, yet they didn't deliver results as well as the average developer on the team who diligently gets their work done.
Looking back, some of the most stereotypically brilliant developers I've worked with have also been among the more difficult to work with. Not all of them, but quite a few. The two that come to mind have been bouncing from company to company for a long time. They'll always have job offers and be able to pass interviews, but actually working with them and getting good results is a different story.
One of them even founded a startup with a co-founder, but unsurprisingly they broke up less than a year into it. On paper he should be the perfect fit to get launch a startup product, but working with him is a different matter.
The brilliant devs I know who are great at delivering results usually find their way into good positions and good companies early in their career and then stay there for a long time.
> Many times I've worked with or even hired people who are brilliant developers and praised as being very smart, yet they didn't deliver results as well as the average developer on the team who diligently gets their work done.
Very smart programmers often have a very different way of thinking about programming problems. If the project structure does not accommodate for this way of thinking, brillant programmers can barely use their "superpower".
Also, great programmers often have a deep love for their craft, and thus be very opinionated about the best possible way of solving the programming problem at hand.
So my bet is:
- you don't have software problems that "need" superpowers (otherwise the average developer on the team would be of little use)
- you don't have a project structure that enables exceptional programmers to actually use their superpowers
- you already admitted that you are rather looking for people "who diligently get their work done"
Exaggeratedly: you hired a Fields medalist to fix your clogged toilet, and you are now complaining that the average plumber is much better at fixing it.
100% this. Nothing turns a 10x into a 0.5x faster than telling them they can't fix the horrible issues putting your api performance in the shitter under load, and instead they have to go help automate the QA build process.
Of course people have to work on what is most urgent at that time, that's just business. You can't just work on what you love to work on, unless you have practically unlimited funds.
Most projects of any size have a number of people working on them at the same time. At least to me it seems best if you have someone that is really good at something to keep them focused on that task with momentum and split other portions of the team on the urgent task.
There is also an element of office politics involved sometimes. There are very petty people who will throw road blocks in the way of a brilliant programmer, because he outshines them. There are program managers who will hobble a brilliant programmer, because they don't want to build dependence on a superstar fearing that star will ask for too high salary at some point. And the brilliant programmer? He's good at programming, not schmoozing.
> Doesn't write a line of code when he comes home (at least according to him), basically severs himself from work as soon as he leaves work.
I'm truly curios what percentage of programmers do write code outside of work. I'd bet the actually percentage is pretty low, especially those who've been at it for five years or more. I don't know that I ever did, except when I first started.
When I do interviews I like to ask candidates if they want to share anything interesting they've made, studied, worked on, or played with outside of their jobs. I explain their answer can only help, not hurt, as a non-answer is not a negative. It's simply an opportunity to bring up something that wouldn't normally come up during the work-history driven interview.
Very few candidates say they've done any programming outside of their jobs. At most, they share something like running Home Assistant on a Raspberry Pi and using Python to automate their house or something. Another common one is to hear about how they used an Arduino or Raspberry Pi to accomplish some small task.
Very few people say they have side projects. Of those who do, when I ask for details most admit it never went far beyond the idea phase.
So from what I can deduce, it's very uncommon for programmers to have true side projects that go beyond a couple git commits worth of code to solve some task, or an idea they had that they never followed up on.
I don't know how this can be true. Interviewing for a job is a zero-sum competition against the other candidates. If something isn't a positive, it has to be a negative.
Side projects are less interesting as the number of decades you write software for a living increases. Of course, everyone is different here and use cases arise.
I think this is a rude question to ask, and it would reflect negatively on you, the company, and the group dynamics, if I were asked it.
It shows an unprofessional and inappropriate interest in things unrelated to work, and, from my experience, is a good indicator that the person will either micromanage, has poor work life balance, or is not socially fit to be a manager.
I know that sounds super harsh, but you should seriously reconsider. You're going to scare people away. There's a power dynamic that you don't seem to be aware of, during the interview process. It's not your concern what they do with their free time, unless they present it to you, unprovoked.
This is from someone who has interviewed hundreds of people.
Besides all of that, it opens you up to litigation for discrimination, depending on the answer they give. I suggest talking with your HR department. Where I am now, questions about personal life are strictly prohibited, for that reason.
edit: please note the "unprovoked". If people want to share the projects they do in their personal time, they will include it in their resume as a line item. I've seen it in probably 30% of the candidates. It means "ask me about these things".
> It shows an unprofessional and inappropriate interest in things unrelated to work,
No, it's a chance for candidates to bring up relevant experience that might help their candidacy.
The question isn't about things unrelated to work. The question is asking if they have any additional experience outside of work that might help us better understand their skills for their job application. Many people have relevant experience for the job that they gained outside of work. Asking about that is not only okay, it's a good thing.
> and, from my experience, is a good indicator that the person will either micromanage, has poor work life balance, or is not socially fit to be a manager.
Asking candidates if they have any extra experience to share is not an indicator of micromanaging.
Jumping to completely unrelated conclusions and drawing extreme assumptions about people is not a good way to interpret a question like that.
I explained that the question cannot have any negative value to the candidate. It's a chance to bring up extra things if they have them and we didn't cover them. Literally doing the candidate a favor, not being rude or micromanaging.
> It also opens you up to litigation for discrimination, depending on the answer they give. I suggest talking with your HR department.
Asking candidates to share their work-relevant experience does not invite discrimination lawsuits. How are you coming up with these interpretations? Legal was involved in reviewing our hiring processes, so no need for condescending lectures about getting HR involved.
> Asking candidates to share their work-relevant experience does not invite discrimination lawsuits.
I suggest you talk to your HR department. This isn't my interpretation, it's that of our cooperate lawyers.
If they say "I just had a kid, I spend time with them", is a good example. This should be obvious to you, which is further evidence you should not be asking these questions.
edit: can't reply directly. No, that's not how it works. You being made aware of it, and you using that information is enough. Good luck!
> If they say "I just had a kid, I spend time with them", is a good example.
Your understanding of these laws is flawed. A candidate volunteering information doesn't make the company liable for discrimination against them.
It's a common misconception that if topics like having kids or being married comes up in an interview then the company is liable to be sued for discrimination. It should be obvious that a candidate can't entrap a company by injecting this information into the interview when it wasn't asked. Even if the interviewers do ask, a discrimination lawsuit has a much higher bar than the topic simply coming up in the interview. It has to be demonstrated that the information was used to discriminate against the applicant, not just that it was discussed.
Your interpretation of my question is also flawed. I'm not asking "Tell me what you do in your free time." I'm asking them if they have anything outside of work that they'd like to share that would help their case.
> I suggest you talk to your HR department.
Please read my entire comment. The legal team reviewed our interview process and had no problems with it.
I think maybe your HR department has tried extra hard to scare you away from subjects they want to avoid, which has led to a misunderstanding of how the law actually works. It's common for HR professionals to tell interviewers that there are "illegal questions" or that if a topic comes up at all then you're going to get sued for discrimination. In reality, the legal bar for these cases is much higher. HR professionals just want to scare interviewers away entirely and drive the point home.
Asking candidates if they have an additional experience to share isn't an invitation for discrimination lawsuits. I suggest you open your mind a little bit and consider that some candidates may have more to offer than appears on the bullet points under each job on their resume.
I worked for Google for a while and there was a whole set of banned questions and topics- for example, when interviewing, I was told to never ask where somebody was from- that's discriminatory.
Originally I assumed all of this was good-faith advice from lawyers. It was only over time that I recognized that the leadership at Google continuously got itself in trouble by doing illegal things around hiring, and was telling interviewers all sorts of stuff that simply wasn't supported by law (similarly true for the constant warnings about not reading patents, or speculating about legal problems in a discoverable medium- it was the execs who fucked up, not the employees). I had to unlearn a lot when I left for another company.
Please keep asking people questions like this- I like how you phrased it: "this can only help, not hurt you".
I think a lot of this is simply asymmetric incentives for the lawyers. If they give legal advice that is overly conservative, it's some other portion of the business that suffers - we hire the wrong people, or we provide a worse product, or we lose out on revenue, or deals don't get made, or the code is overly convoluted, or employees get muzzled. If they give legal advice that is overly aggressive, they have to deal with the consequences when we get sued (at best) or they get fired (at worst). So they will always err on the side of caution.
I've also noticed a dramatic difference in how willing legal, HR, PR, REWS, etc. is to take risks now vs. back in the heyday of the 00s when the company was smaller and everybody felt like they were in it together. Some of that is probably simply because the company was a lot smaller and hence less likely to get sued, but a lot of it is because back then people tended to act in Google's interests a lot more while now they act in their own interests.
> Asking candidates if they have an additional experience to share isn't an invitation for discrimination lawsuits.
It's the fact that you decided not to hire them, because you found out that protected information. It was unrelated? Prove it in court. That's the reality of discrimination lawsuits.
I think we'll have to agree to disagree.
If you're confident in this, maybe in your next couple of interviews try "That last question is something new that I'm trying. Do you think it's good, or do you think it's too personal?". You'll have to read their body language, since the power dynamics will prevent a direct answer, for many. If you're not comfortable asking that, then that's evidence enough.
> It's the fact that you decided not to hire them, because you found out that protected information.
Again, you don't understand how this works.
If a candidate runs into your interview room and declares that they are a member of 5 protected classes, that doesn't automatically open you up to discrimination lawsuits.
How is this any different than asking someone about a past job and then they answer with "I didn't finish that project because I had kids and left for parental leave". It should be obvious that a candidate can reveal information about having kids for virtually any question.
> It was unrelated? Prove it in court.
Once again, that's not how it works. The onus is on the applicant to prove that the information was used for discrimination.
A candidate can't claim that a company discriminated against them for information they volunteered during an interview and then the company loses. They have to provide reasonable evidence to proceed to discovery, which would have to reveal something substantial that showed the information was used to discriminate, such as e-mails or chat logs.
> I don't believe you asked your legal department.
Legal was involved. Why do you only believe that your HR department wants to be involved in hiring processes, but mine obviously would not?
If you're not interested in discussing in good faith or you only want to ignore what I wrote and inject alternate facts, I can't help you.
I quickly edited that out but you saw it. I don't want to dox myself, which is why I removed it. You would trust our legal team. It's an opinion shared by every company I've ever worked for, except a startup, where they didn't know wtf they were doing, and there was no training at all: no personal questions that persuades/compels protected info. It's trivial to find this online.
To stop focusing on this last point...
> I'm not asking "Tell me what you do in your free time." I'm asking them if they have anything outside of work that they'd like to share that would help their case.
You are asking them that, in a practically indistinguishable way. Again, because of the power dynamic you don't seem to be aware of, they must give you an answer that explains why, if not. The legally appropriate response would be "I prefer not to answer what I do in my free time outside of work", which people would be uncomfortable, so they're going to be compelled to reveal to you why they don't have anything interesting, if they don't.
Luckily you guys can work at different companies and not have to interact except on HN.
(Personally I've been on both sides of this - early in my career I had a ton of hobby projects, wrote compilers for fun, and would often ask the interviewers what was the most interesting project they've worked on, either for work or for fun. Now I have a family, work stays at work, home stays at home, and I don't really care what my reports do on their own time. But different segments of the tech industry will fall on different ends of this spectrum. Know what you want and don't waste time interviewing at places where the culture is dramatically different.)
> and would often ask the interviewers what was the most interesting project they've worked on
And that's unprovoked. That doesn't conflict with what I said (I intentionally included it). Whenever someone is interesting in sharing, they present the work themselves. They provide their GitHub link, or include it on their resume, mention it, etc.
> And that's unprovoked. That doesn't conflict with what I said (I intentionally included it).
How is asking a direct question to the candidate "unprovoked"? This doesn't make sense.
> Whenever someone is interesting in sharing, they present the work themselves. They provide their GitHub link, or include it on their resume, mention it, etc.
No, they do not always do this. This isn't a good assumption. Asking candidates if they have anything extra to share reveals additional projects quite frequently. I would know because I do ask.
I was responding to what above above said, in the context of an interviewee:
> and would often ask the interviewers what was the most interesting project they've worked on
Above asking, and initiating the conversation, is clearly unprovoked.
A interviewer asking them isn't the same as them asking an interviewer, where their answer potentially means you don't get hired. The interviewer is forcing an answer about their free time. It's "provoked".
No, you're responding to what I said. There are multiple people calling you out here: please try to keep the usernames straight when responding.
The point of an interview is to ask questions, and particularly in the more freewheeling environment of a startup, "what sort of stuff do you like working on?" is very much relevant to whether they'd be a fit. Sergey Brin would famously ask early applicants to Google "Teach me something that I don't know already, about any topic." YCombinator's application form, for a long time, had the question "Tell us about a time you successfully hacked some (non-computer) system to your advantage", and the answers were explicitly supposed to be naughty if not illegal.
Not everybody works for a big company with a big HR department. The tech industry is a broad place.
Author was irrelevant in my reply. I was responding to the context. And come on now, consensus doesn't define correctness.
"Teach me something that I don't know already, about any topic."
"Tell us about a time you successfully hacked some (non-computer) system to your advantage"
This should not surprise you, but those are perfectly fine. These are very similar to the examples given to us for the appropriate/professional way to ask.
That's a good recommendation for the original commenter, on how to reword their question. They're not direct probes into personal time. I should have included something like that in my original reply.
It feels slightly disingenuous. Many engineers do their work with a sense of personal duty and pride. Should a drive for self-improvement be neglected because it didn't happen outside of work hours?
For the years I had paid employment I'm very thankful that I didn't make programming my hobby in addition to being my work. For the last 5 years it's been both and I wouldn't wish that experience on anyone
The field is pretty big. There are total mercs who only code because they get the big $$$ for it and wouldn't write a line otherwise, and there are idealist hackers who would keep coding 10 hours a day in "starving artist" mode even if they couldn't get jack for it. And anything in between.
I did for maybe the first 10 years of my career. Then it kinda died down because family and other obligations increased so had less and less spare time.
Also, the older I’m getting the more I’m prioritizing activities that benefit my body. Working out more, home cooked meals (so learning to actually cook well instead of throwing things together and hoping for the best).
I miss the side projects sometimes. At least I still do AoC yearly.
I dabble at home, but it looks nothing like work code. I also started writing code for fun as a kid, before doing it professionally. I do find it hard to do much after a day of work and taking care of family. (I've just been laid off after 20 years at my company, so I guess I've got more free time now.)
Last year I wrote a self-hosted dependent typed programming language, after spending a couple of years helping out with Idris and learning how those languages work. I started that process because I was pretty burned out and needed something stimulating to do.
Before that, it was little things, like code to read various binary file formats. E.g. a read-only sqlite implementation, code to read realm databases, reading indexed db off of disk for various browsers, decoding apple notes database, decoding iOS backups.
Like you I put an enormous amount of personal free time into software engineering in my career. It had massive benefits that have paid out in many, many ways.
Some days, when I wrap up work, I feel burnt out and just watch TV shows or make food. Other days, I get so into what I'm coding (for fun/edification) that I look up and it's 10PM. It helps to have a long term view- my expectation is that I will be working on projects for a decade or more, slowly getting more knowledgeable, so i don't see a need to rush or overwork.
It's a bit like saying from HR employees that they don't recruit/fire people after hours, for fun.
Or surgeons don't operate after hours.
Software developer is a job with really weird expectations from outsiders. Show me your GitHub! Show me your side projects! You can't be good if you are not passionate even after a day's work!
Devs must have high IQs, have autistic traits, a university degree, master algorithms and several programming paradigms and are expected to simultaneously be able to integrate well in any team with average people, while science already identified that this is more difficult for such people...
I don't know man, my parents are surgeons and they're just as much vocateurs as I am. I have come home from football to see a surgical video on the TV. I cannot imagine being something else. Why would I not care about my primary thing? My wife is a creative director and she draws and paints in her spare time.
There's all kinds of people in the world and I like to work with vocateurs. That's an opt-in choice and others can go work with others. No harm done.
Sure, but there's no single person that believes engineers must be all those things, you're conflating many opinions to form an impossible litmus test. In reality as the GP pointed out: great engineers don't all fit the same mold, and frankly neither do all jobs and hiring manager expectations.
I spent roughly 25 years writing code for a living while also writing code for fun. I think this was pretty normal when I got started; coding was neither cool nor especially lucrative back then, so the people who were into it were into it, for its own sake.
I didn't stop coding in my free time because I stopped enjoying it, either, but because I could no longer sustain the fantasy that anyone was going to use any of the stuff I wanted to build. The level of motivation I feel for a project which is not going anywhere is not high enough to sustain me for more than a week or two.
I work hard to cultivate hobbies outside of programming, but inevitably, I find a way to improve that other hobby with software. I'm just wired like that I think. I love systems. Code is my love language. :)
I'm currently trying to digitize a hopelessly analog procedure to calibrate aircraft engine fuel injection systems. Rpi, transducers, and python to the rescue! :D
Shit, how many programmers barely write code at work anymore because that's not what their job is? And I'm not talking about new AI things, I'm talking about design docs and meetings and OKRs.
I programmed at home as a hobby before I worked in the industry. Then, when I worked as a software developer, I pretty much stopped entirely because I did enough software at work. Finally, I moved over to the dark side to start doing product management and project management, and I've re-started hobby projects.
> Hadn't written a code before he switched majors in college. Went from having zero experience with programming, to being a straight A computer science student
I’ve met these people before, they’re almost always undergrads from elite schools that could pick and succeed at anything they choose
I don't think elite school has much to do with talent just with how visible the things they are trusted with are.. From community college I've met some building things for companies too out of the mainstream to understand how unusual their IT worker was.
Pretty much all universes are first and fore-most strong people filters from my experience.
The prestigious schools filter up-front based on merit, and filter a 2nd time based on the ability to keep up and remain diligent to pass the courses. Less famous schools only have the 2nd filter, and have more people drop in the process that could not keep up.
The quality of education can be very similar, or even favor small schools in some subjects based on luck and school staff interests. The vast majority of learning at this level is made by the student anyway; there is only so much a good teacher or expensive teaching resources can do to help.
I've talked with interviewers that seemed completely uninterested in what courses or major was taken, just the fact that someone got through a difficult major as a stamp of quality.
At my undergrad there were 16 4.0s in a CS graduating class of about 120. I didn’t get close - about a 3.92 because I’m a poor student too. Grade inflation isn’t just a thing at elite schools, even my undergrad with a 45-55% accept rate
I'm not sure accumulated average grade metrics are actually very useful. Just the difficulty variation between courses means you can game those metrics with careful choice anyway, Or studying in ways that benefit the tests more than the subject.
Choosing difficult courses and passing is more valuable to the student. (well, a 4.0 on a paper is also valuable in a way, but more in a charade way)
What concerns me is not grade inflation, its difficulty and deapth deflation. I had plenty of courses that bored me but that had plenty of fun depth and difficulty that could have been covered with a bit more effort of students and teacher.
But we cannot measure courses difficulty and deapth, so we measure grade inflation instead. Which then lead us to false conclusions about how to solve it. (making the metrics more accurate at the cost of time and resources fir teaching the subjects)
i think less emphasis on grade and more emphasis on covered subjects could mabie shift the incentive. Its difficult to actually implement through because humans love maximising metrics... so it will remain my fantasy.
If you look at the resumes of anyone at top schools and who gets into YC this isn’t true, they’re simply more accomplished before college than the rest of us are after (or in my case, ever).
I look at resumes from time to time, just enough to know there aren't enough noble prizes.
I also knew a number of elite school students and aside from usually having wealthy parents and motivation problems when given real world tasks with real world levels of possible reward, they aren't all that far away from the average.
Take for example SBF.. possibly a genius would have gone straight to juvi either way if he was from a community college town and wasn't a nepo child of actual geniuses. More important than having any skills in the subject, he spoke economic shibboleth as a native speaker which his parents learned as a second tongue in a much harder process.
A: Started coding when he was 6 years old, was making 3D games from scratch at 12, and sold his first software at 15. Never went to college, as he was right in time for the dotcom boom. The man just loves coding, and always works on his side projects in his spare time, mostly software he finds interesting. At work, he's the closest I've seen to a mythical 10x
B: Hadn't written a line code before he switched majors in college. Went from having zero experience with programming, to being a straight A computer science student, finishing one year faster. Best student prize at university for masters, and then a Ph.D in record time. Writes flawless code, is a top tier architect, and just a machine. Doesn't write a line of code when he comes home (at least according to him), basically severs himself from work as soon as he leaves work.