Ask HN: What do you look for in a software engineering candidate?

39 points by trycatcthrowawy ↗ HN
Hi HN,

I am at my wits end trying to find a job and considering giving up. I graduated 11 months ago from a leading university, an active contributor and open source maintainer on Github (with libraries of my own) and have written apps that is live on the App Store.

Been doing over 20 algorithm challenges a day (10 on leetcode, 10 on HackerRank) and I still keep getting no response or an immediate rejection from companies big and small.

Went through one company which lead me on with first a phone interview then a hacker rank challenge then a take home project then a onsite interview with a whiteboard programming challenge and a final interview. I never heard back from them, only to find out later on that I had been rejected without them telling me!

For me this has happened so many times that this was the last straw for me after 30+ interviews from several companies I applied for. It's getting to the point that I'am seriously considering ending my job search and I am tired of it all.

For those who are employers, founders or engineers:

what do you look for in a software engineering candidate? (CV, interview or overall)

what skills are you looking for the most?

Throwaway account for obvious reasons.

29 comments

[ 4.5 ms ] story [ 77.2 ms ] thread
What I look for is ability, passion, communication, and the ability to lead or at least be self-sufficient (or for a junior person, someone learning how to do that).

It's hard to say why you've been rejected. It sounds like you have a reasonable resume, since you've gotten a lot of interviews, even though none of them landed you an offer. So I don't think it's your resume or CV that is the problem.

There are lots of automated rejection pipelines. I have a great CV and think I'm a pretty awesome developer, and I've been automatically rejected by pipelines many times before (elastic.co I'm looking at you). Sometimes within hours on off days or in the middle of the night.

No response to jobs or automated rejection is simply part of the landscape these days. Although it's hard, don't take it personally. Put out a lot of feelers, which it sounds like you're doing.

Getting an interview is a crapshoot I think. Once you've gotten the interview, it's mostly about skill. There is some luck involved because you never know when there is a better qualified candidate also interviewing - although sometimes as a person doing hiring, I've seen two good candidates for one job, and I hire them both (sometimes for the same team, sometimes for a different team, etc.)

Why do you think you failed at the interviews? Note, giving a good interview doesn't mean that you're good at your job, and visa-versa. IMHO that's why the software engineering hiring pipeline is so broken.

I think communication and likability are key to giving a good interview, and these are skills some devs are not good at. But they are key to any job, since likely you will be working with a team, or at least a manager, who you have to be able to communicate with. If you're nailing all the whiteboarding coding questions, you might just be coming off in a bad light personally.

Algorithm challenges frankly I find to be nonsense and almost a negative signal. Instead of doing something of value, you're basically taking online quizzes. Nobody programs like leetcode or hackerrank. While algorithms can be important, I don't think it's important to be able to know the answers to trick questions. It's more important to be able to learn and pick up what you need at the time.

What you didn't mention is any internships. Did you intern somewhere when you were at school? This is how many people out of school get their first offers, and I find it's good for both sides. You know the culture, the job, and it's more like coming home than starting something from scratch. No internship is honestly a red flag for someone graduating - everyone does internships these days.

But that's water under the bridge. Call up people you knew at university and ask them how their job is going. See if you can get a referral (this is how it's really done, personal referrals get past all the nonsense, and if you have someone internal saying you're good, you basically have it in the bag).

Now if you don't have any uni friends pulling for you, I really have to think that you might just not be all that friendly, in that you might be standoffish or have some kind of personal trait that is putting people off. Ego in programmers is the worst, and if someone is mansplaining to me in the interview, I almost never hire them (pet peeve). Figure out what it is. Get another round of interviews going and try different approaches.

And if all else fails, just start your own company or something. It sounds like you've already launched things, which is definitely good. It's certainly not easy though.

Good luck.

Wow, you sound like a very tough person to interview for.

I agree that algorithm challenges are kind of pointless when it comes to software engineering but you can hardly blame the OP for doing them given that many companies do value them. And the OP did say they also have their own libraries on github and open source contributions too..

> Now if you don't have any uni friends pulling for you, I really have to think that you might just not be all that friendly, in that you might be standoffish or have some kind of personal trait that is putting people off.

That sounds quite harsh really. Makes me feel sorry for the people you interview who might be perfectly nice people to work with and capable of communicating but don't get hired because they aren't good at making friends or don't have "likeability" as you call it.

> Ego in programmers is the worst, and if someone is mansplaining to me in the interview, I almost never hire them (pet peeve).

Are you assuming that the programmer being interviewed is a man? Thats a bit sexist..

I don't think it's as black and white as you put it here. A lot of it depends on the exact needs of the company.

Ability to solve algorithmic problems can indicate ability to find quick solutions to novel problems. I'm not sure how else could you test for it? Not everything can be googled, learnt quickly or have step by step instructions.

I think the "likability" also depends a lot on the job. Some jobs are more client facing, communication and mentoring than others. I don't think one is required to crack jokes, display complete confidence and have ability to discuss any topic, but there are definitely things you should not do. I'm not good at making friends and I dislike talking to people even though I don't show it, but I can still show myself in a positive light during interviews. I can pull the weight for 1 hour if I have prepared for it.

Not sure what was exactly meant with the "mansplaining" part, but I find this term extremely gross and unnecessary.

Algorithm challenges / whiteboard coding is a whole debate in itself. In fairness there are arguments on both sides I think.

As for likeability or having friends at university - I really don't think that is a fair thing to judge somebody on at all when interviewing for a programming position. I agree absolutely that personal skills and emotional intelligence are necessary for the job but being likeable? In a professional environment that should not matter one bit. Its also completely subjective.

And yes, the whole mansplaining thing is really quite obnoxious.

I think the argument for looking for likeability is that if everyone on the team likes one another then they probably work better together professionally. In my understanding the primary pitfall of this is that it can exclude perfectly competent developers. Not everyone needs to be friends.
The biggest red flag with this post is misspellings, inconsistent capitalization, and bad grammar. If you're not a native speaker, then it's the misspellings, inconsistent capitalization, and some of the bad grammar.

My best guess is, your resume has similar sorts of problems and your interview performance is poor.

He got the interviews, so he already passed that stage.
Have you tried finding a job at the university? Also, university PhD students get paid that’s another route. What states are you trying in?
Yes, they get paid, but not as much as tuition is for the PhD.
Tuition is free for most PhD Comp Sci students.
Try writing a small project and sharing it. Show your passion rather than memorising leetcode. It’s very hard to know how good a coder you are with leetcode despite what Google thinks.

Most employers only care about if you can do the job. If I throw something at you, would you need only guidance or a ton of help. A small project helps demonstrate this.

My 2 cents.

30+ interviews suggest poor interviewing skills. Feel free to pm me and I'd be happy to help.
First thing to do is to understand the 3 Key points of an interview. Almost all questions break down to 3 questions. For the pedantic I know you can come up with a corner case, but this is still a valid rule.

1) Can you do the job?

