Advice for someone who struggles in live coding challenges?
Posted by secretL@reddit | ExperiencedDevs | View on Reddit | 78 comments
Hey all.
I'm on the interview circuit for senior/staff FE roles. I've got 8 yoe generally as tech lead at early stage startups.
I've just got a third rejection based on a live coding challenge, I'm really struggling and unfortunately burning good referrals.
The worst part is that these challenges are below my skill level, I have trouble doing my best in this kind of scenario. Often I'll do fine until I get to some tricky logic and not get it fast, then it starts to compound anxiety and I ultimately end up with a sub par solution. I am the kind of person who needs to take time to consider and experiment before coming to an optimal solution.
For context my prep process is:
-
Leetcode on neetcode.
-
Challenges on greatfrontend and frontendlead
-
System design challenges on the above sites well
Has anyone got practical advice to overcoming this? Has anyone figured this out for themselves? I realize this is a somewhat common issue, but clearly people are passing these challenges while I am not. Feeling somewhat doomed here.
P.S. RANT: I'm so frustrated with hiring in tech, these challenges seem designed for competitive coders or really specific kinds of people. Not people who have a lot of practical experience building. AI has changed the game but is this really the way? They are excluding so many good candidates.
Ok-Barracuda-119@reddit
I have dealt with this in the past by doing "warmups" where I talk through architecture and code to myself. My rule for these warmups is to keep going even if I catch myself saying something "dumb", and to build the habit and skill of talking my way through a problem. Like engineering problems in the real world, interview problems are sometimes tough, and it often takes many different angles/approaches/tries to get to a good answer/solution. A good interviewer should understand and respect this.
It is okay to make mistakes initially, the important part is being able to take a step back, correct them, and move forward.
If you'd like, try the live interview mode on my website, it should help you gain experience with live system design interviews: https://leetsys.dev. Note that it is still in beta and may not work perfectly!
If you need more help/suggestions, feel free to pm me.
ivereddithaveyou@reddit
Practice live on twitch?
Ryuugyo@reddit
Welcome to Leetcode circus, we're glad you are part of the club. I've been performing in this circus for a while now.
secretL@reddit (OP)
How's it going?
Ryuugyo@reddit
It is still better than being homeless and unemployed. This circus gives me jobs.
Bobby-McBobster@reddit
Practice more?
PragmaticBoredom@reddit
Not the answer people want, but it’s true.
It’s important to practice in the right context. Start practicing working through the problem like you would in an interview, including verbalizing your thought process with an imaginary interviewer.
Start setting a timer like it’s an interview block. When you don’t finish, don’t despair. Just use that as a signal to switch into study mode where you go look up the answer and practice from that.
Don’t burn out. Work at a sustainable pace.
secretL@reddit (OP)
Thanks for this, its what I was looking for. I'll start practising in this way.
I do feel like I'm wavering near burning out, between job, family, job hunt and preparing for interviews, its been a tough grind for a couple months.
PragmaticBoredom@reddit
A slow and sustainable study plan and job search will yield better results than a 1-2 month sprint where you burn yourself out.
Turbulent-Week1136@reddit
You need to do 300 LC questions at least. If you're doing 10 or 20 of them, understand that the other engineers competing for the same job are doing 10X more than you are.
tcpukl@reddit
When you do run out of time though, explain your thought process to finish the problem.
lookitskris@reddit
Apart from all the usual advice, also try just telling them. I make it clear off the bat I am awful at live coding exercises but I'm more than willing to give it a go. It sets the tone
nshkaruba@reddit
I'm at the staff level and I work at the biggest tech company in Russia. I was facing the same problem, it's a well known issue. I practiced a lot, and it got better, but it's still not good enough, and now I just don't want to do it in my spare time. The market is tough right now, and faang is looking at the super narrow group of candidates who leetcode like beasts, your accomplishments aren't important to them. Basically, you and me are not their perfect hire, they just need very solid seniors who can problemsolve extraordinary quick (who spend a lot of time in leetcode and systems design practice)
GolangLinuxGuru1979@reddit
I mean you can always try to write these and give yourself a time limit. Simulating the environment as much as possible. If you do it repeatedly then you’ll somewhat build muscle memory for it. But I just think it’s ultimately a waste of time. If you’re competing for Staff level positions, then they really shouldn’t be giving you coding challenges. Chances are there probably plenty of companies that won’t at your experience level.
I’m bad at these too and I don’t grind leetcode. It’s about a 70/30 chance I get a leetcode style interview . Most of them aren’t. Maybe so really basic coding just to see if I know the language then most of my interview is system design.
If anything system design usually plays a much bigger role than leetcode stuff. I can say I probably get hired because my system design skills are probably above average.
It’s up to you to decide if it’s worth the effort. Unless you’re trying specifically get into FAANG I wouldn’t really waste that much time
secretL@reddit (OP)
Interesting, my experience with staff interviews so far is mostly coding challenges, I've had one system design. I was wondering why at this level my references/referrals weren't getting me past the gate.
I'm not specifically going for faang but well funded growth stage and later who allow remote. I think if faang was in my city I would.
Any tips on prepping for system design?
nshkaruba@reddit
Try hellointerview
Fearless-Top-3038@reddit
You need to practice by simulating the feel of the coding interview as much as possible. That includes thinking out loud, outlining your approach and filling in details within that, creating your own test cases to verify understanding and check logic -- all within a reasonable time frame.
Practice efficient coding and communication. Every minute absolutely counts especially when some interviews involve follow-up questions.
secretL@reddit (OP)
Damn it almost seems like wave 1 is just to get you seasoned then, I unfortunately wasted some great referrals on wave 1.
But I totally hear you, I have not been simulating the interview at all and I'm going to start asap.
Btw congrats on getting so far with that many companies! How'd it go in the end, are you happy with the result?
Fearless-Top-3038@reddit
Very positive result. I got my target company (within wave 2) after a panel of 6 and was able to share the great stories as a TL in an early stage startup
Initially I was more relieved; it's damn tough doing it with a full time job. If you need feedback on a specific prep step or tactic feel free to DM.
Ordinary_Figure_5384@reddit
I don’t understand what you mean by these challenges are below your skill level.
I agree with your sentiment that some of these leetcode style questions and expectations are ridiculous and often don’t test the skills needed for the job.
but implying these questions are below your skill level is perhaps introducing a psychological block that prevents you doing well and getting the most out of your study/grinding.
secretL@reddit (OP)
I mean that I do more complex work at my job and in personal projects on a regular basis.
I suppose that being able to do it very fast and under pressure is perhaps above my current skill level.
Mojo_Jensen@reddit
I can memorize and speak incredibly well on camera with nobody else in the room. Put me in front of a crowd and I shit the bed. It's the anxiety of the environment that gets me. I think practicing with a timer and practicing with people watching/commenting might help. Do you have any former colleagues you can reach out to for practice in that environment in a judgement-free way?
secretL@reddit (OP)
I hear ya. I think id be hard pressed to get a real person to work with me on this. But maybe ai if I can get it to not be nice.
Otherwise I'd just have to do it solo.
VerteDinde@reddit
OP, if you're financially able, doing a mock interview through a service like Hello Interview or something similar may be a good option for you. I suffer from similar anxiety and freezing up during live coding challenges, similar to what you described, and doing a mock after a lot of practice was surprisingly helpful in breaking through the mental block. Some services are pricier than others, but I've had a good experience with them thus far.
secretL@reddit (OP)
great idea! I'll check it out, thanks for sharing.
Space-Robot@reddit
Back when I gave a shit, I'd have messed up 2+2 if I had to do it on a whiteboard in front of interviewers. That's probably what he means. It's the nerves
secretL@reddit (OP)
Correct. Tho luckily I'm getting passed 2+2!
wwww4all@reddit
This kind of post is why rule 3 and rule 6 exist.
This has been answered gazillion times, yet people still can’t grasp simple newer.
Practice more.
DeterminedQuokka@reddit
Practice helps. Maybe actually practice speaking out loud while you code assuming you are alone.
And practice explaining how you are going to do something in your code. Like pause, make yourself a comment and sudo code out an idea.
It’s easier to explain something if you can show it so practice showing something like that.
I was doing an interview the other day and I was having trouble explaining something so I made a couple doc strings and started mapping out what the data structure should look like.
If I was doing react I might start writing out how data travels between objects. Basically simple ascii diagrams. It’s easier to code if you understand a plan so pause and plan visually so you can bring the interviewer with you.
secretL@reddit (OP)
This approach seems sound but i worry that id run out of time if i plan too much. But maybe thats better than betting stuck?
DeterminedQuokka@reddit
I mean planning is definitely better than being stuck. But if you don’t know how to sudo code now then I would suggest actually practicing it.
Here are some examples from me basically practicing with ChatGPT on a train (so I didn’t actually write any code). The problem it’s talking about is maximum sum of a sub list
I show this as sort of an example of how to talk through a problem. What I would do is practice making examples and thinking them through. The problem with not being able to reason in the moment is you already have to know the answer.
If you practice more reasoning in the moment you make a space for the interviewer to actually help you.
Basically, try to find the edges of the problem and then that gives you something to program towards if that makes sense. And if you miss an edge the interviewer will give you an example that hits that edge (assuming they are a good interviewer).
I would get comfortable with some really classic ones like a binary search, a tree, something with sub lists and a sort. But a lot of it is basically pattern matching. And the easiest thing is to practice how to find the patterns.
The original prompt I sent ChatGPT when I did that was
You can get it to basically not interject with the actual answer.
I also asked it to try to guess the types of questions I might be asked based on the company. I don’t know how it did. I haven’t done the actual interview yet.
Noobsauce9001@reddit
What sorts of things are you failing in during the interviews? Are they leetcode style problems, or building a front end tool live?
I’m 10 YoE and also struggling in front end technical interviews. I’ve almost never been give a leetcode style problem nor a system design problem, it’s always been asking to me to explain complex React or frontend concepts, or a live coding problem in front of the team.
My biggest gap has been getting stuck on things that I’ve done before, but had never bothered to memorize given I’d used them so infrequently. Examples:
Recalling the exact syntax to dynamically declare routes in Next.js.
Some typescript syntax. I’d used it before, but not in 3 years. It was really simple stuff, just not things I knew without a quick search.
When lifting state in React from a child to a parent, if simply passing the ‘val’ and ‘setVal’ attributes to the child was the best way to do this, or if the standard was to return an object with both the component and respective val/setters back up to the parent.
secretL@reddit (OP)
So far not leetcode tho I did have to do some string encode decode, sudoku validation... I passed those.
Im getting stuck on multi step front end live challenges where you iteratively building on data manipulation and presentation using mock apis or classes/functions. Nothing very hard tbh I just find that with the time crunch it can be difficult to iterate or find optimal solutions.
For instance the last one I had to highlight text in sync with streaming audio, but it was tricky since the audio is playing in chunks but the words are in an array. So there is timing issues to reason about.
Noobsauce9001@reddit
Oh that sounds like a cool problem to solve- lol, I wish my interviews had questions that fun. I can see how that’d trip you up, it’s nothing like a typical FE interview question. Maybe the trick there is to either see if they’ll give you a hint about what sort of questions they’ll ask (ex: maybe they’d admit they were gonna quiz you on handling streamed data).
After which I’d bet the question is somewhat related to their business. Sometimes before interviews I ask gpt about the company, talk to it about the product id be working on and ask it what are some of the most difficult technical problems they probably have to solve. Can you thinking in the right ballpark about the sorts of questions they’d ask.
Simple-Quarter-5477@reddit
What type of leetcode questions are you getting? Mediums?
secretL@reddit (OP)
I've been getting more practical fe testing. Tho I am practicing the blind75.
The testing is often interacting with apis, state, manipulating data in place, merging data, closures etc. Stuff like that. Honestly it's not hard, but when under pressure and a time limit it's hard to get it all done. Especially if you hit a snag.
Simple-Quarter-5477@reddit
Is useState the most complex state management that you did in an interview?
I did a frontend interview where I had to manipulate apis also. It was multi-step and broken into smaller pieces for each candidate.
Closures? What kind of question was that?
secretL@reddit (OP)
Yea, nothing more complex than useState yet.
The closure testing is around using set state in use effects and other functions.
Hopefully we both get better at this interviewing thing!
killergerbah@reddit
I have interview anxiety as well. I have found that it gets better with more exposure and successively better outcomes. Practicing more so that anxiety becomes less of a factor and finding a few points that you can consciously improve for the next interview should help. As well as interviewing for lower tier positions to get more low pressure exposure.
sysadmin-456@reddit
Another thing I would add beyond just practicing is to try to do the challenges in the same language you're doing at work. My first interview I had been using C all day and then tried to switch to python during the interview since that's what I was using for practice.
I was super nervous never having done one of these and I came off like an idiot because I was tripping up on basic python syntax. By the time I got all the syntax right I was out of time (and didn't get the job).
The frustrating thing is that it was a problem I knew how to solve in a couple of minutes. I explained how to solve it and why I was tripping up on syntax. But by his reaction I could tell he didn't think much of me.
secretL@reddit (OP)
A few times I've been caught off guard because I'm used to using a lot of abstractions with ui libs, axios, state/animation/etc libs. So when asked to do some basic stuff without libs I got caught up in syntax a couple times.
Like form handling or event handling etc.
I've been practicing without all that tho and I think generally got it covered now.
nilmamano@reddit
Quick tips for the interview itself:
- When you hit the tricky bit of logic, it's OK to take some time to think. It doesn't need to come to you immediately. Ask the interviewer, "Do you mind if I think about this for a couple of minutes?" (Spoiler: they don't mind -- they'll appreciate the time to catch up on writing notes)
- Since you mention you end up with suboptimal solutions, focus on writing the main function with the core logic first, and leave tricky bits as helper functions or placeholders. You can return to them later, after you've worked out the general idea and you know it's optimal. A typical example would be geometric problems. Instead of getting lost in the details of distance calculations, just call a made-up `distance()` function. You can fill it in at the end.
Quick tips for practicing more efficiently:
- My biggest general advice for getting unstuck is to have a PLAN. Choose your favorite problem-solving techniques, and be ready to reach for them when you get stuck. But you must practice doing it before the interview so it comes easily. I talked about this in more length in this answer: r/leetcode/comments/1ljs65o/comment/mzn4qht/
- As others mentioned, simulate the interview environment during practice (including timing, talking out loud, going through all the interview steps like asking clarifying questions, etc). The best way to do it is with mock interviews. An alternative is to get an LLM to roleplay as the interviewer. I’m one of the authors of Beyond Cracking the Coding Interview, and, in the book, we call this interview simulation practice. We feel so strongly about it, that we built an AI interviewer for readers to practice all the problems in the book. It's freely available at https://bctci.co/all-problems
secretL@reddit (OP)
This is great, thanks for the in depth advice. I'll check out the tool you built as well as the book!
Im going to adjust with the following right now:
Stop and take the time to think in the interview. Instead of worrying about time and going as fast as I can.
Simulate the interview, I've not been doing that.
Disastrous-Mail-2635@reddit
I’m gonna go against the grain of just recommending practice here because it sounds like you’ve already done a fair amount of leetcode? It sounds more like you are having issues with anxiety/stage fright rather than purely needing to grind out more problems. I’d recommend maybe looking into a beta blocker for anxiety. I had serious issues with anxiety when I first started working professionally, and my psychiatrist gave me propranolol to take as needed for presentations, meetings, interviews, etc., and it’s a life changer.
secretL@reddit (OP)
Interesting, are there any side effects? Or is it basically unnoticeable.
Disastrous-Mail-2635@reddit
Gotcha, yeah then you’ll probably get benefit from practicing still.
Basically it’s not “intoxicating” or sleep inducing the way Xanax and other anxiety meds are, instead it basically works by blocking your adrenaline receptors, which in turn reduces your heart rate, shakiness, etc.
nsxwolf@reddit
You have to keep in the back of your mind that it’s possible you’ll never get better, at least not on their terms. I resigned myself to that years ago.
secretL@reddit (OP)
That is definitely cropping up in my mind.
Are you using this to adjust your job hunt in anyway?
nsxwolf@reddit
Well, I’m not in the Bay Area or Seattle, so FAANG is out. I killed myself trying to get into FAANG while the remote window was still open, and never got close.
The good news is that most jobs aren’t FAANG, and even though many cargo-cult the same interview processes, they don’t all evaluate them the same way. So I work for companies that are actually interested in my actual experience and what value I can actually provide, not just how closely I benchmark against ChatGPT in a Leetcode round.
secretL@reddit (OP)
Those kinds of companies sound ideal to me.
I have been trying for some of the new unicorns, I gotta go for remote companies as I'm not in the states.
Might be time to widen the search.
glenrage@reddit
I get nervous during interviews too and screw up some easy problems before. When you’re nervous blood decreases from pre frontal cortex and logic just seems impossible. My doctor prescribed me beta blockers to help with performance anxiety
secretL@reddit (OP)
Ah man, I didn't even know about this. Ok, not sure I'm ready to go down this route but it's good to know.
boboshoes@reddit
Practice and ask questions / subtly ask for help during the interview. I feel usually they want you to succeed and if they don’t you probably don’t want to work there. I’ve had a few questions basically gifted to me bc I kept asking questions
secretL@reddit (OP)
I've not had the experience where they are trying to help me succeed in that way. Usually they just offer up reqs and syntax.
To be honest I've found the interviewers to be part of the problem, no charm just all business.
Big-Environment8320@reddit
I’ve found that most coding interviews aren’t really leetcode style. It’s usually something more close to a real world problem.
I’d advise just getting to know sets, maps and lists really and how to manipulate them. Really delve into all of the functions like map, reduce, finding items etc.
between that DFS and BFS you can solve most problems.
Rather get an LLM to generate coding questions for you and spend as long as you need to solve them without a time limit. Even when you solve one. Try and find a more optimal solution or a way to solve the problem with less code.
If you want to practice. Just record yourself, like you’re making a tutorial. Speaking to an empty camera is just as unnerving as an interview and you can play it back later to see if you can improve how you explain yourself.
secretL@reddit (OP)
Most of what I've got so far hasn't been leetcode. Some puzzles and the rest more practical white boarding or in editor challenges.
So at least I can be thankful for that.
Thanks for the advice I'll try that out.
randbytes@reddit
the problem you are facing is because of your experience is coming in your way. Most of the leetcode problems are designed for those who can instinctively choose a solution based on pattern recognition and rely on speed during live coding challenges. The reason everyone says practice more is for that reason so your brain doesn't look for context too much and just zooms into the core problem. I have the same issue. I recently i faced a problem that required apply two algorithms to solve it and i couldn't finish on time and the interviewer being cold didn't help either. It is easier to take these sort of interviews when you are right out of college or in a stable job with enough time to practice. If you can get a leetcode premium you can ace all sorts of problems. or If you can afford to buy there are sites that offer tech focused training now including live interviews. it is a growing nice market - https://www.pramp.com , https://interviewing.io/ , https://www.tryexponent.com/ , https://www.algoexpert.io/product are some sites you can look into. Good luck.
secretL@reddit (OP)
Makes sense! Thanks for the advice.
sdholbs@reddit
I have similar problems with spiraling anxiety that can block my cognitive function when I hit a roadblock.
What I will say is
Write out your thoughts in the interview before beginning coding. This is where a lot of the work will be, and how you explain your approach to the interviewer and ask them questions regarding requirements.
Refer back to your plan as you proceed through your code. This may help you to avoid cyclical anxiety, because you can refer back to your design to break the cycle.
Practice over and over, so the process for solving these problems is muscle memory. This will produce confidence in the interview, helping you avoid anxious thoughts which can lead you astray.
Finally, just remember: the market is terrible right now for devs, and you are going to fail some interviews. There is no shame in that, use each interview as a learning experience as much as you can, and try not to take it too hard.
AI has changed the game but also there is an oversupply of web dev talent into the market now, giving companies the power to pick and choose their hires. There is also less capital for startups than in previous booms, meaning companies gotta be careful with their hiring. Another raise isn't automatic. A couple bad hires could be the end.
secretL@reddit (OP)
Thanks for the tips, I'll give them a go
DepressionBetty@reddit
Talk through the problem out loud as you’re working on it. Ask questions to your interviewer to get clarifications, and mention any assumptions you’re making. They want to know how you’re approaching problems, not necessarily if you can make a working solution right away.
But also, if I get the sense from a candidate that they feel they’re lowering themselves to interview with my team, I won’t want to work with them.
secretL@reddit (OP)
Thanks for the insight. I try to vocalize my process as much as possible for sure. Unsure if it's harming me in someway with my particular approach.
I get the feeling that I'm giving the impression that I don't know what I'm doing somehow
iamquah@reddit
This was a problem WAY before AI came on the scene, but I empathise. It's frustrating, especially because putting all that time into prepping was taking me away from making projects or exploring ideas that made these companies interested in chatting with me in the first place.
secretL@reddit (OP)
yup but I do think its worse now. Take home tests seem to be completely gone, which is where I generally shine. As well the coding challenges have this element of cheat detection that you could trigger accidentally (either automated or by someone watching you).
Once you get past the gate keeping you'll just build as you've always done. It is ultimately worth it since you get the job, but man its a tough grind.
randbytes@reddit
it it not a one thing, this is the norm now. You start again for the next job hunt whenever that happens and with the way market is now I hope we don't have to do it more often.
valkon_gr@reddit
Start memorizing, it will work for non FAANG companies.
a_reply_to_a_post@reddit
honestly i suck at those as well, and have always had better luck / landed roles that had a small take home challenge instead of a live coding leetcodesandbox type of challenge
sciencewarrior@reddit
Same, but given more and more candidates are clearly vibe coding those from what my coworkers tell me, so I don't know how long take-home tests will be common.
secretL@reddit (OP)
I think every role I've got in the past has been from a take home test. So far I've not seen any in interviews, I guess I'm either screwed or have to become the live coding challenge master.
Exotic_eminence@reddit
Just don’t - struggle is no longer in my vocabulary- I am unbothered - it’s their loss and it goes both ways
secretL@reddit (OP)
Haha I wish I could not give a shit like this. I shall try sensei.
deRon01@reddit
Practice alone will only get your so far. You can get better at interview by interviewing more.
0x14f@reddit
> I'm so frustrated with hiring in tech (...) competitive coders or really specific kinds of people
You have two schools of thought.
On one side people are going to tell you that at least it's a fair system, everybody is subjected to the same selection style and if you want it, just do like the others, prepare for it, that's the least you can do.
On the other side you are right about one thing, the "specific kinds of people". The big companies are not really looking for "who needs to take time to consider and experiment before coming to an optimal solution". They want coders to code features as fast as possible.
It's all by design really. But don't give you in frustration. You will get there :)
CarefullEugene@reddit
0x14f@reddit
That's a great question, and I wasn't trying to start a debate about it, but I realize that the quick way I put it probably hides a deeper problem.
I could give you a list of qualities that make a great engineer: pragmatic, good communication with team members and stakeholders, not the opinionated type who is going to lose their shit over which text editor your use or their flawed understanding of the DRY principles etc. But in the end OP's problem, or at least the issue they highlight remains the same: how to hire in this industry.
Having been there, done that, in my honest humble opinion, we should not overthink hiring processes and make a better use of probation periods (which might be easier in some jurisdictions than others, I am sure).
secretL@reddit (OP)
That's a fair take, I'm considering taking some time off "the hunt" to work on this issue. As I see it now I'm not going to get success unless I get lucky. However I do think there's only so much I can do, I'm not going to get to competitive coder level.
TTVjason77@reddit
Only solution if you're going through these is practice.
0x14f@reddit
> Has anyone got practical advice to overcoming this?
Just like everything else in life. Practice.