Hello there, my name is Jessica(I typically go by Jess) and here is my story on how I became a Software Developer. First and foremost, I came from an art&design background. I originally went to college for graphic design and grew up an artist. I enjoy crafting, drawing and painting!(if folks are interested, I’d be glad to host a portfolio of my artwork. Anyhoo...). I got into the world of software development after college. My friends went to school for Computer Science and went to NYU Tandon School of Engineering - so I was surrounded by tech folks for the majority of my time in college. I want to clarify that I did not go to school for CompSci or attended a bootcamp.
I then became intrigued with how end to end web pages work and the technical side of building websites. Because of my graphic design background, I developed more of a visual eye for every craft and was curious how websites worked in the first place. This led me to learn the basics of HTML/CSS through Codecademy. This was an on and off process and I wasn’t so serious about web development until I moved to California in 2017.
My Progress
In 2017, I reached out to my friend about software development and how exactly to get started. During that time, he was a software engineer(now migrated to DevOps) and had the time to mentor me. Building a roadmap while self taught was difficult. Luckily, I had my mentor point me out in the right directions and this led me to learn from a Udemy course called “The Complete Web Developer: Zero to Mastery” by Andrei Neagoie. From there, I learned JavaScript for the second time(my first was from Eloquent JavaScript) and React. During that time, I also built different projects from scratch. This was all hands on learning from continuous Googling and reading from documentations. I made sure to finish the course 100%, along with chatting with my mentor every Thursday night to update him on my progress.
I knew for sure I was not job ready, and my mentor agreed with me on that. His goal was to have me ready to apply for jobs and prep up for interviews as efficiently as I can.
When Did I Decide I Was Ready?
I was ready to apply for jobs when I:
- Got my portfolio together, including projects I was proud of showcasing
- Had an in-depth resume which was looked over/modified by other engineers I networked with
- Just had a gut feeling and that I should go for it! (Note that I was already programming for a little over a year since then so I felt comfortable with my skill set and eager to learn more)
The Struggle
Needless to say, I believe I put in about 50 applications through LinkedIn and received no response back. I figured there must be something wrong with both my resume and portfolio. After consulting with a couple of engineer friends, I managed to spruce up my resume and portfolio more but even so, I still wasn’t getting noticed.
That’s when I came across Danny Thompson’s LinkedIn advice(Click Here for YT vid). Since applying the LinkedIn series to my own, I received more hits and recruiters noticing me! However, I still placed my applications in and kept track where I was applying rather than doing the whole spray&pray effect. I applied through LinkedIn, AngelList and No Whiteboard. For those of you that don’t know, No Whiteboard is a job board that lists companies who exclude whiteboard coding interviews and show their interview process up-front. I highly recommend this especially for those who don’t want to go through the white board coding process(because we all know how nerve wracking and mentally straining these are).
I also became more active on Tech Twitter and tweeted my process as well as my personal insights. This helped me network with others and gain new perspective on my journey.
Fast Forward to the Interviews
Since then, I had many many interviews. I had interviews with both small and large companies, including Google and Twitch. I would say I did about 10-12 technical interviews total until I received my offer.
Tech interviews, as we all know, aren’t exactly a walk in the park. I’ve failed a few and realized it’s not the companies doing something wrong, it was the way I was prepping and how I was setting myself up for success. I contemplated deeply on areas I could work on and get better at. I’ve thought long and hard about what parts of technical interviews were intimidating for me and what ways I could prepare myself more efficiently.
I practiced LeetCode problems every day and studied deeply on each data structure and algorithm. I understood the How and Why of every concept, as well as the trade-offs vs. what is beneficial in the long run. I also brushed up on my vanilla JavaScript skills.
Fast forward to March 2022. I was pretty much in the crossfire of multiple interviews every week from different companies. During this time, I was interviewed by 4 companies? 5? I forgot, it was honestly all a blur. By this time, I’ve done enough interviews to feel comfortable with them.
Eventually, I landed an offer! The interview process consisted of 4 rounds, including 2 that was tech related. The other 2 were behavioral. Every interviewer gave me a seal of approval and absolutely enjoyed my vibes. Every conversation with them flowed naturally, so it was great to hear they liked me as much as I liked them! It really felt like the perfect fit.
As you can see, I’ve been on this journey for awhile and the job hunting was definitely an on/off process due to me constantly moving and my environment always changing. Once I was settled in a much healthier environment where I can be my authentic self, I was able to prep for interviews without any interruptions. This is certainly a huge achievement for me, especially considering I’ve been at my day job for awhile. It was difficult balancing between job hunting/coding/working, all the while having some sort of “life”.
So…you must be wondering what advice I’d give to someone looking to land their first role as a software developer, and how to prepare for interviews.
Here Are a Few Pointers For Your Journey:
- Revise your resume and build a strong portfolio showcasing projects you’re proud of. Big points towards apps that include working with both front end/back end technologies and database. Be prepared to talk about your projects on a technical level.
- Apply the LinkedIn series to your LinkedIn profile. This helped me tremendously with getting hits on my profile.
- Study up on Data Structures and Algorithms, including Big O Notation.
This was the pitfall of my previous tech interviews. There are still many companies out there who go through this process. Understand the trade offs with each algorithm and explain why. Deeply understand what type of data structure or algorithm to perform on a problem and find patterns. Explain your thought process with the interviewer, step by step.
- Brush up on your programming skills, especially your main language.
There are interviews that involve pair programming on the spot so it’s advised for you to brush up from the basic foundation of your preferred language to advanced concepts. Of course, you are allowed to Google during pair programming but be prepared to be asked technical questions on the spot.
- Do mock interviews through Pramp or Interview.Io
This will help you tremendously on understanding how technical interviews work, as well as behavioral ones. After doing mock interviews a few times, I was comfortable doing these virtually and felt more at ease being in front of the camera.
- Network and meet other devs. This helped me gain more insight on my learning and it actually made me feel more at ease knowing many others are in the same boat as I am! Plus, I’ve had a couple of companies reach out to me because of how active I am on Twitter and snagged an interview that way. It really is important how you market and showcase yourself online. You’ll never know who you’ll meet and what opportunities they may bring. Plus, it’s always fun to make friends!
- Be active on GitHub.
I can’t stress how many times I’ve had interviewers tell me they’ve done their research on me and have gone through my GH repos. I’ve also been asked about a couple of projects on my GH and to explain them on a technical level. Be prepared to do so! It is a good look to see that you’ve been consistent with coding and pushing commits. Plus that green box is satisfying to see. Huge plus if you’ve contributed to open source projects.
- Become part of some sort of community. This falls under the category of networking as well that I can’t stress enough about. There are Discord, Slack and Meet Up groups available. What you’ll learn from other devs is valuable knowledge you will take with you on your journey and vice versa. I also became a member of Google Developer Group and hosted my first talk last year, which gave me something else to talk about in my interviews! It definitely gave me extra brownie points and it’s because giving back to the community is crucially important.
Hopefully this post gives you some sort of insight on how to prepare for technical interviews. My journey was definitely my toughest one thus far. Achieving this goal felt like a pipe dream for so long that knowing it’s finally coming to fruition is such a humbling feeling I can never shake off.
I will be completely transparent and raw with you to tell you that I’ve dealt with many sleepless nights and times where I’ve experienced burn out. I learned to set my priorities and time straight, which meant that I barely had a social life or tended to hobbies that required a lot of my time. It was absolutely a lonesome journey because I felt like I was missing out on some outings with friends or missed catching up with the latest video game, but these are things I can definitely pick back up once I got my job. It is always good to focus on your journey and be consistent but also remember that your mental health is important so take plenty of breaks!
Sources & Shout-Outs:
- LinkedIn Series by Danny Thompson
- Pramp and Interview.Io
- No Whiteboard (Here’s the Twitter link for updates)
- Cracking the Coding Interview by Gayle McDowell
- The Complete Web Developer Course: Zero to Mastery by Andrei Neagoie
- Google Developer Group
- #TechTwitter community