This compiles the common questions I’ve been asked regarding my interview experiences with tech companies, featuring tips, personal experiences, and personal advices.
- Q&A
- How to pass OAs
- Beginning of Interviews
- How to practice for interviews
- How to pass technical virtual onsite rounds
- How to pass behavioral rounds
- How to code
- Why am I not getting any interviews?
- How to receive interview if I don’t have experience?
- Why do I keep getting rejected on final rounds?
- How to cold email
- How to deal with rejections?
- Reasons I have been rejected after interviews:
- Questions to ask recruiters at the end.
- Phrases I like tossing around during interviews:
- Little rant
- Final notes and tips:
- Company Interview Experiences
Q&A
How to pass OAs
This is always the first step in the interview process. The key to passing OAs is practice. Use platforms like LeetCode to understand problems and stay calm during the assessment. You likely have the knowledge needed - just be familiar with the syntax of your chosen language.
Tip!
Submit as soon as you have a runnable solution! Some platforms judge based on speed, even if you only pass 2 test cases, submit a copy first and then fix after!
Code quality isn’t a major concern if the platform uses a general grading framework like CodeSignal or HackerRank. You can usually tell whether the evaluation is fully automated or a mix of system and human review. Based on experience, Amazon’s process is entirely systematic, while quant firms like Citadel and Jane Street may use a combination of automated and human grading, depending on the role. Most other companies rely on generic platforms like CodeSignal for evaluation, so just ensure your code is functional.
Quant companies emphasize on code optimality, so efficiency is key. In their OAs, you may often find yourself seeing “Time Limit Exceeded” if your code is not optimized. Personally, I find their questions not difficult, but finding the most optimal solution is.
Beginning of Interviews
People always neglect this but I find this the one of the most important parts of an interview: Did you know people establish an impression of you in the first 3 seconds? If your interview is in-person, this includes how you walked in the room.
Often interviews start with a greeting: “how are you”. Don’t just say “how are you” back, try to make it personal.
E.g. Instead of responding “I’m great, you?”, could mention the weather, and ask them how it is for them. Remember interviewers are humans too.
Subtle differences matter.
How to practice for interviews
Talk to a mirror.
If you tend to get nervous for interviews, practice in a state where you’ll be nervous. For me, this meant walking down a busy street and talking to myself in public settings. Get out of your comfort zone. It might look stupid, so what? It’s not like strangers will remember you (unless you somehow always pass by the same strangers :P).
How to pass technical virtual onsite rounds
Same requirements as OA above except describe your approach throughout.
General process goes like following:
- Read the problem out loud (interviewer often does this for you). You may ask for a few moments of silence to think if needed.
- Identify keywords and briefly state how you understand the problem.
- Ask clarifying questions, if any.
- Give a general outline of how you’d go about the problem, explicitly state any assumptions (and ask interviewer to correct you if wrong).
- Write the code.
- Run, test, debug. If test cases were not provided, give a few test cases yourself and trace through your code.
- State edge cases and how you would improve the algo if you have time.
- Next question 😊
Similar to OA, Quant companies emphasize on efficiency. Large tech companies, on the other hand, are more concerned with correctness and readability.
Good traits to demonstrate:
- Good communication skills
- able to break down complex topics into simple terms
- able to explain your thought process
- Critical thinking / problem solving
- Be able to identify the problem and come up with a solution
- Be able to optimize your solution
- Considered edge cases throughout
- Good quality code
- Clean code and general good coding practices
- Follow principles
- OOP
- DRY
- low coupling high cohesion
- Knowledge of algorithms and data structures
How to pass behavioral rounds
I try to relate whatever question they ask to my internship experiences instead of project experiences; after all, those are more relevant to real-world business settings. Story telling is a key skill here. Be personal, be human. STAR method is a good starting point, but a good natural story should automatically follow that structure.
Always start by giving context into the situation. But don’t be overly specific, otherwise you’re leaking company info and violating your NDA from past internships…interviewer COULD potentially be worried if you’d leak their company info like that in the future. Typically, mentioning all the tools and how you integrated them is already too specific depending on your line of business. It is ok to be general, and if needed, state explicitly that you’re being general purposefully because your work is confidential in your past company for xyz reasons.
Watch the interviewer reactions here, if they’re getting bored, move on. If they look interested, give more detail.
Don’t yap too much, that got me rejected once lol
People often underestimate the importance of behavioral rounds. This is often the deal-breaker for large companies. I notice that people like focusing on technical section of their interview and neglect their behavioral section, and then wonder why they got rejected despite “doing perfectly”.
Also, you’ll usually find technical components of interviews to be much much easier than OAs - they want to measure your communication and other things, not just your ability to code. Additionally, with the normalization of ‘vibecoding’, realistically, companies don’t need you to be super technical and solve every leetcode question. As long as you demonstrate you have enough technical abilities to do your job, the rest is on your behavior during the interview.
Good traits to demonstrate:
- Good communication skills
- story telling
- Learn fast, can adapt and unblock yourself quickly (this is especially important for Meta)
- Leadership (important for Amazon)
Research the company values before going into your interview
How to code
I’m still learning too! Personally, I find hardest part of technical interviews isn’t to come up with the solution but to remember the syntax because usually on regular day-to-day basis we can work with many at once…the way I ramp up quickly is to pick a language most familiar with (or good time to learn Python if you haven’t picked), and ask AI to generate a summary of syntax for common data structures (arrays, stack, queue, dictionaries, LinkedList, trees, heap). Remember this syntax. Practice writing code on paper, whiteboard, or online IDE with minimum linters - Usually in development we rely on IDEs and auto-complete for efficiency, but in interviews, you don’t have that luxury. Don’t think you can remember every syntax on the spot, you can’t, go practice. Get someone to watch you code to add that additional pressure.
In terms of solving the problem, practicing leetcode, codesignal, hackerrank is your general go-to sites. Practice a variety of questions and don’t tunnel yourself to be an expert at one and hope the interviewer asks those questions. Some companies like Meta have their own practice questions on their job/career portal, those are good practices to get in some diversity in your question set.
Why am I not getting any interviews?
Combination of content on your resume and luck. Keep pushing.
I like to think of job cycles as a mental game. It can be extremely demotivating to not receive interviews after applying to so many jobs, or getting rejected after final rounds. But remember, each application is a new chance. You never know when you might get lucky. You just need to hit that one lucky strike.
How to receive interview if I don’t have experience?
Experience comes with time, but of course we’re all beginners at some point. As a starter, I’d review the tools listed in job descriptions and build a project incorporating them. This not only gives you hands-on experience but also provides a solid addition to your resume (under the projects section) and a valuable talking point for interviews.
While copying and pasting job descriptions might land you an interview, it raises serious integrity concerns. Moreover, if an interviewer catches it, it could be quite embarrassing when they test you on it. Additionally, some companies intentionally avoid using ATS scanners due to this concern, so ensure your resume is clear, concise, and stands out on its own merits.
Why do I keep getting rejected on final rounds?
It is part of the process.
As a personal anecdote, I was rejected after final rounds by many companies. I was discouraged because each full-cycle interview takes over span of months. For me, it felt that getting rejected after the full cycle felt worse than not getting an interview at all…after all, you’ve invested so much time and effort into the process. After months of interviewing and rejections, it was getting super tough to stay motivated. “I must’ve been doing something wrong,” I thought, but turns out there was a better offer down the road waiting. It’ll all work out - you just have to believe in yourself. Also, interviewing is a skill that gets better with practice. The more you interview, the better you’ll become at it. After my 10th interview, I started seeing patterns and common questions, which made subsequent interviews easier and much smoother.
How to cold email
Few things to note:
- Be personal
- No need to be super formal either, especially if you know them - just be yourself. Often times informal emails are more memorable, too, and get better response rates. This doesn’t mean to be super casual and go to a recruiter with “whatsup” though - have a good balance.
- Don’t make it sound like a template
- Maintain a professional and confident tone.
- Be detailed
- Instead of “I’m a good communicator”, say “I can explain complex topics in easy to understand forms”. You can give short examples.
- Be concise
- This is not contradictory to being detailed. Don’t make your email long. Short sentences or bullet points are fine. General rule keep it below 200 words.
Nobody wants to see a whole essay in their inbox, please keep it short and to the point.
- This is not contradictory to being detailed. Don’t make your email long. Short sentences or bullet points are fine. General rule keep it below 200 words.
Tips
- Give the recruiter an action item instead of asking generally - they need to know what to do after receiving their email. You could also give two choices instead of one so instead of a ‘yes or no’ response they’ll pick at least one to answer/help with.
Your goal with cold emailing should not be to receive a direct interview offer from the recruiter but rather to have the resume seen. This way, when you apply in the future, even if for other postings, they might remember you.
How to deal with rejections?
One friend said to me that interviews are a negative binomial. Keep failing, it’s ok, you’ll get there.
If you’re keen and want to know why you were rejected, you could follow up and ask for feedback on your interview, then apply next year. Some companies don’t like this, but usually company are ok with it; some even encourage this because it aligns with their values like continuous improvement. Make sure to explicitly tell them why you’re seeking for feedback (e.g. looking to improve).
Understanding the reason of rejection will help you prepare for future interviews, regardless if same or different position/company.
Reasons I have been rejected after interviews:
(beside just bad answers to behavioral questions or unable to code up the solution)
- Rambled too much… since it was online, I think I cut off the interviewer at times without realizing and they probably took offense… Lesson learnt is if you hear any noise from other side of video call, just shut up lol
- Upon requested feedback, recruiter told me that hiring manager did not believe the numbers stated on my resume.
- I explained, but I suppose the hiring manager didn’t believe me, which I couldn’t do anything about. The recruiter thought it was unfair too and referred me to another position within the company to which I went through another full interview cycle for.
- Did not have a very specific experience. Can’t do anything about this, but not sure why they rejected me after final round instead of resume.
- Selected another candidate while you were interviewing and no spot left – nothing you can do about this since headcount is filled on rolling basis. This is why it’s generally better to schedule the earliest interview spot possible.
Questions to ask recruiters at the end.
This is your time to show your enthusiasm, excitement, and curiosity towards the role you’re applying for. Ask a question that interests the interviewer too.
This is a time to show your personality in a non-interview setting, as a potential coworker, not a candidate, and demonstrate your charisma to have the interviewer like you.
Don’t ask “do you have any concerns or questions for me”? Firstly, most company have policy that they cannot give feedback during interview. Secondly, this is a time for you to demonstrate yourself, don’t toss the opportunity back to the recruiter. If they wanted to know, they would’ve asked earlier. Even if they didn’t have time to ask, too bad, this is your spotlight, don’t give the spotlight back.
Phrases I like tossing around during interviews:
- You must forget what you know to discover what you don’t. (this leads to innovation)
- Done is better than perfect.
- Nothing is impossible.
Final notes and tips:
- Do not ever sound desperate, in cold emails or interviewers. It should be a two-way process: As they’re interviewing you, you’re also interviewing them. Turn passive into assertive. Take control of the conversation by asking questions back. You should know your worth, and if they reject you that’s their loss.
- A good interview should feel like a conversation, never a Q&A.
- If you tend to have shaky voice from being nervous, doing pushups and jumping jacks right before the interview help get rid of the adrenaline. Although please leave enough time to calm down and not enter the interview dying of breath.
- Interviewers are there to help you, if you get stuck, they can give tips. Keep the conversation natural just as you would do in a meeting with a coworker, and never give up mid-interview. Don’t treat your interviewer like your enemy, it is sometimes appropriate to make professional jokes to lighten the mood.
- Be yourself. Relax. You’ll do fine. Worse thing is rejection, but realize rejection = more opportunities for a better offer later. From experience, the more nervous you are, the more likely you’ll mess up.
- Keep a glass of water beside you during the interview so your voice don’t die.
Disclaimer: All tips listed above are my personal style of interviewing and you should adapt and choose what to do based on who you are. Be yourself, that’s the most important. Best of luck! 🍀
Company Interview Experiences
Meta - Data Engineer (US)
Impression
Friendly, family. Super fast responses and communication. Organized - systematic but not without human engagement.
They have their own career portal that act as one-stop-shop for everything: applications, coding practices, onboarding, interviews, etc.
Interview Process
- Recruiter reach out
Interestingly, I don’t recall applying to Meta previously. Meta reached via my work email, the one I use on LinkedIn and resume. Recruiter stated that they found my resume and asked explicitly if I’d be interested in the Data Engineering role.
I answered their initial screening questions, and few days later I was given an OA.
- The OA
- The “initial technical screen”. Data Engineer Intern consisted of ~10 questions mixed with leetcode and SQL (1~2 easy, 1~2 hard, rest medium).
- I did not receive a perfect score: didn’t fully solve 1 or 2 questions out of ~10 (I forgot the exact total). However, it was still enough to pass.
- In terms of difficulty, I found it one of the more difficult OAs compared to all other OAs I’ve completed (citadel, jane street, amazon), but it could also be me tired that day (or because my SQL skills is not as strong as other languages like python)
Onsite interview 1
Mine was virtual since I am in Canada. Onsite round 1 consisted of 30 minute leetcode algorithmic questions and 15 minute behavioral. Technical questions felt leetcode easy~medium to me. They expect fast, accurate answers, and I roughly recall solving 3-4 questions. It’s one of those interviews where I felt little rushed and constantly coding/typing because there were so many questions in such short time (avg <10 min per question).Onsite interview 2
Same format as interview 1, but focused on SQL. ~3-4 questions as well. Make sure to know your joins, having, window functions etc.…questions were hard to me only because I don’t use SQL day to day and haven’t used it in awhile. Also, their IDE broke during the interview so I was essentially coding on notepad without being able to run it…I did fine though, and the interviewer said the solution all looked correct. I helped the interviewer debug the IDE problem, which might’ve been some accidental bonus points.
Received the offer night of my interview (thought I was dreaming or something – never seen a company send an offer that quick)
Throughout the process I had 3 recruiters and coordinators, with interviewers being senior data engineers.
Timeline - Meta DE:
November – Recruiter reach out
December – U.S. work Auth verification + OA (ensuring I have the basic requirements)
January 10th – First Interview (30 min Algorithmic + 10 min Behavioral)
January 23rd (11:30 AM) – Final Round Interview (30 min SQL + 10 min Behavioral)
January 24th (12:32 AM) – Decision
Offer Details
- Non-negotiable salary: ~8k USD per month + either corporate housing or stipend.
- Health insurance.
- Hybrid
- 3 meals a day in office.
- “Wellness benefit” of $300 USD that can be spent on items like apple watch, gym membership, etc.
- Full relocation assistance (food, travel, shipping, etc).
What do I think got me the Meta offer?
Passed technical rounds smoothly. Nothing much to say about this, just think hard and hope you understand their problem.
I think my research experiences attracted them the most, not many published a research paper in undergrad. In addition, the research experiences were relevant to the role.
Learn fast, ship fast was always Meta’s guiding principle. Your ability to unblock yourself is super important. Pending patent was also something that impressed recruiters, and was more impressive given I didn’t know anything about AI (not even vector databases and RAG) yet came out of internship building the RAG model behind our solution in 2 months.
Know where to seek support; know how to learn. I mentioned that: while I didn’t know anything about RAG, since I was doing research at University of Toronto, I was able to reach out to other graduate students for their help and insights. I also mentioned that I don’t believe such thing as “impossible” - anything you can learn, you can do. There’s always more solutions than problems.
Be good communicator. They can tell this by how well you story-tell during the behavioral sections.
Internship return offer timeline:
My internship was 12 weeks long, from May 19 to August 8, 2025.
Received return offer Sept 17 2025, for Sept 21 2026 start date, back to my internship office location, with decision deadline Oct 1, 2025. No offer negotiation were allowed.
Amazon SDE (Vancouver or Toronto)
Impression
Highly automated process, no assigned recruiter.
Interview Process
- OA
Typical OA with few medium-level algorithmic problems - Virtual onsite
Behavioral:
Revolve around the 16 Leadership principles
They will ask 1 or 2 questions about the principles, but when responding, relate to other principles as many as you can.
Debatably more important than the technical rounds.
Leetcode:
- Medium level: Graph and DP
- Some conceptual questions
- Runtime analysis
- Insertion, deletion of various algorithms
- Data structure
- Binary search
- Search algorithms
- Kd trees (they didn’t test this I just mentioned it)
Timeline - Amazon SDE
December 7th – OA Completed
January 9th – SDE Final Interview
January 14th - Decision
What do I think got me the Amazon offer?
I did well on demonstrating the leadership principles, and had good resume.
Offer notes
- Non-negotiable salary. ~8k CAD per month + 2000 relocation/housing stipend per month.
NVIDIA - SWE (Bay Area)
Impression
Their interviews are highly team dependent. Focused on personal characteristics. It is not just about your technical skills but rather who you are and how you behave. Super friendly people. Recruiters respond quickly and are very accommodating. You’re always assigned one recruiter and one coordinator.
Interview Process
Friendly, accommodating, casual.
Interview: 2-4 rounds depending on the role. Mix of behavioral and technical in each round. All rounds are similar, with different members of the team. Technical rounds are often dependent on the team and not usually a typical leetcode question. Oftentimes can require system design skills and verbal communication.
Compared to other companies, NVIDIA’s interviews are more about who you are. In terms of difficulty, the questions were always super easy but correctness isn’t just the thing they look for.
Common questions:
CPU vs GPU
Why Nvidia (this is asked every time - make it personal. Don’t just praise nvidia - they hear that enough)
What I also mentioned during my interview
For Metrics & Evaluation AV team:
Floating point errors, splines, interpolation
Catastrophic cancellation
Timeline - Nvidia SWE
December 20th – First Interview
January 14th – Final Round Interview
January 27th – Decision
Coinbase - SWE (SF Bay Area)
Impression:
Friendly, structured. Recruiters were friendly and very detailed in their responses.
Interview Process
- OA + Cognitive Test
- CCAT
- Recruiter call (30 minutes)
- Standard behavioral questions + which team you’re interested in
- Technical round (you may choose either frontend or backend)
- Standard technical round. Easy/Medium level. Only ~5-10min behavioral questions.
Timeline - Coinbase SWE
December 7th – OA + Cognitive Tests Completed
December 20th – Recruiter Call
January 9th – SWE Final Interview (Backend)
January 13th - Decision
Offer Details
- Non-negotiable salary (it is the same for all interns) ~$50 usd an hour
RBC Amplify - Developer or Data Engineer (Toronto)
Impression
Longest interview I’ve ever done (3h?) but very engaging, unique, and fun.
Interview Process
OA (your standard oa)
Virtual onsite (3h)
A bunch of people join a big meeting room (50 people?).
Interview is divided into 2 main rounds: behavial and technical.
Behavioral:
Entered a breakout room with 4-5 students and 2 interviewers (who just watch in the background). As a team, you’re given a challenge, and to solve it together.
The challenge here is not difficult at all, and is super open-ended. The interviewers are not looking for the “correct” answer, but rather how you work as a team. They want to see if you can communicate well, listen to others, can contribute meaningfully to the discussion, and can lead the team. Now, since this is an interview, everyone might try to lead the time, so it’s important to find a balance between leading and listening. Don’t be too passive, but also don’t be too aggressive/bossy.
Technical:
You enter another breakout room with 2-3 interviewers and just yourself. There are two parts: a algorithmic and a system design question. The algorithmic question is easy-medium leetcode style, and your ability to explain your thought process clearly is crucial. If you applied as a data engineer, be prepared that the question will be related to data engineering concepts. While they don’t restrict programming languages here, in my opinion it’s good to demonstrate your Python skills. If you’re a developer, use whichever language you’re most comfortable with.
System design question depends on your role. If you applied for developer, it might be a classic system design question. If you applied for data engineer, it might be a data pipeline design question.
Offer Details
- Offer was given around a week after the interview. The recruiter will call you directly to give you the offer verbally before sending the official email.
- Depending on your experience and role, the general range I’d expect $23-$33/hr CAD for undergrad, and ~$35/hr CAD for master students.
Lyft - SWE (Toronto)
Impression
Typical interview process. Recruiters are very friendly and responsive. Engineers are down-to-earth and actually ‘human-like’.
Interview Process
- OA (Byteboard)
- Part 1 - Technical reasoning exercise 40 min
Collaborate on a design document outlining potential implementation decisions for a product. You’re given a ‘google doc’ just like a design document you would receive at work. Complete the document by editing doc, filling in unfinished sections, and answering open questions that are presented like ‘unresolved comments’. - Part 2 - Coding implementation exercise 70 min
Implement a few aspects of the product described in Part 1. You’re given a small multi-file codebase and expected to write clean and functional code to implement an feature described in the design doc (part 1).
- CS Fundamentals/Problem Solving: 1h
- introduce yourself
- algorithmic coding questions (leetcode easy-medium)
- questions/concerns
- Final Round: 1.5h
- introduce yourself
- algorithmic coding question (leetcode medium)
- questions/concerns
Timeline - Lyft SWE
- Sept 12 - Applied via website
- Sept 19 - Recruiter reach out for pre-screening questions
- Sept 22 - OA invite
- Sept 26 - round 1 interview
- Oct 2 - round 2 interview
- Oct 14 - verbal offer received via email
- Oct 15 - Offer call via google meets regarding offer details
Offer Details
(Currency in CAD unless specified otherwise)
- $40-45 per hour
- $200 commute per month
- $50 lyft credits per month + lyft pink
- $20/day lunch stipend for days in office
- $750 USD housing stipend/month
- Relocation assistance (mileage reimbursement)
The end (for now).
Hope this helped :)