Swe interview master garden
07 Jun 2025
After getting a few offers, hereâs what I did and would do again if I needed to get a SWE job again.
The legs of the SWE interview chair are:
- Coding
- System design
- Behavioural
Youâre going to get interviews in these areas and each company will have slight different flavours to these. My recommendation is to first do the basic prep and then focus in on companies when those interviews have been booked in. This means grepping through glassdoor for every past interview question and doing them.
On general application strategy apply to a crap ton as the more interviews you do the better youâll get, my guess is that youâre pretty much guaranteed to fail your first one.
Coding
USE PYTHON. Some interviews cough cough stripe are impossible to do in verbose languages. Python is by far the best language to concisely explain standard interview concepts, outside of heap, but what are the chances someone asks you a heap question. lmao.
The prep is simple, just do leetcode. Hereâs a nicely structured list of 150 questions. They will get easy as you do them.
System Design
First learn the basic concepts then learn the structure of how you should answer them and just choose a question and spend 30 minutes just writing down in a doc all your answers for each of the sections. As you do enough questions youâll learn that all of the questions are pretty much the same, put a load balancer infront of a host with a db. Wow how simple. Then dump your structured answer into chat gpt and have it ask 10-20 questions on you. The llm feedback loop was extremely useful and would highly recommend.
Concepts:
- https://www.hellointerview.com/learn/system-design/in-a-hurry/introduction
- https://www.hellointerview.com/learn/system-design/in-a-hurry/patterns
- https://www.hellointerview.com/learn/system-design/in-a-hurry/core-concepts
- https://www.hellointerview.com/learn/system-design/in-a-hurry/key-technologies
- https://github.com/donnemartin/system-design-primer
- https://www.karanpratapsingh.com/courses/system-design
- https://github.com/donnemartin/system-design-primer?tab=readme-ov-file#index-of-system-design-topics
How to answer a system design question:
- In the end Iâve come to the FNEHDS acronym. Functional requirements, non functional requirements, estimates, high level design, deep dives, scaling.
- Also https://excalidraw.com/ is a must use!
- https://github.com/donnemartin/system-design-primer?tab=readme-ov-file#how-to-approach-a-system-design-interview-question
- https://bytebytego.com/courses/system-design-interview/a-framework-for-system-design-interviews
- https://gist.github.com/vasanthk/485d1c25737e8e72759f
- https://www.hellointerview.com/learn/system-design/in-a-hurry/delivery
Questions (DONT CHEAT AND READ THE LINKS, JUST READ THE CONSTRAINTS AND DO THE QUESTION ALONE FIRST):
- Create a design pastebin post https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/pastebin/README.md
- Twitter timeline and search https://www.hiredintech.com/system-design/the-twitter-problem/ https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/twitter/README.md
- tweet search https://www.hellointerview.com/learn/system-design/answer-keys/tweet-search
- Web crawler https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/web_crawler/README.md
- mint.com https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/mint/README.md
- data structures for a social network https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/social_graph/README.md
- design chat system https://bytebytego.com/courses/system-design-interview/design-a-chat-system
- design summarisation system https://www.hiredintech.com/system-design/the-summarization-problem/
- design youtube https://bytebytego.com/courses/system-design-interview/design-youtube
- KV store for a search engine https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/query_cache/README.md
- Amazon sales ranking by category feature https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/sales_rank/README.md
- AWS scaling service https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/scaling_aws/README.md
- Ticketmaster https://www.hellointerview.com/learn/system-design/answer-keys/ticketmaster
- Uber https://www.hellointerview.com/learn/system-design/answer-keys/uber
- Dropbox https://www.hellointerview.com/learn/system-design/answer-keys/dropbox
- Facebook live comments https://www.hellointerview.com/learn/system-design/answer-keys/fb-live-comments
- Facebook news feed https://www.hellointerview.com/learn/system-design/answer-keys/fb-news-feed
- Local delivery like gopuff https://www.hellointerview.com/learn/system-design/answer-keys/gopuff
- Leetcode https://www.hellointerview.com/learn/system-design/answer-keys/leetcode
- TopK youtube videos https://www.hellointerview.com/learn/system-design/answer-keys/top-k
- Netflix https://medium.com/@narengowda/netflix-system-design-dbec30fede8d https://highscalability.com/designing-netflix/
- Payment web hooks https://tianpan.co/notes/166-designing-payment-webhook https://medium.com/hootsuite-engineering/a-scalable-reliable-webhook-dispatcher-powered-by-kafka-2dc3d677f16b https://yos.io/2017/02/22/webhooks/
- URL shortener https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/pastebin/README.md
- Design a logging system https://tianpan.co/notes/168-designing-a-metric-system https://www.hellointerview.com/learn/system-design/answer-keys/ad-click-aggregator https://github.com/gitgik/distributed-system-design/blob/master/distributed_logging.ipynb
- Design a deal voucher system - https://www.hellointerview.com/learn/system-design/answer-keys/ticketmaster
- Design data storage
- Design a ledger
- Design IAM
- Design a hotel booking system
Behavioural
Behaviouralâs are just vibe checks. Theres really only a few things you need to tell who are you and why youâre the goat fit. Be interested and passionate!
Who are you:
Why youâre the goat fit:
- Lookup what they previously ask
- Lookup what their values are and have a cracking the coding interview or STAR style story for each one, simple.
- https://www.techinterviewhandbook.org/behavioral-interview/
Final questions:
Finance
Wow a surprise section, some smaller companies such as those in finance will ask more specific questions to hire for spikes. Usually this means knowing a specific language or knowing some sort of CS better, most likely operating systems. Usually they canât actually ask you some real in-depth stuff so just reading the language docs or resources is pretty sufficient.
- What are the cache locality of data structures
- How are maps implemented under the hood
- Do some threading
- Do some naive implementations of cpp shared ptr, unique ptr, tuples
- Stack and heap memory knowledge
Closing
With this process the main thing to note is that your goal is to hold an auction for your time with as many companies as possible. You want to get as many offers at possible at the same time. To do this when you get one offer, let every other company know and that you want to accelerate the process with them because you love their company.
Negotiating for dummies: