The road less taken: My unconventional journey to becoming a software engineer
Two roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
-Robert Frost
This post talks about my journey to becoming a software engineer and some of the ostensibly risky decisions I took that helped me get there. I majored in Computer Science in Ghaziabad and got a campus placement at an MNC in Pune. A few months later I found myself filling forms in the name of manual testing.
I’ve always wanted to be a developer and finding myself doing something far from it made me discontent, dejected, and indisposed. That was the first time I understood how affinity towards your work could determine the quality of your life. Not that the work was not substantial but somehow it did not resonate with me.
With that knowledge, I planned to prepare for interviews along with my job but fast forward six months and it remained a plan. After a lot of introspection, it dawned on me that the one thing holding me back was the job security. I read somewhere that the three most addictive things are cocaine, carbs and a monthly paycheck. I decided to pull out that sense of security from under me and quit my job and head back to my hometown.
It was a hard and frightening decision, with no job in hand and a lot to catch up on to be anywhere near interview ready, once at home, I started preparing for interviews on my own. I asked my brother for help (also a software engineer) on how to start the preparation, came across books like Elements of Programming Interviews, started understanding concepts on GeeksforGeeks and practicing coding questions on sites like InterviewBit, HackerRank. I prepared for four months and then decided to move to Bangalore and apply for jobs there.
After moving to Bengaluru, I started applying for jobs but I was not getting the call from any of the places of my liking. During one of the web searches, I stumbled across GeekSkool. GeekSkool caught my attention as this was a three month, full time, intensive, coding and training program that had a practical approach to it - here we focused more on learning new technologies by building projects based on it. I gave the interview and got into GeekSkool.
Learning at GeekSkool
It is true that without self-help no one can climb a steep hill, but it is not possible to help yourself in the best possible way all alone at all times. At GeekSkool I made many projects that actually increased my ability to understand and apply new concepts easily. I ran into one project where I stumbled - building your own web server - I spent days reading about Web servers, sockets, HTTP, TCP, … but was not able to start the project. One week was the deadline given to complete a project and a week passed by and I had not even started it and I was very frustrated. I reached out to Santosh (Founder of GeekSkool) and asked for help. Santosh helped me in understanding how to determine the next step, I was unblocked and was able to finish my project, my frustration disappeared and was replaced by a sense of accomplishment. Here, I realized that we are not alone in this, there are people to help us out, but it’s us who have to look around. I’ll top it off by quoting a wise man, AlbusDumbledore:
Help will always be given at Hogwarts (in this world), to those who ask for it.
Talking to the people at GeekSkool, my brother and college seniors I got to know about startups. I understood that in startups, due to the small team sizes, you work with different departments, get to deal with clients, have more accountability toward your work and have flexible work timings. In simple terms, a perfect place where you can explore yourself, get to know your preferences, strengths, and weaknesses. Hearing all this I started getting inclined and applied to various startups via AngleList, an excellent platform for startups, investors, and job-seekers looking to work at startups to come together. I was well into my second attempt at finding a software engineering roles.
One day, I got an email from Adithya about interviewing with Fyle and a coding question to solve as a screening round. Fyle is a B2B SaaS company which builds kick-ass expense management application. From the screening round to the telephonic interview and, finally, the in-person interview my experience with Fyle was amazing. During the interview, Siva and Adithya explained how they work at Fyle and about its culture, and looking at the way the interview was conducted, the whole experience really influenced me. The interview went well and fortunately, I was offered the role of software engineer, the role I was looking out for, and I was thrilled to accept it.
Life at Fyle
It has been a year since I joined Fyle and the journey in Fyle also has its own lessons and realizations. Fyle has this amazing concept of feature ownership -- so you basically own an entire feature/module and work on it. But as we marvelites know:
With great power, comes great responsibility.
-Ben Parker
The first module I worked on was Expense Policies which is a very critical area of the product, majorly on the revenue side and large organizations use it heavily. One of the most exciting and frightening parts working in a startup is that you are thrown into the sea and you have to figure out how to swim. Since this was a fairly complex area, which was also business-critical, working on it helped me learn 2 things:
Asking for help - Asking for help is a subtle art, before asking you must have tried the thing on your own as well as not to waste too much time that messes with your time budget.
Working under deadlines - Well, this didn’t come easy but with experience, you get to manage feelings of anxiety and maintain control and execute a well-organized plan that can greatly minimize the stresses of working under pressure.
My next adventure came when I got to work on the Trips module. Here, I got the chance to explore both frontend and backend development, and here I found my inclination more towards backend. Trips another big area of the product which was up for a big rewrite.
In this project, I underestimated the underlying complexity of the module and my time estimates were considerably off. Here, once again mentors (Siva and Adithya) were extremely supportive and played a huge role in enhancing my decision making capability and was yet another reminder that I was not alone in this.
It also helped me to learn how to prioritize aggressively and arrive at the bare minimum functionality required to make a feature viable. I learned where to draw a line for each version to get shipped and how to iterate rapidly.
Well, the deadline came, we were able to make Trips live on the promised date, and we had a large customer starting using it the very next day which was exhilarating.
From filling forms to having my dream job and working on business-critical features, I can sum up the entire journey in two points. Firstly, small steps in the right direction do end up being the biggest steps of our lives. Secondly, seeking the right help at the right time is not just important to help us grow but also acts as a reminder that we are not alone in this.
I am really grateful to my mentors at Fyle and at GeekSkool who helped me at every step, my brother who was always there for me answering lame questions with all patience and, my parents who believed in me even when I didn’t believe in myself.
And surely...
I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I—
I took the one less traveled by,
And that has made all the difference.