I hereby declare myself a professional impostor.
Sounds weird, but after thinking a little bit, I really am. Each time when I got a new job, I was surprised how I managed to do it despite barely having enough skills.
9 years ago, I was hired to implement distributed VoIP system based on Asterisk, with some sales software integration. I was so afraid of this project. I was literally sitting at the airport gate, hectically googling what “PBX” and “CRM” abbreviations mean. Oh, I was so incompetent.
In a few years, I gained a lot of experience in Unix-like systems, infrastructure automation, etc. My job was mostly to support the internals of the company — email servers, monitoring, VPNs, this kind of stuff. At the same time, I was looking with admiring eyes at people who were working on websites. For me, they were like superheroes, fearlessly fighting with DDoS attacks, doing fancy “high load” things, and deploying super complex distributed systems with a blink of an eye. I was not even dreaming about becoming one of them once. It has just seemed impossible.
Yet, I applied for the job to build a web project from scratch, on a modern tech stack (React and PHP 7), in place of the legacy website. The complication here was the project already had an existing audience of a few million users and was around the top in the global Alexa traffic ranking. It was really “high load” project without any understatement. I somehow managed to pass the interview! I was so internally surprised to hear that and accepted it with such a face, that I could probably also succeed in poker. At this moment, I did not even know git and common patterns for distributed web systems. One of my first tasks was to order new servers to support traffic. How is it possible to know the required number and configuration of servers if we do not know how they will behave under the load? Asked my manager exactly this question. He replied, “You are the specialist and you will figure out”. I learned about load testing and stress testing on this very day. Years flew by, I learned a lot about web development, web security, more infrastructure automation, etc.
At the same time, again I was looking higher. Higher, like where glamorous cloud riders were flying. Well, you get it: Azure, AWS, GCP. For me, it was beyond magic that one could spin up the whole project out of thin air with a couple of API calls. So I decided to dive into this topic a bit. I took one of A Cloud Guru courses and did an AWS Solutions Architect certification afterward.
Long story short, that’s how I end up in TourRadar. I had this uncomfortable feeling, that I was hired exclusively for having an AWS certificate. Honestly, I did not have experience with such a complex AWS infrastructure before: lots of microservices, docker on ECS, Aurora databases, 100% on AWS. The story with Infrastructure as Code and cybersecurity followed, but that’s another story…
I am wondering, how many people are missing wonderful opportunities by not applying to their dream jobs? How many companies are rejecting talented people who are not really suitable for the job at the moment? The IT industry is growing extremely fast, and the demand for talent is overwhelming. How do we fill this gap, or make the process more efficient? Should companies look more closely at the attitude and personality traits rather than hard skills?
Tip for beginners or wanna-be IT specialists: tame your impostor syndrome, make it your friend. If you think you do not belong to some group of people or some technology does not “suit” you but you want to be in, try this trick. ALLOW yourself to belong here.
I heard this phrase from quite a few people: “I’d like to learn Linux, but I’m not really a Linux person”. Like there is some invisible wall. Or there is some special gene in your DNA that makes you a Linux person. Just install Ubuntu on a VirtualBox, run “top” command. Now, take 10 minutes and try to google for every term which you don’t know. Boom! Now you know much much more about Linux.