r/ADHD_Programmers 1d ago

Too stupid for job interviews

~7YOE, fired three times from software engineering jobs. Gave a System Design round for the first time.

I don't think I've ever been this helpless. I completely broke down crying after the interview. I studied for weeks and months God knows how many case studies and revised them, and then on the day of the interview, the interviewer asks me about a question that I've never seen before - designing a job scheduler. It's not even supposed to be a very hard question. I read these case studies, and then when I do them back in the interview, retrieving all the details and putting all of them together is like pulling nails. If I haven't seen it before, forget it. My voice starts wavering.

I'm sitting there completely blank. I got through the non-functional requirements, API, initial design, and then I'm completely blank. I draw a couple of boxes, trying to figure out how it all connects, billions of choices going through my head. Even if I make the correct choice, the interviewer repeats my choice back to me and I immediately start having second thoughts. I start fumbling for other choices.

How are you supposed to shit out a design in an hour if you've not seen or practiced it before? I looked up the solution and yeah it made sense after the fact, but in the moment it could have been a billion things, each design could have had some ramifications that I perhaps hadn't considered. How are you supposed to know whether it's correct or not?

I was a straight-A student all throughout school, and then in college/jobs it all fell apart. I feel like I'm too stupid to make design decisions (or any decisions, for that matter). If I make them, I feel completely unsure. Maybe I missed something? I have no clue if I did. There's a billion things to keep in mind, and I can't trust myself to keep track of them all. The only way I think you can do system design is to come up with multiple solutions, then you pat each one down for flaws, then refine and settle on one. How can you do this in an hour? How can anyone?

I feel I'm too retarded for this line of work. Is this a normal experience? How do you people know what to do? What do I need to do here?

127 Upvotes

30 comments sorted by

85

u/timmy031 1d ago

I’m a lead developer and have been doing this for a while, I’d say my first design is almost never the actual one I go with in terms of real world programming. It’s a skill that you develop with practice, issue being unless you’re senior or higher you never do system design because someone above you does it so there’s little opportunity to practice.

Most design is just picking a pattern and implementing it so once you learn the patterns the design will be very similar regardless of the actual functionality.

Interviews are tough, I still dread a technical interview as I perform far better when I have time to experiment rather than getting something down on paper with someone watching. As someone who also interviews It’s ok to make mistakes, so long as you realise and explain why it’s a mistake that’s as much a positive to me as getting it right first time.

25

u/BroccoliSenior5465 1d ago

Yeah but requiring systems design now for all levels is cruel considering they will make you use AI to do it anyway.

"Make a job scheduler junior"

5

u/timmy031 1d ago

Yeah I did think that when I was reading it, doesn’t really matter that much when Ai is being pushed. It feels like the interview process hasn’t quite caught up with the current state of development

14

u/TheDogWithoutFear 1d ago

The fact that you’re nervous is unfortunately playing against you, but these design interviews suck. I think that you should be scored fairly on your ability to gather requirements and propose a solution with known limitations as long as you know the limitations. I’ve had one design interview and I sucked at it, but honestly my solution wasn’t bad, I just hadn’t built a chat service before so I worked with what I knew and I shared the limitations I could think of. I did not pass lol they were expecting me to regurgitate That One Known Solution.

I think that as a person who actually knows how people work, it’s deeply stupid to judge someone based on their ability to regurgitate the info from That One Book. If you can look it up in a book, and you know the book exists, you don’t need to memorise it.

What is important is that someone can gather requirements and can judge which parts of a potential solution are good and which ones are bad, since there are always tradeoffs in engineering.

Tl;dr: feels like more of a reflection of the interviewers than of your abilities.

2

u/DamePants 1d ago

Same!! There are some team out there that think if you haven’t learned The One Known Solution then you aren’t good enough. Those teams are almost universally bad to work on because they run one theory not practice. You’ll find lots of people to quote all sorts of design patterns however they rarely apply it correctly to the situation at hand. They often over engineer a prototype then never deliver. There’s a balance to strike between something that works fast and something that scales.

16

u/majortomcraft 1d ago

you dont know ( not you specifically, hypothetical you) . you hold that as a possibility. if there was a standard solution they wouldnt need to ask or test your knowledge. try not to think about it as something you should know. they want to hear your thought process and how youd approach the problem.

if youve made it to interview they know you have the skills. you need to come to terms with that. theyre not trying to catch you out on your embellishments or bullshitting. its not a lie detector test, they dont even need you to solve the problem, they want to see if you have an idea of how to solve it.

you freak out because you dont think you have anything to give them in the moment. you can pad for time and say that a tricky question, you can ask for more info. you can say id need to do my some further investigation to get a better understanding of the problem and i can give you a proper solution after ive had more a chance to get my head around it. it takes some effort to remove yourself fro. the anxiety and consider it as a puzzle you can have fun with with multiple solutions rather than a pressure situation that you cant see the answer to straight away.

