So one way to go about it is to make a group of 3–4 friends and start building a slightly bigger project — something that is somewhat scalable and can handle a bit of traffic (even if simulated). The tech stack can be anything, but it should be a proper development project. Try to include some kind of scalability aspect and make sure you highlight that clearly in your resume.
Also try to integrate GenAI in some form. It doesn’t have to be very complex — even something like inline text suggestions while a user is typing works. This will likely be your main project and should grab the interviewer’s attention.
The second project can be simpler and based on your primary coding language. Something like a text parser or file/text compressor works well.
If you want, you can add one more project, but honestly two good projects are enough.
Some example link
DSA :-
For the DSA part, the first thing to do is the Striver sheet.
Try not to spend more than 30 mins on a problem (since time is limited).
Now there are two main possibilities. If you are in a college where cheating happens in OA, then just doing the Striver sheet is enough.
If not, then you need a bit more practice. Apart from the A2Z sheet, try to do 2–3 extra problems daily.
After giving multiple OAs, one pattern I noticed is that most OAs stick to limited topics:
Greedy / Binary Search / Strings / Maths (usually first problem)
DP / Graph / Tree (usually second problem)
Here are some problems that help you get used to these patterns:
For Greedy
https://cses.fi/problemset/task/1754
https://atcoder.jp/contests/abc116/tasks/abc116_c
https://atcoder.jp/contests/abc099/tasks/abc099_c
https://codeforces.com/problemset/problem/1154/D
https://cses.fi/problemset/task/1164
https://leetcode.com/discuss/post/7344979/15-core-greedy-patterns-for-coding-inter-a1wp/
For Binary search
https://codeforces.com/problemset/problem/1985/F
https://leetcode.com/problems/ugly-number-iii/description/
https://leetcode.com/problems/minimum-size-subarray-sum/
https://atcoder.jp/contests/abc203/tasks/abc203_d
https://codeforces.com/contest/782/problem/B
https://atcoder.jp/contests/abc248/tasks/abc248_d
https://leetcode.com/problems/kth-smallest-number-in-multiplication-table/description/
https://cses.fi/problemset/task/1631
For Strings just Striver sheet is enough
For maths + Bit manipulation
https://codeforces.com/problemset/problem/1097/B
https://leetcode.com/problems/minimum-number-of-k-consecutive-bit-flips/description/
https://atcoder.jp/contests/abc281/tasks/abc281_f
https://codeforces.com/problemset/problem/1045/I
https://www.codechef.com/problems/OZ
https://atcoder.jp/contests/abc144/tasks/abc144_c
https://atcoder.jp/contests/abc170/tasks/abc170_d
https://atcoder.jp/contests/abc215/tasks/abc215_d
https://atcoder.jp/contests/abc177/tasks/abc177_e
https://codeforces.com/contest/2179/problem/A
https://www.codechef.com/START217B/problems/MAKEAP7
https://leetcode.com/problems/smallest-all-ones-multiple/description/
https://codeforces.com/problemset/problem/230/B
https://codeforces.com/problemset/problem/584/D
For DP do Striver sheet — that is enough. Try to directly think in terms of tabulation. Most OA problems are straightforward, I haven’t really seen heavy optimizations being required.
For extra practice:
https://www.interviewbit.com/courses/programming/dynamic-programming/
https://atcoder.jp/contests/dp
For Graphs (extra problems)
https://cses.fi/problemset/task/1673
https://cses.fi/problemset/task/1195 ( my karma OA )
https://cses.fi/problemset/task/1680 ( asked in Google FT OA )
https://cses.fi/problemset/task/1750 ( important concept )
https://cses.fi/problemset/task/1682 ( SCC has standard problems only )
https://cses.fi/problemset/result/16420744/ ( Maximum difficulty you can expect not more than this )
https://atcoder.jp/contests/abc139/tasks/abc139_e
https://atcoder.jp/contests/abc051/tasks/abc051_d
Tree section (more than enough, just do these and you are good)
https://cses.fi/problemset/task/1674
https://cses.fi/problemset/task/1130
https://cses.fi/problemset/task/1131
https://cses.fi/problemset/task/1132
https://cses.fi/problemset/task/1133
https://cses.fi/problemset/task/1687
https://cses.fi/problemset/task/1688
https://cses.fi/problemset/task/1135 ( Zomato OA with some twist )
https://cses.fi/problemset/task/1136 ( Zomato OA with no twist )
https://cses.fi/problemset/task/1677 ( offline query method appearing recently )
https://cses.fi/problemset/task/3409 ( feel free to skip but good practice )
Apart from this, give contests regularly — Leetcode (Sunday 8AM) or any platform you prefer.
I personally like Atcoder (Saturday 5:30PM) since it’s still quite resistant to cheating and very relevant to OAs.
In the last month before OAs, give a few mocks so you don’t choke:
https://maang.in/mocks?tab=company-wise-practice
[one of the contest i prepared (all relevant problems here)]
https://www.hackerrank.com/career-bootcamp-contest
- in this all the problems are relevant except the F one. The editorials are written by me only so in simple words , but still if you have any questions in some problem editorial or need explanation feel free to ask.
Skip CF for now.
The problems listed here are good enough. The goal is to get comfortable with these patterns and build some hand memory for standard algorithms, since time is limited in OAs and debugging wastes a lot of it.
If you can solve the first 3 problems on Leetcode within 45 mins or do first 4–5 problems in Atcoder, you are in a good position to crack many OAs.
Shortlisting also depends on branch and CPI, so just focus on what you can control.
Interviews :-
For interviews, just cover remaining DSA topics from Striver:
Binary Tree
Tries
Linked list
If asked your favorite data structure, say Linked List — limited variations and very predictable questions.
For Core CS topics, this is more than enough:
OOPS
https://www.youtube.com/playlist?list=PLQEaRBV9gAFujcBWJhBT2XXsuMlIfETBy
Operating System
https://www.youtube.com/playlist?list=PLDzeHZWIZsTr3nwuTegHLa2qlI81QweYG
DBMS
CN
https://www.geeksforgeeks.org/computer-networks/computer-network-tutorials/
Some points to remember
CN can mostly be ignored for internships and to some extent DBMS as well.
Do SQL from GFG
https://www.geeksforgeeks.org/sql/sql-tutorial/
Practice SQL from Leetcode 50 (till subqueries is enough if not DS focused)
https://leetcode.com/studyplan/top-sql-50/
CPP
For projects, be ready to answer how you would scale from 100 → 1000 → 10000 users.
[Basic system design]
https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX
[Some design problems to do]
https://leetcode.com/problems/design-twitter/description/?envType=problem-list-v2&envId=n7rd9612
https://leetcode.com/problems/design-spreadsheet/?envType=problem-list-v2&envId=n7rd9612
Quick Tip :- while doing design problems, give the high level architecture, focus on reusability of classes, and discuss tradeoffs clearly. OOP concepts should be strong.
If you focus properly on this, you should be able to handle the design round well.****