These companies create their own products. Examples include Google, Apple, and Amazon etc.
Interview Preparation Tips:
- Proficiency in at least one programming language: Such as C++, Java, or Python. These languages are versatile and used in web development, game development, desktop applications, Android, iOS, AI, data science, system design, virtual reality, and cybersecurity etc.
- Data Structures and Algorithms (DSA): Essential for any company interview, especially product-based ones. Key topics include, like BFS & DFS, sliding window, top K elements, linked lists, stacks, queues, dynamic programming, arrays, strings, searching, sorting, backtracking, tries, bit manipulation, graphs, and BSTs.
- Practice problem-solving, on platforms like LeetCode. Focus on frequently asked questions and patterns.
- Additional knowledge in computer networks, system design, database management, operating systems, and testing etc.
These companies do not have their own specific products. Examples include IBM and Accenture.
Interview Preparation Tips:
- Proficiency in at least one programming language: Such as C++, Java, or Python.
- Basic knowledge of DSA.
- Object-Oriented Programming (OOP)
- Database management
- Computer fundamentals
The following plan should give you an idea of how to tackle the interview preparation process.
★ 1+ Year Before Interview:
-
Learn multiple (like 2 or 3) programming languages.
-
Expand your network.
-
Build projects, website/portfolio showcasing your experience.
-
Students: Find internship and take classes with large projects. Professionals: Focus on working on "meaty" projects.
★ 3-12 Months Before Interview:
-
Continue working on projects. Try to add one more project.
-
Create a draft of resume and send it out for review.
-
Make a target list of preferred companies.
-
Learn and master Big O. Then Implement DSA from scratch.
★ 1-3 Months Before Interview:
-
Do several mock interviews & Continue practicing interview questions.
-
Create a list to track mistakes you've made while solving problems.
★ 4 Weeks Before Interview:
-
Create an interview prep grid.
-
Update Resume & Begin applying to companies.
-
Continue practicing questions, writing code on paper. Do another mock interview.
★ 1 Week Before Interview:
-
Continue practicing interview questions. Do a final mock interview.
-
Rehearse your stories from the interview prep grid.
-
Re-read Big O section & Algorithm Approaches (optimize & solve techniques).
★ Day Before Interview:
-
Rehearse each story from interview prep grid once.
-
Continue practicing questions & review your list of mistakes.
-
Review the Powers of 2 table. Print it for a phone screen.
★ Day of Interview:
-
Wake up in plenty of time to eat good breakfast & be on time. Be Confident but Not Cocky!
-
Remember to talk out loud. Show how you think.
★ After Interview:
-
Write "Thank You" note to the recruiter.
-
If you haven't heard from recruiter, check in after one week.
-
If there's no offer, ask when you can re-apply. Don't give up hope!
-
But got an offer? Celebrate! Your hard work has paid off!
Reference Book: Cracking the Coding Interview
- Pramp
- Gainlo
- Interviewing.io
- Hacker News [https://news.ycombinator.com/]
- Lobsters [https://lobste.rs/]
Why Some Engineers Earn More Than Others Despite Having the Same Experience? So How to Increase Your Earnings?
-
Depth Matters More Than General Knowledge: Having surface-level knowledge of many things is really good but being a specialist in one area.
-
Prioritize Problem-Solving Over Plain Coding: Companies pay for Real Solutions, not just Code! Without expertise in System Design, Long-term Scalability, Performance Tuning, Business Logic, Security, Database Indexing, API Rate Limiting; Growth is limited. Always understand a feature’s purpose first. Like if an API underperforms; Identify the root cause, improve queries & add caching.
-
Get Strong at System Design & Performance Tuning (differentiators for high-paying engineers): Like can your system scale to millions of users while optimizing performance through database indexing, caching, and faster API response times?
-
Keep Learning Beyond Work Hours: Read technical books, Stay updated with new technologies & frameworks, Work on side projects that showcase your skills in solving real-world problems.
-
Build a Network & Strengthen Your Personal Brand: Share knowledge online to boost visibility with recruiters & hiring managers.
-
Master Negotiation Skills to Maximize Your Worth: Engineers who negotiate well earn more. Research market rates (e.g., Levels.fyi), quantify your impact (e.g., “I optimized a system to save $100K”) & ask confidently for what you deserve. Don’t just take the first offer; Push for better salary, equity or bonuses. For example: Thanks for the $180K offer! Based on my experience & market data, Am targeting $200K; How can we align on that?