How To Become a Software Engineer In Less Than A Year
By Warren Wong
4 job offers, well over 6 figure salary with no prior experience. This is the story of how I became a Software Engineer in less than a year.
This isn’t meant to be a brag and I’m extremely grateful. This is meant to be informative and hopefully, gives you a strategy for doing the same or even better.
So you want to become a Software Engineer. That’s probably why you’re here. You’re either trying to break into the industry, thinking of it, or just have a lot of spare time.
So how did I break into the industry?
I get asked this question a lot by mentees, and through DMs on Linkedin. So much so that I’m writing this article.
The tech industry has been growing at an exponential rate, and it’s no wonder why. Every company from airlines to pharmaceuticals needs software engineers, developers, and IT folks.
Disclaimer
Every person’s experience is going to be different. We have different skill sets we bring to the table, and also our own baggage. Be aware of them.
However, that’s not to say that you can’t improve or set yourself up for success more so than before reading this article.
My Background
Prior to entering this field, I served in the military. Being a veteran can help or hurt you. It depends on how you sell yourself (as with all things in life).
I have a Bachelor of Science in accounting not a hard science major like chemistry, physics, or biology. I make this point since many folks in those fields transition to this industry well. Plainly due to the fact that the skillsets developed are transferable.
If you have a major like art or theater you can still break into this field. I know ex-bartenders killing it at high-tech companies now.
I lived in New York City at the time, which factors into your salary. Most companies base salary on location. High starting salaries in San Francisco versus Milwaukee. Levels.fyi is a great resource to get an idea of salary bands.
If you’re curious, you can read about my story here.
How do I break into the industry?
There are several ways to break into the industry, but the main ones are self-taught developer, boot camp graduate, and Computer Science university graduate. I went to a boot camp.
With that out of the way, let’s get into the meat and potatoes.
I’m not going to bore you with how I decided on Software Engineering, but know that it matters. You will be asked why you are interested in the field, what you like about it, and all those questions surrounding your why.
Have a specific answer, and practice it over and over again in front of the mirror and friends.
Not only is it needed for interviews, but it’s for yourself too. You’re going to need some intrinsic motivation when you’re slogging through programming concepts where you want to smash your keyboard on your head and wring your poor mouse into a bajillion pieces.
So how did I attain the knowledge? I started by spending a few months learning basic JavaScript concepts, and industry lingo and spoke to Software Engineers. I attended YouTube university and spent time working on simple coding questions such as Fizz Buzz.
I gained a small but weak understanding through this approach and ultimately decided to accelerate my learning. That’s when I decided on attending a coding boot camp.
My experience with a coding boot camp
There are many variations of coding boot camps, some are better than others. Most full-time boot camps are 3 – 4 months long, but there are also longer options.
I decided on a remote 3-month full-time JavaScript-based boot camp.
It was a Monday to Saturday schedule, about 12 hours a day, with small breaks in between. But, for me and most of my cohort mates, we studied before and after class. In total, I averaged 100-hour weeks for 12 weeks. It was a slog.
I’ll be the first to admit that I’m not the smartest guy in the room, but I made up for it by having a strategy and putting in the work. Effort matters.
Things were progressing smoothly, until around week 6. There was a Technical Assessment (TA) where we were expected to build a full-stack application, a client, a functional server, and a database.
Long story short, I failed. And failing meant I was not allowed to continue with the curriculum. It was very disappointing at that time, and I was in disbelief if I’m being honest.
Luckily, I was given the option to come back and so I started with another cohort 2 months later where I ended up passing the TA and finishing the course altogether.
The Job Hunt
This is probably the part most of you are curious about. Everyone’s job hunt experience will differ, but it will have similarities.
After hearing a group of alumni speak of their job hunt experiences, I decided on a strategy. My approach was going to be to study Leet Code and send out a lot of applications. This was an approach that I took as someone with no experience in the industry.
The strategy was unproven at that point, and it sounded easy enough, but of course, it never is.
In order to ensure my applications had a chance of being read and not screened out by the magical gatekeeper, the ATS, or the applicant tracking system, I needed to have the 3 pillars solidly in place.
Those 3 pillars are the resume, LinkedIn, and GitHub profile.
Resume
A resume that is targeted, filled with quantifiable accomplishments, and proper keywords. An example bullet point would be:
Optimized query times through smart indexing, aggregate functions, and Redis cache, reducing latency by 99.4% and increased throughput by 66% for ~ 30 million records.
The above example is an accomplishment statement, is quantified by the business value it provides, and is concrete. Think about projects that you have built and how to capture that in accomplishment statements.
It takes time to do this, but it will be well worth it. This pillar is incredibly important because no matter how amazing, smart, and great of a co-worker you are, it won’t matter if the ATS or the recruiter doesn’t bother to bring you in for a screening.
If you don’t think LinkedIn matters, you’re wrong. A quick Google search and you’ll find that the number of recruiters and HR folks using LinkedIn is increasing every year with quoted numbers such as 87%, with numbers as high as 95% of recruiting folks using this platform.
Your LinkedIn profile is going to be one of the first things recruiters and hiring managers see when they are deciding whether or not to bring you in for an interview. So it’s smart to do your homework and make sure it is filled out well, if not exceptional.
Have a high-quality photo, above the chest shot with good lighting. First impressions matter.
Create a quick blurb about yourself in the About section. Simple details, your skills, what you’re looking for, and your background. Nothing fancy.
Make sure to fill out every single section as best you can. It’s proven that better filled-out profiles rank higher in searches on LinkedIn.
There are plenty of articles and checklists that inform you all about this and how to optimize your profile. Google them.
GitHub – your projects
Your GitHub profile is the 3rd and last pillar. Most recruiters and hiring managers will be looking here, especially for entry-level developers.
I recommend having 2-3 great projects pinned on your profile. You don’t need 10.
Most recruiters and Hiring Managers aren’t going to read your code. Add a README file. Most people are visual learners, so make it concise, and visual. Think screenshots and short GIFs.
Be prepared to answer questions about your projects in your interviews. Be able to talk in-depth about the technologies you chose to use. The technical decisions you made, challenges you faced, and how you overcame them.
Make sure you have Github activity. The last thing a hiring manager wants to see is no green squares for the last 10 months. Are you even coding or keeping your skills sharp?
Job Hunt Continued
We now have a solid foundation for our applications. You will receive feedback during your job hunt on whether they are up to par.
If you aren’t being reached out to by recruiters for an initial phone screen, then there is probably something wrong with either your resume, LinkedIn, or Github.
This is an iterative process, there’s always room for improvement.
Once I felt really good about my resume, LinkedIn, and GitHub, I started sending out applications. A lot of them.
During the first two weeks, I was averaging about 5 applications a day. I wasn’t seeing many results, so I decided to ramp it up.
From week 3 onwards to week 6, I averaged 20 applications a day. I would spend 1- 2 hours every weeknight sending out applications. At no point did I loosen the gas pedal, even when I started getting a few interviews.
This is a problem I noticed with mentees and folks I talked to on the job hunt. When they get a few interviews, they would stop applying. This is the wrong approach.
For every interview, there are at least a few dozen candidates. Who says you’re the best candidate in that group? It’s very competitive.
Human resources don’t slow down their hiring pipeline until they have a signed contract. Neither should you.
Interviews
My strategy of sending a lot of applications worked, at least in getting me interviews. Passing them is a different ball game.
Interviewing is a skill, which can be improved. More experience gives you a better shot at progressing to the next level.
Besides just studying Leet Code and sending out applications, you need to hone your interviewing skills. There are plenty of websites out there that provide free mock interviews. The one I used was Pramp.
However, no practice is as good as the real deal. A great part of sending out many applications is that you will start getting interviews, which you can use as practice.
My advice is don’t worry about the outcome. Prepare and do your best in each one, even if you don’t care for the company or product. Getting an offer, any offer will help you negotiate. More on that later.
Results
In total, I sent over 400 applications in 6 weeks.
I received about 17 phone screens, 15 take-home tests, 13 onsite interviews, and 4 offers.
When I received my first offer, my heart was pounding. After getting off the phone with the recruiter, I remembered what my mentor told me. Leverage it!
The following day I e-mailed every single recruiter that I was in the pipeline for that I received an offer.
Recruiters started bending over backward to get me to the next round of interviews. Some scheduled ones for the next day, and some even skipped certain rounds of interviews.
Getting an offer is like a magic bullet. An offer means a company thinks you’re their best candidate for the position. It gives you leverage and it’s a great feeling to have the tables turned.
My Schedule
I want to go over my daily schedule for my job hunt. It was Monday to Friday with some time on the weekend following. No, they weren’t kidding, the job hunt is a full-time job.
My weekdays were fairly straightforward.
Wake up around 9 am, do 1- 2 Leet Code problems, and review why I just don’t get Data Structures and Algorithms. There are plenty of resources to study DSA. Some popular ones are Cracking the Coding Interview, Coding Interview University, and many others.
After lunch, while my mind was still fresh I would pick out different programming concepts, terminology, and interview questions to study.
I highly recommend the free Learning How to Learn Coursera course by Barbara Oakley. The skill of learning is powerful, and to be effective you must be strategic.
Outreach came after my 2nd study session. I would spend 1 – 2 hours each day messaging recruiters on LinkedIn, talking to folks in the industry, and going to networking events.
Every day was different depending on if I had an interview, a take-home exam, or an online assessment. I would section off my afternoons for this.
After a long day, I spent evenings 1 to 2 hours filling out job applications, which doesn’t require any brain power. This was a mindless task of creating company accounts, filling out basic information, and attaching resumes and cover letters.
Make sure to allocate time for applications as it is the bread and butter of this job hunt. Without potential interviews, it doesn’t matter how great of an engineer you are. You won’t even get a chance to prove it.
Conclusion
In summary this is how one can become a Software Engineer in less than a year. In total it took 10 months from not knowing a single line of code to receiving my first offer.
2 months of self-studying, attending a coding boot camp, failing after the first half (6 weeks), completing the second round of boot camp (12 weeks), and then 7 weeks of job hunting.
There was about 1 month of time in between my first and second rounds of boot camp, so in total it took 10 months long.
Learn what works and what doesn’t work for you. We all have different things going on in our lives. Make sure to take it easy on yourself, and take it step by step.
Breaking into the industry is difficult, and setting yourself apart is even harder.
However, once you do break into the industry, it is basically smooth sailing.
Throughout this entire job hunt, I took deliberate steps to identify problem areas with my approach. If I didn’t get phone screens, I knew either my resume, LinkedIn, or GitHub wasn’t up to par.
If I couldn’t pass technical screens, then I needed to buckle down and study technical concepts or be more strategic with answering technical coding questions.
Everyone is going to have areas where they struggle at. Some folks are great at passing behavioral interviews, some can’t pass technical rounds, and some folks can’t get a return phone call.
The key is to be able to identify your problem areas and work through them. If you do this, then it’s only a matter of time.
I hope you gained some insight. If you did and you think there’s someone in your network that this may help, please share.
Now go forth and get to work.