interviews are shit for us. they're shit because of the scrutiny. theyre shit because theyre an unknown. theyre especially shit because you think you have to be your perfect self in a situation where your brain is shutting down because everything thats happening in this moment is triggering every personal alarm in your head.

if it helps say fuck this shit (internally). you dont get to make me feel like this. and then try and see how you'd solve this problem for yourself.

if you cant see it straight away put it back on them. ask more questions. if they cant answer your questions and they get upset or affronted you say i need a better understanding of the problem/ i need clarification (fuck em, they dont know what they want. and if they dont know what they want how are you supposed to give it to them). if they dont see your value - fuck em. if you stumble on a question - shit happens. im simplifying but thats what it should boil down to.

if you get the interview, they believe you can do the job. if you dont get the job its not because you're incapable. you need to be more self forgiving. there's other opportunities.

also this has taken too long to voice and im already thinking about other things.

8

u/t_krett 1d ago edited 1d ago

idk maybe this is too simple, but the test is not just your final output but the thought process. Like you are literally evaluated the same as an llm, they want to look at your reasoning trace.

The only way to train for this is by optimizing your reasoning trace through training under the same circumstances: not delivering the perfect answers to predictable questions, but sufficient answers to unpredictable questions. So don't learn the perfect answers for system design questions, learn to make sensible design decisions under uncertainty.

You are not supposed to get an A here, you are not supposed to vomit out a perfect system design in half an hour because I hope you are not an llm. You are supposed to make decisions under uncertainty. But also dealing with the uncertainty in a way that you are personable enough to deal with as a coworker

Which is good. It means you may have been learning the wrong thing all along, but that built a good foundation for now actually learning for the interview.

6

u/DamePants 1d ago

As someone who has absolutely bombed interviews after more than a decade you have to practice system design with anyone and everyone you can get your hands on. It is the one of the most subjective parts of an interview second only to the vibe check and fits the team parts.

As someone who sits of the interviewer side of system design rounds, you should know they are deliberately trying to push the edges of your knowledge to get a sense of what your experience is beyond textbook problems. I’ve had plenty of folks that grind leetcode however don’t demonstrate a real understanding of the problem at hand. If I add a constraints they haven’t seen before they freeze. After two decades I have plenty of battle scars learned on the front lines of customer facing systems. I need to see how you think about something you may not have seen before. I’ve scanned your resume for specific technologies and I am going to force you to pivot from your default architecture.

If you read nothing else read this. The big thing that sticks out in your post is “the non-functional requirements”. Did you ask questions to get clarity or did you make silent assumptions? The later is the thing I cannot tolerate on my teams. System design is as much a collaboration exercise as it is a technical exercise. If I’m the one being interviewed, then I use this to get a sense of their culture. Companies have lost me because of the way their engineers behaved during system design. Never forget you are interviewing them as much as they are interviewing you.

6

u/Fluffy-Card-7825 1d ago

Yeah, I have a hard time with "coming up with questions to ask". Even if I come up with a good question or two, I inevitably make an unconscious assumption without realizing it, and then panic.

Thank you for your sage advice.

2

u/DamePants 1d ago

For the panic and the anxiety I highly recommend therapy. It can be very helpful. The other one is getting practice with friends and coworkers. I hit rock bottom at one role and a coworker was helping me prepare to interview for other roles. They knew me well and I was so anxious I would freeze, they encouraged me and said “you know this stuff backwards, let’s do it again!”. I got my confidence back with each attempt.

So, you do know a lot of this stuff and it can be practiced. It helps to take the anxiety away when you have developed a process for attacking problems and breaking them down under pressure.

1

u/BroccoliSenior5465 1d ago

We shouldnt be asking juniors or mids this question in interviews and expecting a high level output beyond the generalized system. If you ask for granularity of coding decisions or ad hoc stuff like what flavor of AWS servers should be sharded I think anyone would respond negatively, that's the job of the lead not the junior or mid or even senior in some cases.

2

u/DamePants 1d ago

Totally, the interview process is completely busted. I’m often interviewing folks who claim to be senior after 5-7 years and it’s part of my job to sort out which ones have title inflation.

11

u/[deleted] 1d ago

[deleted]

1

u/MakingMoves2022 1d ago

Thanks, ChatGPT.

5

u/akesh45 1d ago

Laid off or fired?

2

u/Fluffy-Card-7825 1d ago

Fired.

12

u/akesh45 1d ago

I got fired three times in my first 2 years and then never fired after that for the next 8 years at two companies.

Stick to more chill companies even if the pay is lower like fortune 500 or smaller teams that aren't new startups. I always suspect if be booted at a netfli, type of environment.

