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.
Systematic preparation
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.
As mentioned in the last weekly update, we've been busy at work with the AlgoDaily email newsletter. Given the word "daily" is in our name, getting you the right bite-sized content in your inbox is always top of mind.
Two major changes for you to know about:
First, it's now free to restart the AlgoDaily DS & Algos newsletter. If you've been a subscriber in the past, and stopped receiving emails because you ran out of problems, please click here to start from the beginning. Many of our long term users haven't yet had the chance to explore the hundreds of new lessons and challenges we've added-- this is your opportunity to do so!
Secondly, Systems Design Daily, and a growing number of daily newsletters based off the content of our crash courses, are now available! The same way you've been receiving daily doses of interview problems-- get daily systems design, OOP, and ML lessons right in your mailbox.
In an increasingly competitive environment, it's not enough to just leetcode-- being a well rounded software engineer is the best way to land your dream job. To try the available newsletters, navigate to Learning Settings.
The ability to customize your newsletter is exclusive to premium members, now 50% off.
As an AlgoDaily premium member, you're always going to get the newest features and content before everyone else.
This one's been in the works for a bit! There's a lot of ground to cover with systems design, but we're trying our best to keep it with clear and visual.
I'm thrilled to announce Systems Design Daily, all of our systems design lessons neatly presented in an email newsletter! Get a bite-sized nugget of systems design and architecture wisdom every day in your inbox. We're still working on the landing page for systemsdesigndaily.com, but wanted you to start using it!
To get access, go to our redesigned General Settings page, and make your selected course Systems Design and Architecture.
Our end goal is to eventually have daily newsletters for all crash courses on the platform, with Frontend Dev Daily being the next one up. We've tripled our content output, with a target of 16 crash courses by the end of the year. Additionally, be sure you check out our newly popular Learn to Code / Software Engineering course.
As you might know, we are pivoting from a stand-alone technical interview course to a training platform-- offering courses that help engineers advance their careers and build wealth. We have a roadmap of having at least 16 career-building courses on the platform by the end of this year.
The courses have 3 underlying themes:
To preview our paid material, the following crash courses are now 100% free:
Click to start these free courses now!
We are still growing these courses as we add new ones, with one being added every month for the rest of the year. And if you like what you see, we've made our pricing more affordable. We've also made it more flexible-- cancel or pause anytime in-app, no separate call or email required.
Also: ready to take your interview prep to the next level? Conduct realistic & anonymous mock interviews with senior FAANG engineers who will give you detailed and actionable feedback on exactly what you need to work on. The best part? You don't have to pay until you're hired. Ace the coding interview with interviewing.io
Software engineers have been in demand for a while, but we're now in unexplored territory. With the decline of international sudents and CS graduates during the pandemic-era, and closing bootcamps and universities, software engineering compensation is going to climb to new heights.
Here's a comment from a Hacker News thread a few weeks ago:
"Stripe recently offered $550k to a generalist backend developer who is a dear friend of mine, with about 7 years of experience.
Another close friend joined Google recently as a generalist UI developer for $490k. 6 years of experience.
Last FAANG offer I personally got was from Facebook a couple years ago, for an SRE role at $450k (believe it was top of E5 band).
My current comp at a hedge fund is > $1M/y, as a tech lead working in infra SWE."
Yes, this sounds absurd-- but the reality is that the big tech companies are making millions PER employee, justifying these wages. Software engineering is perhaps the greatest wealth creator in our lifetimes-- so how do you take advantage of this quickly?
I've found interviewing.io to be the answer, and a perfect compliment to AlgoDaily. Not only do you get anonymous mock interview practice, which is itself one of the fastest ways to get better-- every interviewer is from a top company that's at the forefront of these huge wages.
I've used interviewing.io several times in the past-- at companies as the interviewer, and also for my own training. It'll help you in multiple ways:
First, the technical competence of interviewers is at the same level of folks you'll encounter in actual scenarios. You'll see they are no smarter than you are, and that they want you to succeed. That's half the psychological battle.
You'll practice under pressure. It's one thing to write questions in a text editor with unlimited time, and another to have someone evaluating you (even if it's nicely!)
If you absolutely kill it during the interview, the interviewer has the option to move you further along in their actual applicant pipeline, so you may just land a job from it.
Practice with a FAANG engineer today. As always, thanks for reading, and happy coding! I'm available for questions and feedback at this email, just reply directly.
We'll send you 100+ of the most common coding interview questions, once a day with visual explanations. Join over 53,000+ 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.