I am Ayush. A fresh graduate who is ready to rock the world of software development with my leetcode and app development skills. This is what I thought 8 months back when I started my first full-time job as a software developer (SDE). Little did I know that my skills were as good as nothing.
Today, I will discuss how I faced the imposter syndrome in my first job and what things I did to overcome it.
What is Imposter Syndrome?
Imposter Syndrome, often referred to as the Impostor Phenomenon, is a psychological pattern in which individuals doubt their accomplishments and have a persistent fear of being exposed as frauds, despite evidence of their competence and success.
This phenomenon is not limited to the tech industry. It's everywhere out there. A lot of people face it and some people do not.
The Initial Days
The initial days were for training. I was learning a new language and building projects in it. I was put on the mobile team. It was fun and challenging. Fun because I was getting paid to learn new things and improve my skills. Challenging because every project was reviewed by the engineering manager and the expectation of the level of code was very high.
It was a really good 30 days. On day 31, I got access to the codebase and reality hit me. I was lost, the codebase was so vast I couldn't imagine. I never worked on a codebase this huge. For your context, there are 4 repositories for a single app. Each repository has hundreds of files. We have 2 apps. The manager gave me 3 days to go through the code and understand all the important things like
Fetching data via APIs
How navigation worked in the app
State management in the app
Whatever I think that is important which the manager forgot.
Well, 3 days felt like a lot to me because I had experience in mobile as all I did was Flutter during my engineering days. Soon I realized how little I knew about app architecture and the application of OOPS.
I was lost. It took me 1.5 days to figure out how data was being fetched from the API or local database (cache) and rendered on the screen. It took me another day to figure out the navigation stack.
This was enough to lower my confidence. I thought winning 4 hackathons and doing 2 freelancing projects made me a pro developer haha. The Imposter Syndrome kicked in.
Kicking out the Imposter Syndrome
The initial tasks that I got were very simple like fixing logical bugs or making some UI changes. The challenge for me was not to fix the bug but it was to find the file. It was very frustrating. Things that should have taken 10 minutes were taking 30 minutes because I was not able to figure out where the hell is the code for the text which is being rendered on the screen.
I figured out that if I wanted to boost my confidence and get out of this hole, I must ask questions. Questions like,
What are the things I should focus on while doing my tasks?
Are there some keywords that we use to find the most used files?
What are the most used component wrappers?
Is there any documentation for specific modules? (Unfortunately there wasn't)
The more questions I asked, the better I got. This is the biggest tip and probably the fastest way to get out of that imposter syndrome hole.
The second thing I did that helped to kick out the imposter syndrome was to study like a student. Whenever I encountered a new concept I quickly used ChatGPT to learn about it.
I was not just copying and pasting views and using already written functions, I tried to understand why the function was written like this, and what are the benefits. In this process, I found some major flaws and fixed them. This improved the performance of the app.
There were two main places where I improved the performance or the user experience
Some flatlists were not being used to their full potential as there were no props used like initialNumToRender, windowSize, maxRenderPerBatch which could improve performance.
A laggy transition from portrait to landscape during navigation from one screen to another was fixed by moving things from interaction manager to setTimeout.
I made more small changes here and there to improve stuff. I also learned a lot of new concepts along the way which boosted my confidence to another level.
This was all that I needed to climb up and regain my confidence. Soon I was delivering modules and new features on my own under a tight deadline. Now, I am one of the core developers who are working on migrating our existing app to Swift.
Key Takeaways & Conclusion
To summarise, there were two things that I did
Ask relevant questions to seniors
Study the code like there is no tomorrow.
The codebase might seem small to you because you might be working at a much bigger organization but my point is that every new company you join, you will have that nerves in the initial few days. The above 2 stratergies will help you quickly adapt to that system and thrive there.
What do you think about the imposter syndrome ? How did you tackle it? I would love to read your comments about the same.