Two weeks ago, I have accepted my first full-time job in the U.S. as an Associate Software Engineer. As many do, I shared this exciting news on my LinkedIn. For some reason, my post gained some traction and received 300k views and hundreds of comments.
I didn't expect 600+ connection requests and countless messages/comments in a matter of a week from my other fellows who were also looking for a job as a Software Engineer. I feel terrible not writing something back because I was in their situation a couple of weeks ago. But, I also cannot have a separate conversation with everyone either.
First of all, I do not see myself in any capacity to give others advice or guide them through their job-hunt journey. Heck, right before Christmas I was so frustrated and lost my hope to find a job until 2021 summer after some pretty upsetting rejections. So, the purpose of this article is to share my experience with those who ask.
30 years old, married, living in Los Angeles. I studied at Lambda School Full-Stack Web Development program for a year. I do not have an engineering degree, but web development was something I've been doing since high school. Before Lambda, I studied International Relations at college and was pursuing academic career in that field. So there is a big career change decision there.
When I started Lambda School, I used to work as a delivery driver for DoorDash, GrubHub, Amazon, and some Uber/Lyft business during the day and some weekend nights, #ImmigrantLife. I started part-time at Lambda and switched to full-time since Covid lockdowns.
I have applied for over 262 jobs, took about 16 interviews, and received more than 80 rejections. Some interviews went all the way to the final round, while some others were only initial screenings/coding challenges/take-home assignments.
I knew this was a marathon, not a sprint. So I didn't really obsess with the job applications. I tried to apply for at least a couple of jobs every day, or a total of 20-30 jobs a week. Each application would take a couple of minutes if I am not writing a cover letter from scratch.
When times were hard and I was feeling down, I reminded myself that it takes only one company to say "yes".
I was lucky to have a very supportive wife and a group of friends who are striving for the same goal as me. So whenever I felt hopeless or moody, I'd vent to them and feel better. It really helps to have a support system.
Some days I hated to do any job applications or write a single line of code. I tried watching tech conference videos in those days. Some days were too hopeless and I simply just played video games or tried to bake something to treat myself. Covid + being an introvert made it easy for me to just stay home blow some steam.
I did solve whiteboard-style algorithm questions for a couple of companies. I didn't do great in them, but I solved the questions eventually. None of them really worked.
I am with Ben Awad when it comes to coding challenges in interviews. I think they are broken most of the time. It doesn't measure the person's skills and doesn't represent the job's day-to-day requirements.
However, having an actual experience with the technologies that are listed in the job description was more important in all the interviews I took. They asked me a lot of questions about my projects and I got to talk about the things I have built, which felt great.
I also loved take-home assignments and I think it gives a better understanding of the job's nature. One startup literally had me built one page of their product and it was so much fun. I owe my TypeScript knowledge to that assignment.
Also, the job I got had me built a data-driven React application with charts and an API of my choice. I built a COVID tracker application and represented the data in charts using Apex Charts. In all other take-home assignments I took, I moved to the next stage in the interview process. Building a lot of stuff on my own eventually paid off because when it comes to starting a project and building a product, I was so ready and it had become my day-to-day anyways.
I followed Lambda School's resume guide and added my flavor to it for preparing my resume. Here are the basic principles of a resume for a software engineer/developer job:
- 1 page for every 10 years of experience
- Most related experience (projects in my case) at the top
- Explain each project with action verbs and quantifiable results
- A summary section at the top if you have a good one, I didn't
- Make it ATS (Applicant Tracking System) readable: no images, no tables, no other visuals, just text (cvcompiler is a good tool for testing that)
- Add the job title as your title in the resume at the top, under your name
I wrote a cover letter for more than 59 of my applications (numbers are not exact because I didn't do a good job saving every single cover letter I wrote.) I can guarantee that more than half of them are the same template with company name and role updated. Some jobs require it, so you have to. Some ask you questions like "What makes you stand out?", I'd answer them all the time. Personally, I don't think my cover letters made much of a difference. I still wrote them if I liked the job description a lot.
I took this one very seriously. I tried to keep my GitHub profile very active and I tried to push my code every time I worked on a side-project.
The most important thing about my GitHub profile was that every time I completed a side project and pin it on my profile, I tried to make them look as polished as possible:
- Picked the repo names meaningfully
- Deployed my apps at Netlify or Vercel
- Shared links on the repo page
- Wrote some custom Readme file if it requires some configuration to set up locally
- In my code, I tried keeping it clean and making my apps look stylish
- Changed the property of my apps if I am deploying it
- Added custom favicon if I am loving it
I paid extra attention to the projects that I put on my resume.
I say these because some interviewers explicitly complimented my GitHub profile and activity. Obviously, they look there.
I tried to connect to software developers and recruiters in my city as much as possible. I'd ask the recruiters if they have any junior roles. Some of them directed me to certain companies or job listings. More importantly, they'd share positions sometimes and I'd apply for them. It's good to surround yourself with like-minded and resourceful people in this process. It helps to keep you on track.
Another thing I did consistently on LinkedIn was sharing my projects and talking about my progress. I don't know how much this would help with finding a job but it definitely helped me with my imposter syndrome. Other developers would comment on my projects and I'd feel confident and that I belong where I am.
Unfortunately, due to Covid, I couldn't do any in-person meetings or informational interviews.
For so long, I had ridiculous portfolio websites. They didn't look ugly, but they were silly. So I am not really one to talk about portfolios. I guess it's good to have a basic one in case they decide to look at it.
- I systematically saved 99% of my applications by "title, company, location, link, cover letter, date applied on, and status" in a Google Sheets file. Every time I applied for a job, I saved it. It gave me a chance to have a holistic view of the entire process. When I felt like I am not applying as many or applying for too many jobs, I'd look at my file and see my progress.
I tried to apply for jobs on various platforms. I can say this worked for me because I found my job through a recruiter e-mail through Dice. My three main platform was LinkedIn, Indeed, and Dice. Sometimes I used to check workatastartup.com and angel.co for startup jobs.
4 of my interviews came from workatastartup.com but they all wanted more experience, a person who can hit the ground running. I was looking for some level of mentorship so I decided to move towards mid to big size, enterprise-level companies where I could work in bigger groups with other people and have a proper teamwork environment. This also worked for me, I found my job at a company exactly like that.
If the main requirement in the job was React, I applied for it. My most important skill is React and its ecosystem. PLEASE, PLEASE, PLEASE, do not be discouraged by all the techy name-drops they put in a job description. You can learn most of them in the job (My soon-to-be supervisor said that in the interview). If you have the most important skill in the description, go apply for it.
People say always negotiate your offer. I had a bad experience in that department. In my first month, I received an offer but it's been retracted due to a pay mismatch. The job was based in a cheaper location but it was 80% remote. They didn't want to pay the average rate in my city so they changed their mind after telling me they are going to extend the offer. Obviously, it's a rare thing to happen.
It takes only one company to say “Yes” to your applications.
Rejections are part of the process, don’t take them personal and don’t dwell on them so much.
It’s numbers game. Apply as many as you can. You never know which one is going to work out for you.
Hope this helps.
Best of luck!