2) Do you fit in?

3) Will you do the job?

So let us address each of these, although they all sound VERY obvious.

CAN YOU DO THE JOB:

This is mostly answered by your resume. If they did not feel you could do the job they would never have had the interview. BUT during the interview they do VALIDATE your resume claims. Or at least they try to. All of the extensive white boarding and testing is just because (or should be because) they are not sure your claims are valid. If this is not the case, then they are not being intellectually honest and are just grandstanding. But, per your claims this is probably not the issue.

DO YOU FIT IN:

This is about communication. How well do you express yourself, how well do you communicate ideas. I like to ask a question I know the person cannot answer, but they think they should be able to answer. I usually build up to it with ones they definitely should know. I do not remember the answer. A real jerk I am. The objective is to have the person admit they do not know. I would rather hear you do not know something than feed me BS that will waste a lot of resources. I do not need a 'Know it all' that does not know anything. If a person provides an answer I write it down word for word. Then I go look it up. Like I said I can never remember the answer.

Final note on this point, the more the interviewer talks the better they think you are at communicating ... (this applies to dating too)

WILL YOU DO THE JOB: (an entire book could be written on this one point)

This seems like the most obvious, 'You pay me I work!' how much simpler could it be....

BUT:

When crunch time comes are you willing to put in the extra work?

If a competitor offers you 1% raise are you out the door?

Is this JOB / COMPANY / INDUSTRY your passion?

Coat and tie? Show up early? Well groomed?

Send a thank you note? Bonus points if you answer the unanswered question from 'Do you fit in'. Include commentary about the interview. Make the note brief, but have key points.

Did you research the company?

