The Technical Interview Preparation
The Grind 75 of LeetCode
I started with the grind 75 list of coding practice problems. I did 35/75 of the questions because the other half of the questions involved complex algorithms that I knew I would not remember. After doing half of this list, I could easily solve easy-level questions. For interns, easy questions are the most common and hard questions are rarely asked.

For the questions I could not solve, I watched NeetCode Blind 75 YouTube videos

The Tech Interview Handbook
Skimmed through the data structures and algorithms cheatsheet. I learned all of these from class since I am a computer science major, so I only needed to skim through them.

CodeSignal
Going back I would start with CodeSignal instead of the Grind 75 list because the questions are easier. After I was confident, I did a few CodeSignal Tests. I often did poorly on the CodeSignal tests usually getting either 0-2 questions out of 4 correct, but I kept doing them twice a week in the last month and it improved my problem-solving ability.

To learn coding techniques I mainly googled them and learned them from Programiz, GeeksForGeeks and YouTube. I also studied a few coding interview cheat sheets and articles.
Time Complexity
I learned about how to analyze time complexity from this video by Ben Awad.
The Big O Cheat Sheet is the most popular resource on Big O notation, but I personally found the python wiki more useful.
The Behavioural Interview Preparation
Notion Project Grid

Coding Questions Notes

Willo One-Way Interview
Why should we hire you?
What are your greatest strengths?
What are your greatest weaknesses?
What programming languages have you used?
Describe the process you use for writing a piece of code, from requirements to delivery.
What is the agile software philosophy?
What is the difference between re-engineering and reverse engineering?
What would you do if a coworker asked you to review their code, and it was full of errors?
How do you feel about a collaborative work environment?