Ask HN: How to lead a stable, happy career as a bad interviewee?
48 comments
Your ability to solve leetcode problems fundamentally determines your job prospects, just as being attractive/rich/famous fundamentally determines your dating prospects. Whether or not this is a fact to be lamented, it's still a fact. Trying to get a job without doing leetcode is like trying to get more dates without being more attractive. Doing leetcode is how you get a job.
Here's a formula for stable job prospects: walk into the interview, in 30 minutes solve the challenge that most candidates can't finish in an hour, spend 15 minutes talking knowledgeably about your solution, then spend 15 minutes shooting the shit and building rapport with the interviewer. Your pass rate will exceed 95%.
To consistently pull that off, you have to do leetcode.
Here's a formula for stable job prospects: walk into the interview, in 30 minutes solve the challenge that most candidates can't finish in an hour, spend 15 minutes talking knowledgeably about your solution, then spend 15 minutes shooting the shit and building rapport with the interviewer. Your pass rate will exceed 95%.
To consistently pull that off, you have to do leetcode.
I agree with this now. I just went through some interviews and I should have practiced more leetcode, should have practiced whiteboard pseudo code and should have reviewed my big-o. With 10 years in, the skills needed to demonstrate knowledge in an interview are stale because things like big-o are internalized/intuitive and don't often come up in actual work (as something that gets discussed much as it might in an interview, YMMV).
I really resisted buffing up in my interview skills because it seems silly but I realized after the last couple that it clearly impacts the perception of those interviewing you (should have been obvious as I'm interviewing others but not all places interview the same -- we don't ask much about CS fundamentals). And that perception likely has a big impact on your compensation negotiating because you're going to get pegged lower than your ability and be less desired unless you can clearly demonstrate your knowledge.
I really resisted buffing up in my interview skills because it seems silly but I realized after the last couple that it clearly impacts the perception of those interviewing you (should have been obvious as I'm interviewing others but not all places interview the same -- we don't ask much about CS fundamentals). And that perception likely has a big impact on your compensation negotiating because you're going to get pegged lower than your ability and be less desired unless you can clearly demonstrate your knowledge.
>Your ability to solve leetcode problems fundamentally determines your job prospects
For those companies that make you do leetcode problems.
For better or for worse, 95% of the places I apply to don't make you solve problems about algorithms or data structures. It's mostly about concrete knowledge in specific languages or frameworks.
For those companies that make you do leetcode problems.
For better or for worse, 95% of the places I apply to don't make you solve problems about algorithms or data structures. It's mostly about concrete knowledge in specific languages or frameworks.
I’m using the word leetcode loosely. The broader point is that doing well on job interviews is how you get a job and thus a worthwhile skill to practice. Leetcode is just what big SF tech cos ask in their interviews.
Leetcode problems rarely come into play outside of tech hubs or quant firms. I live in Chicago and rarely encounter such problems in job interviews. And just Leetcode easies at that. They do ask you do take-home assignments, though.
And leetcode is trivial. Think reverse a linked list or something. I used to ask candidates to implement binary search correctly and I stopped because nobody could do it on a whiteboard.
It's funny: if you asked me that right now, I wouldn't be able to do it. That knowledge was in my brain at some point, but it fell out. I can, however, implement a PR quad tree[0] (which is a trie and not a tree) which allows efficient coordinate search of a 2D space since that's what I've been doing most recently. I think that's more impressive, but it's not what you asked for so I fail the interview. :3
0: https://en.wikipedia.org/wiki/Quadtree
0: https://en.wikipedia.org/wiki/Quadtree
For bonus points you can also implement an Octree.
That would be for coordinate search in 3D spaces. :D
It's fun how easy it is to program in higher dimensional spaces and how hard it is to think in them. Mathematical formalism is a superpower!
Yeah, that's how it appears it really works.
That said, the fundamental idea behind bsearch is toddler easy. It's interesting that such an apparently simple algorithm, namely start in the middle, pick left or right depending on the key, and repeat, is so challenging to code correctly.
That said, the fundamental idea behind bsearch is toddler easy. It's interesting that such an apparently simple algorithm, namely start in the middle, pick left or right depending on the key, and repeat, is so challenging to code correctly.
The best way to get a job, without needing to do well at all on the interview, is to have someone already on the inside who can say "they interview very badly, but I've worked with them, and they are very good to work with". Doing temp contract jobs sometimes (not always) leads to exactly this. Even if the actual gig in question is not at such an organization, sometimes a person who worked with you on that will later on be working at a place you want to work at.
HOWEVER...while I sympathize with your distaste at interviewing, don't get too attached to the idea of not having to interview in the future. The labor market has, for almost half a century now, been moving in the direction of more fluidity, not less. Some people find a spot that allows them to avoid that trend, but don't count on it.
But, if that's what you're after, then doing as well as possible (including on the "easy to work with" aspect) in the temp jobs you get now, is the best way to compensate for being bad at interviewing.
HOWEVER...while I sympathize with your distaste at interviewing, don't get too attached to the idea of not having to interview in the future. The labor market has, for almost half a century now, been moving in the direction of more fluidity, not less. Some people find a spot that allows them to avoid that trend, but don't count on it.
But, if that's what you're after, then doing as well as possible (including on the "easy to work with" aspect) in the temp jobs you get now, is the best way to compensate for being bad at interviewing.
This is a great point. In all the temp jobs OP has had, how have they not built up a good network of contacts? I suspect there is more to this situation than just a distaste for interviewing — it sounds more like a distaste for people.
The fact is that it’s not realistic to want to keep your head down and code. You need to deal with the human side of things, or you’ll end up being and feeling marginalized.
The fact is that it’s not realistic to want to keep your head down and code. You need to deal with the human side of things, or you’ll end up being and feeling marginalized.
I'm pretty much set on wanting to apply a "set and forget" strategy to my career. Being collaborative with others at the job really isn't an issue for me, but I'm not into the whole thing about juggling professional acquaintances. I prefer my career to be low-maintenance.
But if you’re not getting the results you want, then you need to change your approach. This often means realizing that you need to give more importance to things that you currently think are not important. Making connections with people at your temp jobs would be one of those things that, if you prioritized, would help you get to your goal of a stable career. You can’t keep doing the same thing and expect to get different results.
I’m not saying you need to stop coding and spend all your time shmoozing with people, just have a conversation here and there, go out to lunch with people, etc.
I’m not saying you need to stop coding and spend all your time shmoozing with people, just have a conversation here and there, go out to lunch with people, etc.
My solution to being a bad interviewer was to be a company cofounder -- an option available to me due to the confluence of
- having a reasonable network from college of entrepreneurial folks who trusted in my abilities and wanted to start something new
- confidence in working quite well with people (can be reasonably replaced with a confidence in being driven and getting things done by yourself)
- confidence in learning what i need to do get things done
- low stress coefficient: i tend to work well under pressure
- a good appetite for risk: i don't balk at the instability and existential risks of building a company from the ground up.
Doesn't necessarily work for everyone, but I also think being a founder is not often considered as an option when the interview/job landscape is looking bleak (it was a last resort for me too, after struggling for too long trying to get a cubicle somewhere).
- having a reasonable network from college of entrepreneurial folks who trusted in my abilities and wanted to start something new
- confidence in working quite well with people (can be reasonably replaced with a confidence in being driven and getting things done by yourself)
- confidence in learning what i need to do get things done
- low stress coefficient: i tend to work well under pressure
- a good appetite for risk: i don't balk at the instability and existential risks of building a company from the ground up.
Doesn't necessarily work for everyone, but I also think being a founder is not often considered as an option when the interview/job landscape is looking bleak (it was a last resort for me too, after struggling for too long trying to get a cubicle somewhere).
If you have trouble finding full time SWE roles after all your numerous jobs, maybe you are lacking critical skills employees want to see, or don't have personal projects that showcase technical depth.
Are you applying for junior dev roles? Maybe finding a career counselor of some sort can help. Reach out to your friends and ask for their honest advice of what they think you should do/add. Leverage your personal connections to get your first first full time job!
Ultimately, you have to persevere and be scrappy to find your first job. IMO the hardest part in your career is when you first enter the workforce. Always try to stand out and market yourself on how you would be a huge asset to the employer.
Last thought, if you are looking to join a great school/community of aspiring junior engineers and web developers, apply to Lambda School. I recommended my own brother and friends, and I have seen huge growth in their dev skills and abilities. I hope this helps!
Are you applying for junior dev roles? Maybe finding a career counselor of some sort can help. Reach out to your friends and ask for their honest advice of what they think you should do/add. Leverage your personal connections to get your first first full time job!
Ultimately, you have to persevere and be scrappy to find your first job. IMO the hardest part in your career is when you first enter the workforce. Always try to stand out and market yourself on how you would be a huge asset to the employer.
Last thought, if you are looking to join a great school/community of aspiring junior engineers and web developers, apply to Lambda School. I recommended my own brother and friends, and I have seen huge growth in their dev skills and abilities. I hope this helps!
Interviewing is a skill in of itself. Practice. Grind Leetcode, HackerRank, and interviewing.io.
It's not the best answer because institutionally we are incentivizing the wrong behavior. But unfortunately until we make that change your best bet is to continue to practice, practice, practice until your skills at interviewing are refined.
It's not the best answer because institutionally we are incentivizing the wrong behavior. But unfortunately until we make that change your best bet is to continue to practice, practice, practice until your skills at interviewing are refined.
Practicing while job searching has become a distraction for me, from planning out my career and my life and taking other actions that would bring actual results. Continuing to practice interviewing when I make no discernible progress would be a waste of time I would think.
The more time I spend applying to jobs and practicing, the more I see it as a red herring- a mindless diversion. After 2 years straight of doing that stuff, I'm clearly not cut out for most interviews. I have to seek alternatives to financial stability.
It's better to use my time and energy finding a solution that does work for me. It's fine, interviewing isn't for everyone. Tenacity may be a good trait to have but it doesn't pay the bills :)
The more time I spend applying to jobs and practicing, the more I see it as a red herring- a mindless diversion. After 2 years straight of doing that stuff, I'm clearly not cut out for most interviews. I have to seek alternatives to financial stability.
It's better to use my time and energy finding a solution that does work for me. It's fine, interviewing isn't for everyone. Tenacity may be a good trait to have but it doesn't pay the bills :)
Where are you located? Maybe open up the job search wider and be prepared to move to a place where devs are desperately needed and your chances are better.
Also get your CV looked at by people who know what to look for. It might need a spruce up. Make sure it sells you well.
Get a good cv, get to a good city and apply for every good job you can see. You need a good system then of qualification, deciding which leads to prioritise, bullshit detection, dealing with recruiters etc, so come up with one and continually improve it. Use any waiting time to learn standard interview answers both technical and behaviourial and coding puzzles.
In your situation you must be seen as super keen on every job regardless of what you feel. Get offers. If they say is it ok that you work 60h a week the answer is yes. You can reject them later but get offers. Really think of it as a sales job to get the coding job.
Also get your CV looked at by people who know what to look for. It might need a spruce up. Make sure it sells you well.
Get a good cv, get to a good city and apply for every good job you can see. You need a good system then of qualification, deciding which leads to prioritise, bullshit detection, dealing with recruiters etc, so come up with one and continually improve it. Use any waiting time to learn standard interview answers both technical and behaviourial and coding puzzles.
In your situation you must be seen as super keen on every job regardless of what you feel. Get offers. If they say is it ok that you work 60h a week the answer is yes. You can reject them later but get offers. Really think of it as a sales job to get the coding job.
Located in Chicago. On occasion I apply to companies in other cities, but I have a preference to live in the Chicago area unless I can find an offer in another major city.
I am not from the US, but I imagine Chicago has more than enough opportunities for software devs.
A few blunt options:
1. Ask your friends for referrals or to hire you.
2. Go balls to the walls studying and cut your expenses then don't screw up. probably not the one you want to do but crashing on a friend's couch and studying does work.
3. Get a government job. They take a long time but your employment is definitely on auto after that.
1. Ask your friends for referrals or to hire you.
2. Go balls to the walls studying and cut your expenses then don't screw up. probably not the one you want to do but crashing on a friend's couch and studying does work.
3. Get a government job. They take a long time but your employment is definitely on auto after that.
2. is a bad idea because this will remove your negotiation leverage and they will end up low-balling you.
I already have poor leverage anyways, because over half of my jobs I lose/finish before I could get another offer ready.
Why do you end up losing the jobs?
They're temp contract jobs. They "lose" themselves once the time is over.
Sounds like this is your problem. The interviewing is more of a sympton rather than a cause.
I'm not the US, but I find it hard to imagine it is much different in Chicago to where I am in Northern England - companies are dying to find good developers. Every company I've worked for, they always ask me "do you have any developer friends that would work here?". So why aren't they asking you to stay on as a perm employee once your contract is up? It sounds like you need to work on getting better at your job and delivering value to the companies that you work for.
If you don't make the football team - is it because you are bad at try-outs or are you just bad at football itself? (Sorry, brutally honest.)
I'm not the US, but I find it hard to imagine it is much different in Chicago to where I am in Northern England - companies are dying to find good developers. Every company I've worked for, they always ask me "do you have any developer friends that would work here?". So why aren't they asking you to stay on as a perm employee once your contract is up? It sounds like you need to work on getting better at your job and delivering value to the companies that you work for.
If you don't make the football team - is it because you are bad at try-outs or are you just bad at football itself? (Sorry, brutally honest.)
what? who will end up low-balling him?
You don't say where you are located, or why interviewing is a distraction. Without these bits of information, it's hard to give you specific advice.
I'd say that avoiding interviewing entirely is unrealistic. You will always be required to do an interview, even if you go through referrals.
I'd suggest reframing your CV to match the kind of job you want, and starting from there. You'd be surprised how the same experience can be written in vastly different ways.
From there, what helped me with interviewing is thinking of it as me trying to help the interviewer get to a good answer, rather than me trying to impress them. It suddenly became more natural and wasn't so challenging from then on.
I'd say that avoiding interviewing entirely is unrealistic. You will always be required to do an interview, even if you go through referrals.
I'd suggest reframing your CV to match the kind of job you want, and starting from there. You'd be surprised how the same experience can be written in vastly different ways.
From there, what helped me with interviewing is thinking of it as me trying to help the interviewer get to a good answer, rather than me trying to impress them. It suddenly became more natural and wasn't so challenging from then on.
I'm located in the Midwest, Chicago area. I find the job search grind a distraction because I can't extract any quantifiable progress in my ability to get offers. I've changed my resume multiple times, and got feedback from peers from a few mock interviews.
Big takeaway from the mocks is that I come off as too junior or entry-level. Applying to junior jobs with my 10 years experience will lead to sticker shock for the employer so this is a tricky spot that I'm in. Even if that wasn't a problem, they would think I'm slow as a turtle to work and learn.
A very overlooked topic is how brutal the software industry can be for a person who has that prolonged junior phase. I fell into a 'perpetual temp worker' career by accident, and a contractor cannot expand their role in a company, esp. if they only work for 6-12 months at a time.
Big takeaway from the mocks is that I come off as too junior or entry-level. Applying to junior jobs with my 10 years experience will lead to sticker shock for the employer so this is a tricky spot that I'm in. Even if that wasn't a problem, they would think I'm slow as a turtle to work and learn.
A very overlooked topic is how brutal the software industry can be for a person who has that prolonged junior phase. I fell into a 'perpetual temp worker' career by accident, and a contractor cannot expand their role in a company, esp. if they only work for 6-12 months at a time.
Maybe don't list 10 years of experience on your resume if they have all been in junior roles. Maybe just list the last 2 or 3 years of experience.
If you put some contact info on your HN profile, I might be able to do another mock interview and give you feedback if you are interested.
If you put some contact info on your HN profile, I might be able to do another mock interview and give you feedback if you are interested.
You're not the first person to be in this position, and there are ways out.
My advice is to find something that pitches a career change to organisations. For example, take a short period of study, and then in your applications say something like "After 10 years of X, I decided to follow my real passion Y, and I'm now looking for ways to expand in this role. Of course, I still bring all my past experience that I believe will be invaluable in this junior role..."
I've seen people do this - it works. Tell a story, believe it yourself, and you will convince others to give you a chance in a junior role that you can them move quickly upwards from.
My advice is to find something that pitches a career change to organisations. For example, take a short period of study, and then in your applications say something like "After 10 years of X, I decided to follow my real passion Y, and I'm now looking for ways to expand in this role. Of course, I still bring all my past experience that I believe will be invaluable in this junior role..."
I've seen people do this - it works. Tell a story, believe it yourself, and you will convince others to give you a chance in a junior role that you can them move quickly upwards from.
You need to study more. You need time for yourself. That might sound rude, but to be honest, that seem to be your issue. As you even mention, you want to get a good job position. A lot of people also want to have a good position where they can invest time on their family. It's actually the #1 adults want.
I suggest that to get out of this situation(which will possibly get worse over time), you set aside AT LEAST 1 hour a day to dedicate yourself to study.
Also, try to find a company that does B2B, preferably not startup. They usually involve VBA, Java and sometimes they can even have some "forward looking" tech for you to work with. On B2B, everything is slower and sometimes you mind find that you are actually pretty good in comparison to your peers. So you can take care of you family.
You probably know places where you could improve to not sound Junior. A few of them which most of the people I interview with doesn't grasp or can improve a lot:
- Learn some computer networking basics. Do you know where is HTTP in the network stack? TCP/UDP?
- Learn algorithms. Get a programming language you don't know, but would like to work with, and there is a good B2B market. That solves the problem "BUT I DON'T KNOW WHAT TO BUILD!11" problem, as you can just write algos and learn data structures
- Contribute with small and simple tasks on Github. That generally counts.
- Work on a idea, make a low-running webapp. If you show this to people, that'll make you stand out. Also use it as your playground, make it very well tested on some places, so you can show your possible employers that you can test well when you want/need, but can also be pragmatic for things you don't mind.
Try to divide this hour into like 30min dedication to each Item you consider important. Also, accept that not always you will solve a problem, or maybe it could take you a few weeks to really get things going. Use the alarm clock on your phone.
It's the same as going to the Gym.
I suggest that to get out of this situation(which will possibly get worse over time), you set aside AT LEAST 1 hour a day to dedicate yourself to study.
Also, try to find a company that does B2B, preferably not startup. They usually involve VBA, Java and sometimes they can even have some "forward looking" tech for you to work with. On B2B, everything is slower and sometimes you mind find that you are actually pretty good in comparison to your peers. So you can take care of you family.
You probably know places where you could improve to not sound Junior. A few of them which most of the people I interview with doesn't grasp or can improve a lot:
- Learn some computer networking basics. Do you know where is HTTP in the network stack? TCP/UDP?
- Learn algorithms. Get a programming language you don't know, but would like to work with, and there is a good B2B market. That solves the problem "BUT I DON'T KNOW WHAT TO BUILD!11" problem, as you can just write algos and learn data structures
- Contribute with small and simple tasks on Github. That generally counts.
- Work on a idea, make a low-running webapp. If you show this to people, that'll make you stand out. Also use it as your playground, make it very well tested on some places, so you can show your possible employers that you can test well when you want/need, but can also be pragmatic for things you don't mind.
Try to divide this hour into like 30min dedication to each Item you consider important. Also, accept that not always you will solve a problem, or maybe it could take you a few weeks to really get things going. Use the alarm clock on your phone.
It's the same as going to the Gym.
You will get there. Keep interviewing and learn what companies look for in a candidate. It's a bit of a numbers game to land a full time job and it can take some perseverance.
> The more time I spend looking for jobs and practicing interviews, the more I see them as a distraction, because I don't see them paying off.
I'm wondering why this is. As a programmer, presumably you are good at learning. Also, it's generally accepted that getting good at interviewing provides a high return on investment. Are you confident that you've been focused on the right aspects of interview skill improvement?
I'm wondering why this is. As a programmer, presumably you are good at learning. Also, it's generally accepted that getting good at interviewing provides a high return on investment. Are you confident that you've been focused on the right aspects of interview skill improvement?
I might be able to answer that. I have terrible memory, so it's hard to remember in every detail, all steps for certain algorithms.
My brain is great at indexing (I remember where I can find a link to a given article explaining that), and I'm good at offsetting my disability with bookmarks, tags and notes on the books I read.
All this works great on the real job and sucks terribly for interviewing (and school tests)!
All this works great on the real job and sucks terribly for interviewing (and school tests)!
You need to build a network of people who will support you. The only way I know to do that if you don't already have one is by doing outstanding work. You need to squeeze some time out and do something great. It is harder to find that time if you're taking care of a family, but a lot of people do it. Elon Musk is a good example.
[deleted]
For reference, whiteboarding in Europe is rather uncommon and, if it is done, it's more common for entry-level jobs. In my experience, the highest paying jobs pretty much don't do it at all.
If you come off in your interviews like you do in this post it’s no surprise. All you’re doing is saying what you want and virtually nothing about what you have to offer.
I never talk about what I wrote here to an interviewer. I do the opposite- I convince myself that I don't even need the job when I walk into the interview. I tell them what I've brought to the past companies I worked for.
> The more time I spend looking for jobs and practicing interviews
Maybe you should stop practicing interviews, and start practicing being better at your job?
Maybe you should stop practicing interviews, and start practicing being better at your job?
Assemble a portfolio. Show people what you can do. And then network.
In one of the tightest markets for software devs (and labor in general) of all time you can’t land a full time job? And you are refusing to date and get into relationships because you can’t pass an interview?
1) Maybe software isn’t the right career for you, and 2) Don’t let being unable to land a software development job prevent you from saving money and getting a girlfriend / boyfriend.
There are many other careers out there.
1) Maybe software isn’t the right career for you, and 2) Don’t let being unable to land a software development job prevent you from saving money and getting a girlfriend / boyfriend.
There are many other careers out there.
I am not sure why this is downvoted - but I second this opinion.
> I want to free myself from that so that I can focus on building my own life, get into a relationship and starting a family.
Leetcoding is not preventing OP from doing any of that. This sounds like just an excuse for not doing the hard work. It really sounds like OP doesn't enjoy coding.
> I want to free myself from that so that I can focus on building my own life, get into a relationship and starting a family.
Leetcoding is not preventing OP from doing any of that. This sounds like just an excuse for not doing the hard work. It really sounds like OP doesn't enjoy coding.
The more time I spend looking for jobs and practicing interviews, the more I see them as a distraction, because I don't see them paying off. A distraction from my progress in my finances, career and my life. I want to free myself from that so that I can focus on building my own life, get into a relationship and starting a family. Therefore I do not want to focus on getting better at interviewing anymore.
For context I am a self-taught SWE having done numerous jobs in a professional capacity (90% in web, 10% other). I am frequently required to look for work because the only offers I can get for now are low-ball temp contract jobs.
If I completely avoid applying for these temp contract jobs I would never be hired (since no full-time offers come around). That's why I keep applying to them even though they're not my best option, because I have no choice but to take the money.