It’s been a long time since my last post. Maybe I hadn’t enough time to write or maybe I haven’t done anything interested to share recently. I don’t know actually. Since the pandemic started I am working from home. The shift was both a dream come true and a nightmare. On the one hand, I am really glad that I can save 3 hours of commute every working day, sleep more, use my own bathroom, and drink my favorite coffee in my favorite mug. On the other hand, the working hours become really… flexible in terms of no strictly defined end and lunch break. It’s not my company’s fault, it’s a common misunderstanding, wrongly interpreted dedication and commitment to the project by the employees on all levels, lack of will to say “No”. My days become longer and longer and somehow… equal, repetitive, merged. It became harder to distinguish which day of the week is because I was successfully put myself in an endless loop, just like a hamster in a rolling wheel.
I realized that I have to look for new opportunities to satisfy my eagerness on learning and exploring new technologies. I have some experience working with Golang on an open-source project, so when a recruiter contacted me with an opportunity to work on a Go project with no previous experience required I decided immediately to apply. I had a test assignment that I completed successfully and moved to the next stage – the technical interview. Soon after it started I wanted to quit it and disappear somewhere far far away. The interviewer made me realize I have experience with a lot of technologies but I do not master any of them. Also, I had missed so many of the new trendy technologies that I didn’t even know where to begin learning. Working with a legacy SasS web platform does not really require any theoretical computer science background. For the very first time, I realized how fucked am I not having formal CS education and prior experience with system programming. The interviewer’s questions were like a huge slap to my ego.
Ignoring the epic failure with the interview, I applied for another job. There was no test assignment and the recruiter invited me straight to a tech interview. I managed to answer most of the question but I stuck on a very simple theoretical question: what data structure should I use to store a phonebook, so I can find a random record by starting to type the beginning of the contact’s name. Actually, I answered “Trie”, but failed to explain how I will implement it so the user can search by both the beginning of the name and surname, not just the name. I know, I know… it’s a dead-simple question that someone with 13+ years of coding should be able to answer. But not me. I just stuck and more and more I was trying to figure it out more and more stupid and ashamed I was feeling. The bitter taste I had after the interview didn’t disappear. I needed to proof to myself I am still able to think logically and I can solve this simple task. And I did it. The code is here and that’s a screenshot demonstrating how does it work.
P.S. I got a callback from the recruiter saying I passed the interview anyway. I was so surprised so my first reaction was “Are you sure? It is not possible I passed the interview. It should be a mistake”. The recruiter assured me that there was no mistake, but I didn’t get any further information anyway.