Are you ready to work now! Do you know where your desk will be? If not, why did you not ask? Only excuse for not finding this information is you really do not want the job. You must bring a list of questions to ask them.

Be sure to have a separate list that are HR related. Asking your future boss about vacation time means you are just there for a pay check not the passion.

I need coffee so I will leave it with that.

Put an email in your HN profile, even if it’s a throwaway email so people can respond to posts like this personally. To answer your question: I weight the interviews on-site the highest, then the HackerRank, and the CV is an optimizing tool to ensure I’m not spending my time on bozos.
Send me a message (email in profile) and I can do a mock interview with you and give some feedback.

Outside of technical ability I look for people skills, communication, reliability, self sufficiency.

Where are you applying? Aside from iOS what are you technical skills?

For general technical roles, in no particular order. In only technical rounds. Leadership etc. rounds are separate.

1. Ability to explain their current project technically and suggest improvements, reason decisions, extend solution, testing strategy, testing coverage etc.

2. Simple algorithmic problem solving. Nothing complex.

3. Basic data structures knowledge, again nothing complex.

4. Depending on experience, ability to design a small part of a big system in the context of the big system.

5. Ability to identify entities/models for a simple use case keeping in mind the Object Oriented principles of design. No Design patterns, just basic separation of concerns, DRY etc.

6. For the candidate's language of choice, knowledge of the language basics. For e.g. in case of Rust, information of how borrowing/ownership works. Or for Java, how equals/hashcode works etc.

7. Passion about programming. How the candidate keep themselves apprised of new things in tech.

You could try a briefcase problem. My buddy at work wrote about it:

https://sendgrid.com/blog/im-great-technical-interviews-got-...

I recall when this happened. For us interviewers, it was really exciting how much thought a candidate had put towards our business. His onsite interview was practically a checkbox after his briefcase problem (to ensure some basics like communication and non-jerkiness).

To be more inline with your question, as an interviewer, I look for communication, how you accept/reject suggestions, familiarity/fluency with your choice of tooling (if you say you are a Java person, and do some Java coding on site, you should be able to get something with simple unit tests to compile and run), understanding on how to productionize services (what metrics, logs, and traces you would implement on some sample code), and be able to communication about system design and tradeoffs.

Do some digging in on the culture of the place you would be working. They might be looking for like-minded folks in some areas. Fo us, at work we look for candidates that have (what we call) our 4H's. They should be happy, humble, honest, and hungry. We have some questions that help ferret these out. But an example would be talking about past projects and team work, and the candidate is talking about "I, I, I," instead of "we, we, we." In most non-trivial team projects, there should be an aspect of "team" in the responses. While this would not rule-out a candidate, it would raise a flag that all the interviewers would talk about when deciding to move forward with the candidate.

is it possible that the problem isn’t your technical ability but your personality or location?

i would often hire someone that’s slightly less skilled but a great person to be around than someone with god-tier skills that nobody will like.

i would ask for feedback. some companies won’t give it to you (pseudo legal reasons), but others might play ball

Dev team manger here and a cofounder of 100% remote team. What I am looking for in candidates. Tech aspects: some experience in the area we hire for. But most important soft skills: Honesty, being humble handle criticism and lear, be able to clearly communicate which includes neat emails, be open to new ideas (don’t be stubborn), and most important- great communication (let me know you receive my email, confirm you are working on it, say thank you for interview, send me email that the problem is hard you need more time, keep me updated before I ask you for an update, keep Slack on your phone and check it time to time). Our startup is 2 years old and the only reasons why we had to stop working with any developer were problems with communication.
Send me your resume and github (i care about this more). tehlike @ gmail
Good communication skills, eagerness to learn (engineering is a career not a job), some relevant experience with the stack we use. When I pick a specific candidate, I give them a personal assignment. The key is only one candidate gets this assignment. I think it’s incredibly rude of employers to give assignmennts that take 10+ hours to complete only to reject a candidate even though they did the assignment successfully. That’s why only one candidate gets the assignment: pass it and you’re hired, fail and we reject you
Its really hard to say without knowing you in person and there are so many factors that could effect this I can only really make guesses as to why you are being rejected.

Are you applying to junior roles? If not then maybe you are punching above your weight. Also, and this might not be easy to think about, but could it be a personality problem? Perhaps you came off as arrogant or somebody who would be hard to work with?