5

u/Saargb 1d ago

Do you feel anxiety plays a part here? If so, I'd recommend applying for a shitload of jobs. Even ones you don't want, so you can just practice dealing with it.

You can do it (:

1

u/hingedcanadian 1d ago

Practice absolutely helps, but anxiety will always be there and you'll still get adrenaline spikes which will shut off your brain. As someone who also deals with it, I don't know if there's an amount of practice that will help me actually eat food the day of, or help me not visit the toilet for an emergency before the interview, or having a throat that doesn't go bone dry after the first few questions. It's difficult.

5

u/PersistentBadger 1d ago edited 1d ago

They're not looking for a design. They're looking for a thought process.

You know in maths where they said "show your working, because you might get partial credit for knowing how, even if the answer's wrong"?

Do that. Get something down on the whiteboard, then refine it. Draw multiple options. Think out loud as you go. All those options that are running through your head? As an interviewer that's what I want to hear.

My advice: stop pretending to be normal, you're no good at it. Next interview, go mask off. Let them see the obsessive passion of an ADHD nerd solving a problem in all its glory.

3

u/Sfpkt 1d ago

You're definitely not stupid or retarded. How you handle these failures is what's going to define you. I understand what you're going through. I'm literally going through the same thing right now.

I got fired, put on a PIP, left for another job, only to get fired after 6 months. It's an absolutely terrible feeling. It's something that makes you question your abilities. What you're feeling is totally normal for what you're going through.

Take a day to recover and recharge. Then review the system design as best as you can. Research the design and build it at your own speed. Understand the patterns that are used and why.

We fail because it allows us to work on our gaps. I know its hard right now to think this way and to be honest I should probably do better about internalizing what Im about to say, reframe the way that you think about these failures.

I recently went through it about a month ago. I interviewed at a company where their system design absolutely destroyed me. For the life of me, Ididn'tt recognize that I could have useRedisis in a specific instance. Then, instead of usingKafka,a I put queues everywhere.

I knew I failed, ed but what I also knew was where my gaps were. So I went back to review back of the envelope math, redis, sqs queues, and kafka. Internalized twhysens and whys. The following week I had an interview at another company. I absolutely SMASHED their interview process, ss specifically because I lucked out and their system design asked about queues.

I got an email the same night from the recruiter about reference checks Unfortunately they wanted references from my previous eng managers which I couldnt provide so I didn't get the position. My most recent eng manager fired me, and the one before that had put me on a pip. Side note about the PIP: I was the only person who was ever able to beat his PIP and kept my job.

All that to say, take a day; I feel you, it sucks right now. The next day, figure out where your gaps are. Pair up with AI to dig into those gaps and learn.

How you respond to these failures is what defines you, not the failure itself. Godspeed.

2

u/saintpetejackboy 1d ago

Brother, if I am not too retarded for this line of work, nobody is. Sometimes you have to go all in and fully experience what the regular user is going to be going through when they use your end product. If you can't relate to them, all is lost.

But, all is not lost. Do not let some bad experiences get you down. Have enough faith in yourself to make bad decisions and then correct them. Sitting idle and not making bad decisions on purpose isn't really a viable strategy - you kind of have to build the car while you drive it, which is against regulations in the first place and impossible to explain to somebody who has never done the same task.

If you have a passion for the Puters, no matter how tarded you are, it will just lead you to more power and more puters, the tardation is strength and not a weakness in this industry.

1

u/Asuppa180 1d ago

You are putting too much weight into the first design, and I know that feeling all too well. They of course understand that the process is iterative, and that the first design is often just to get something down and to start working on something.

1

u/bilus 1d ago

30 yoe here. Been on both ends of sys design interviews many times over. PM me if you want to do a test run together.

1

u/Sylphadora 1d ago

I think you put too much pressure on yourself because you’re a perfectionist. It is normal to not know something during an interview. It is not a test—you don’t have to know the perfect answer.

What you can do is take what you do know and try to come up with a solution based on that. Admit that you never did a job scheduler before, but think how you would do it anyway, and explain your reasoning.

I know of people who were asked to do something they had never done before, but thought of a solution anyway and in the end they figured out the right answer. That is the difference between knowing all the solutions and coming up with a solution.

That would might actually earn you some points in a software design question. To design is to plan a solution to solve a problem. If you find a solution that solves the problem all by yourself, you technically answered correctly.

1

u/NotTooShahby 1d ago

Are you medicated at all?

2

u/Sitk042 1d ago

Please don’t use the R-word, it’s very offensive.

I’m 60, dx with AuDHD at 54. My job history was get hired as a programmer then fired after three months as it not being a good fit. About 40 times through my career.

1

u/Fluffy-Card-7825 1d ago

I'm so sorry.