It’s almost the New Year, so I’d like to give you a quick gift! From yours truly, here’s the exact steps to take to break into a top software company next year.
I’ve always wished there was a definitive guide on how to break into FAANGMULA (Facebook, Apple, Amazon, Netflix, Google, Microsoft, Uber, Lyft, AirBnB) as a software engineer. Let the following be an attempt.
Now of course, FAANGMULA is just a proxy– it could be any other large software company not in the above (now very long) acronym. I’ve spoken at length about the benefits of working at most top software companies: interesting work, smart colleagues, incredible compensation, great benefits, prestige, etc.
In 2022, let’s make it happen for you! Here’s a plan of action, based on my own experiences and having seen what works for others.
We are going to use a target date of the end of March to land your dream job. This is because the entire application cycle usually takes around two to three months. Also, many people's bonuses arrive towards the end of February or March, so timing it this way ensures you maximize your earnings.
This also assumes that (though understandably not true for all) you have 15–20 hours a week to dedicate to interview prep.
Without further ado, here’s our game plan.
Steps for FAANGMULA
Crush technical phone screen:
Crush the on-site interviews
End of March: Get offers and negotiate
As the pandemic continues to stretch on, we've seen some reverberations from it in the tech hiring landscape. Software engineers, previously already in high demand, are witnessing unprecedented numbers of companies and recruiters reaching out. They come offering some transformational roles, often with life-changing pay.
Be aware of some trends that are occurring. Staying on top of the industry's practices can help you prepare accordingly, and land the job that could make or break your career. Imagine landing a job at Amazon in 2000, or Google in 2005-- where could you be now?
Some Recent Trends
What to Make of This?
The consensus is clear: there's no better time to find a new job. In the month of December, activity usually drops since people are on vacation. After the New Year, expect a rebound in recruitment and interviews.
However, also expect a more dynamic environment. There will be fiercer competition, rejections out of your control, and companies changing their open roles and policies at a greater frequency.
At AlgoDaily, we have a plan in the works to help students streamline their interviewing even more in January-- this is to be announced soon! But in the meantime, here are things you can do to bolster your chances:
You can accomplish all of the above with the help of AlgoDaily Premium, our membership offering that includes all material and tools acrosss algodaily.com-- currently on sale.
Get 50% Off AlgoDaily Premium Today. Deal ends shortly!
Here at AlgoDaily, we've been busy. This year, our team of amazing content creators has added over 200 new lessons to the site, covering ways to conquer coding interviews, as well as things you should know to level up as a developer.
We recently ran some analytics on the new guides published in 2021 that our students have found most helpful. This was discovered by crunching time on page, number of completions, and general qualitative feedback.
Here are your favorite lessons on algodaily.com in 2021:
Coding and Algorithms
Systems Design/Operating Systemms
We know that the AlgoDaily's courses are great when you have at least a few weeks or months to prepare. But what if you're scheduled for an interview, say, tomorrow?
How can you prepare with just a few hours of free time?
The answer is in our cheat sheets. Did you know AlgoDaily.com has 20+ cheat sheets that provide the most common questions asked during technical interviews?
Here are our most popular ones:
Roles and Technologies
I hope you check out some of these cheat sheets. If you find them helpful, I would appreciate it if you shared this amongst friends or on social.
This is a longer email, so brace yourself. But if you can make it to the end, you'll get the exact advice I would give my own family members as to how to land a 200-400k software engineering position.
Goals vs. Systems
Let's quickly differentiate goals vs. systems thinking. A goal is something to strive towards. Say you want to lose 10 pounds-- that's your goal. A system is an organized framework where an input leads to an expected output. The system to lose the 10 pounds might be eating 500 less calories a day for several months.
Spot the difference? While there isn't a guarantee that you'll achieve the end result you want (after all, we all work on buggy software systems...), you are increasing the probability that you'll be successful.
Applying this to your career
We all know you can't guarantee a successful job interview-- there's too many variables: your interviewer's mood, the technical questions you're asked, your fatigue on the day of, your level of preparedness, etc.
What you're looking for, however, is a way to improve your odds.
Here's an example: as a developer, a "technical" interview can theoretically consist of any kind of trivia related to Computer Science under the sun.
But practically speaking, there are 5 big types of interviews:
Yes, there will be some surprises-- perhaps you'll get an interviewer who asks you to implement floating point decimals, or one who wants you to create a programming language from scratch. But 95% of software develoepr interviewers will be some variant of those 5 interview styles.
When I first started preparing for interviews, I did the usual thing most of you will do: I'd wait for a week before the interview. I'd go on leetcode and hit "random problem" several times. I'd try to solve the problem for about half an hour, then read the solution. I'd do this for a few hours before I was burned out.
The issue with this approach was two-fold: I wasn't getting better, and I hated it. I did enough cramming of this style to just land my first few initial offers.
As I became more senior as a developer, I started to get better inbound opportunities, and at random points throughout the year. I never knew when I'd get a bite from a company I really wanted to work at, so I needed some way of staying interview-ready without anguish.
Slow and steady
This is how AlgoDaily came along-- I decided to do less, and over a longer period of time. I found the 100 most common whiteboard interview problems, and wrote a script to drip me one a day. It took me roughly 30 minutes a day in the mornings.
For each problem, to make sure I'd remember it, I started writing out an explanation that made sense to me. I added pretty visuals and step-through traces of the solutions so that if I ever came back, I'd immediately be able to "visualize" the solutions in my head.
It's important to note that I only spent about 5 hours max a week doing this. I didn't notice it at first, but this slow and steady system was making me a better interviewer, better developer, and was far more enjoyable.
The best approach is one you can adhere to
With AlgoDaily, we include a course and a newsletter because reducing things down to one lesson a day works. It's an acceptance of being human-- some days you won't feel like doing anything: no problem, reset the day you're on, and revisit the problem at a later time. Other days you'll feel motivated to really put in the work-- jump into our course and try to finish as many lessons and questions as possible.
And we've arranged things to remove any roadblocks. Our material is curated and organized in a sane, level headed way that takes you step by step through landing a software engineering job.
We'll send you 100+ of the most common coding interview questions, once a day with visual explanations. Join over 25,323 users who are doubling their salaries in 30 minutes a day.
Welcome to the most accessible guide to technical interviews. AlgoDaily was created to be a gentle, visual introduction to patterns around solving data structures and algorithms challenges.
We believe that technical interviews are a matter of practicing well. We've referenced hundreds of resources on habit change, education design, and algorithms to design the best and most streamlined learning experience.