In the interviews you've had were there any questions you were asked that you couldn't answer or that you stumbled on? What were those questions?

Also I would try hard to ask the companies who rejected you, why they rejected you. Of course they will probably say something like "we didn't feel you were the right fit for our team" but try and push them to give you legitimate feedback. Tell them you are genuinely trying to figure out why you are not having success in interviews and hopefully they will be kind enough to give you some constructive feedback. That said I'm not 100% sure this will work but its worth a try.

Based on what you've said here: >"Went through one company which lead me on with first a phone >interview then a hacker rank challenge then a take home >project then a onsite interview with a whiteboard programming >challenge and a final interview. I never heard back from >them, only to find out later on that I had been rejected >without them telling me!"

I would suggest you could have a couple of issues (bearing in mind that I have little evidence to go on):

1. One might be technical competency - The only time I'll repeatedly give technical questions i.e. HackerRank, TakeHome, Whiteboard is if I'm not convinced that you have the technical skill by some earlier stage.

2. You're failing the "cultural fit" test. This is in my opinion always the hardest one to figure for an interviewer, and is usually the last question hanging over a candidate. I understand that you're frustrated with the process, but any semblance of arrogance during an interview is often a big negative in the post interview recap. Particularly if the position is more commodity than specialist developer.

To add more context can you do any or all of the following; - Post some code - What sort of position are you going for? - Where are you based?

My company is hiring; email me and I'll look at your stuff and make a decision about recommending you.
As a hiring manager, I look for smart, curious people that are good at communication. I am ok if you do not have all the relevant skills if I believe you can learn them in short order.

If you happen to be in the NYC area, reach out to me, I would be happy to take a look at your resume.

Hello tmaly,

I'm a non programmer who has been going to self-taught route studying to become a developer in Python. I'm willing to learn and I highly motivated to become a better programmer I could enter the tech/finance industry.

It would be great to get any advice insight from you. Not sure if your post was for non-programmers at your company or for outsiders who are willing to learn Python and programming from you to add more developers to your team? I'm just trying to find a way to break into the field of professional software development that involves the use of Python programming.

Please feel free to contact me at your earliest convenience. If you like, my email is:

pydeveloper22@gmail.com

Also read your older and recent posts by you that your company is looking for junior/mid developers at Interactive Brokers in the CT/NYC area.

Well, I checked out the Interactive Brokers site and they have at least openings available listed on there what looks to be for Junior and mid-level Developers.

So, I see that you work for Interactive Brokers. Don't know if that still holds up but I wanted to check if the Junior/mid level Developer job is still available?

As someone who has been going the self-taught route where I enjoy using and working with Python as far as learning purposes go.

And after quickly reading your post here I figured to reach out and try a somewhat different approach than the old cover letter and resume email method and contact you if you may have any info to this current opening at your company?

So with that said, here I am..and I wanted to inquire to find out if this opening is still available? If so, do you have a contact email to learn more about this position and the things you require in regards to the nature of the job?

My apologies in advance that this may not be the response to your post that you were looking for but I figured why not take a chance and try something different to reach out and learn what I can do to improve my chances to be part of the Interactive Brokers dev team.

Any help in this matter will be greatly appreciated. Thanks

pydeveloper22@gmail.com

Yes, I still have an opening available in my team. Please apply online and I will review your application

There are two possible application choices to take.

With a formal degree in IT/CS or with industry experience apply here

https://careers-interactivebrokers.icims.com/jobs/1806/progr...

If you have no industry experience or formal degree, it is best to start out as an analyst to learn the business side and transition to programming apply here:

https://careers-interactivebrokers.icims.com/jobs/1811/junio...

Hello Ty,

Thanks for replying back to my post I apologize for the numerous postings I'm still relatively new on here and learning how this forum structure works here.

I definitely appreciate the advice and insight you provided as to how to go about the application process especially for someone as myself who fits more into the second category and it's also bonus being in the DMV area.

Although the first application category is still quite appealing to give it a try.

I also didn't realize you'd be the one to review applications so that's great to hear.

Do you know by any chance if the qualifications are strictly required or are they a list of items that are strongly preferred to enhance one's application chances? I apologize for all the questions but I would email you but I would imagine this is probably the preferred method of communication..hehe

Once again, thanks for all the help.

--Kwaz