Recently I have been looking for new opportunities and have been interviewing and following through screening tests, coderpad questions and a lot of SQL than I was anticipating and also, I spent a lot of rehydrating my knowledge about hash tables, linked lists and Big O notation.
I am enjoying the process. It’s a great way to learn all my blindspots and also talk to some great people who are working on exciting problem spaces. So far, I have not had any bad interviews and I have learned a ton!
The one thing that bothers me a lot is – all the tech systems around me are built to make me learn anything I want easily. Like – if you watch one YT video on how Bitcoin wallets are structured and how you can create one using Rust – then the amazing, YT algo will feed you a ton of complex and exhaustive list of great videos around it and I can just keep learning.
Even the professional networks – like Linked In which is all about networking and finding your next opportunity, encourages you with a lot of free courses and also nudges you to answer questions so that others in your network can learn.
All of this is great, but we haven’t built any systems that get feedback to the person who is learning. I am speaking in the context of job searching, interviewing. When I interview, the process starts with a lot of enthusiasm. Exciting call from the recruiter, interesting details to be learnt about the company, the process of interviews and the people I would talk to during the process.
During the interview, I get to talk excitingly about what I have been doing and learn a lot about the company’s tech stack, culture and day to day activities in their respective roles. All of this good and dandy!
But when I get rejected, I usually know if I don’t hear back from them in 24 hours, it’s this dud of an email which very vehemently tells you ‘DO NOT REPLY’ as no human ever will seen the guts of that Inbox – wishing you good luck and they are moving on.
I don’t have any issue with that, but I think for the effort any developer puts in interviewing – time, resources – we all deserve a 2 things:
- A call from a human
- A feedback about where I failed and what they liked
I know expecting this is unreal, as the recruiters have to pass through many, many candidates and once the tech interviews start, the recruiters are not into intricacies of what is going on in there other than what the person who interviews tells them. It is a lot of work.
But again, if I am learning always but never getting feedback and course correcting – am I actually learning anything? Am I building the right skillsets to match the reality expectations of any real world work?
If we zoom out a bit from job search, what I am saying is – we have built excellent systems – fully automated that enable learning easy. But we don’t have any systems where getting feedback is easy.
We use the same tools that we use to automate learning to give feedback. Even though learning (something complicated) is a solo exercise, getting feedback involves more than one person. And in this world of hyper cost cutting and saving time – we skipped past building systems that provide meaningful feedback by real humans.
What have I learned about me?
Ok, enough about how the tech recruiting process is broken now lets talk more about me! 🙂 Here are somethings that I have learned about me during this process:
- I love the initial exploration of the company and learning about the people who build it and founders and watch incessantly their talks on YT till I interview
- I get anxious just about 15 mins before the calls and it lingers till the first few mins of the call.
- Once I get a read of the person I am talking to – through some small talk, I settle in and I get more engaged.
- I definitely feel stressed about coding problems. They all feel like they are out to get you. The gotchas. In Python there is more than one way to do it, and I sometimes feel like my way of doing things doesn’t match what the interviewer wants.
- In SQL, which I don’t actively work on (depends on the current job) but is an expected for the roles I apply – I feel lost and sometimes confused. I can reason well in Python data structures than SQL result sets.
- But once the tech interview starts, I feel comfortable and am able to ask clarifying questions to get more context.
- I don’t like when people ask me to design a system in a phone call or a zoom call without a whiteboard. I can’t keep everything I am designing in my mind’s eye and also connect everything and explain.
- I thrive in system design interviews, with a whiteboard. I love them. I like to draw up things and explain my thought processes and interact with people in the room.
- I like panel interviews if everyone is on camera! That way I can read people’s real time response from what I am talking about.
- Even though there is a lot of (bad) advice out there to ask the interviewer about your chances of getting the job, out there – I don’t like to put the person in the spot. I like to think they all need time to reflect and decide.
- I feel exhausted at the end of a technical interview.
I want to leave you with one meme and an hilarious video by my hero ThePrimeagen