Claim 35 Post Templates from the 7 best LinkedIn Influencers

Get Free Post Templates
Ashish Pratap Singh

Ashish Pratap Singh

These are the best posts from Ashish Pratap Singh.

11 viral posts with 29,055 likes, 903 comments, and 1,340 shares.
3 image posts, 0 carousel posts, 1 video posts, 7 text posts.

๐Ÿ‘‰ Go deeper on Ashish Pratap Singh's LinkedIn with the ContentIn Chrome extension ๐Ÿ‘ˆ

Best Posts by Ashish Pratap Singh on LinkedIn

As a Software Engineer, it's completely fine to not know everything before the job.

Before joining Morgan Stanley, I didn't know React, Redux, Flask and Prometheus.

Before joining Amazon India, I didn't know AWS, Transformers and Typescript.

Before joining Adobe, I didn't know Hive, Presto and Kubernetes.

In my current job at Amazon in US, I worked with multiple internal tools for the first time.

Software Engineering is a career where much of the learning happens on the job.

With a solid understanding of the fundamentals and a willingness to learn, picking up a new tool or technology isn't that challenging.
Post image by Ashish Pratap Singh
I failed so many coding interviews until I learned these 30 lessons:

1) Most interviewers are supportive and want you to succeed.
2) Prepare a short and concise introduction.
3) Be ready to discuss technical aspects of your projects in detail.
4) Understanding the problem well is the first step during interviews.
5) Never assume things which are not given in the problem.
6) Ask clarifying questions about the problem, input/output format, constraints, and edge cases.
7) Itโ€™s ok to use pen and paper and take notes during the interview.
8) Pick a programming language you are most comfortable with.
9) Start Simple, Then Optimize.
10) You are not expected to know the perfect solution immediately.
11) Ask for hints if stuck for long.
12) Listen attentively to the interviewer, and integrate the hints/suggestions.
13) Start coding only when you're clear on what to write.
14) Don't just code, communicate.
15) Discuss your approach before you begin coding, not after.
16) Think aloud. Your interviewer can't read your mind.
17) Your solution is as good as how well you communicate it.
18) Use meaningful variable names and keep your code organized.
19) Break down complex questions into small independent questions.
20) Prioritize optimizing computations that are repeated, overlapping, or redundant.
21) Write clean, readable and modular code.
22) Avoid overcomplicating your solution.
23) Write tests to validate your solution. Consider edge cases.
24) Be ready to discuss the time and space complexity of your code.
25) Behavioral questions are important too.
26) Have few questions to ask the interviewer.
27) Rest well before the Interview.
28) Start giving interviews before you think you are ready.
29) Luck plays a significant role, so don't be disappointed if you aren't selected.
30) Use rejections as opportunities to identify areas for improvement.

Bonus: HashMaps are your best friend. Know them well.

If you found it helpful, repost to help others in your network โ™ป๏ธ

โฌณ

Thanks for reading!
Follow me Ashish Pratap Singh and join my free newsletter to learn coding and system design visually: https://lnkd.in/dXtb8SwU
4 GitHub Repositories to Prepare for 4 Different Types of Software Engineering Interviews:

1. System Design Interviews: https://lnkd.in/gEVpTZKH

2. Low Level Design Interviews: https://lnkd.in/gb-r9vha

3. Coding Interviews: https://lnkd.in/g4x48ee9

4. Behavioral Interviews: https://lnkd.in/gJTs2Xsb

โ™ป๏ธ Repost to help others in your network.
25 Blogs to Learn 25 System Design Concepts:

Content Delivery Network (CDN): https://lnkd.in/gjJrEJeH

Caching: https://lnkd.in/gC9piQbJ

Latency vs Throughput: https://lnkd.in/g_amhAtN

CAP Theorem: https://lnkd.in/g3hmVamx

Load Balancing: https://lnkd.in/gQaa8sXK

ACID Transactions: https://lnkd.in/gMe2JqaF

SQL vs NoSQL: https://lnkd.in/g3WC_yxn

Consistent Hashing: https://lnkd.in/gd3eAQKA

Database Index: https://lnkd.in/gCeshYVt

Rate Limiting: https://lnkd.in/gWsTDR3m

Microservices Architecture: https://lnkd.in/gFXUrz_T

Strong vs Eventual Consistency: https://lnkd.in/gJ-uXQXZ

REST vs RPC: https://lnkd.in/gN__zcAB

HeartBeat: https://lnkd.in/g4x7sMrF

Circuit Breaker: https://lnkd.in/gCxyFzKm

Idempotency: https://lnkd.in/gPm6EtKJ

Data Replication: https://lnkd.in/gVAJxTpS

Data Redundancy: https://lnkd.in/gNN7TF7n

Database Sharding: https://lnkd.in/g553UaVn

Proxy Server: https://lnkd.in/gi8KnKS6

Domain Name System (DNS): https://lnkd.in/gkMcZW8V

Message Queues: https://lnkd.in/gTzY6uk8

API Gateway: https://lnkd.in/gnsJGJaM

Distributed Locking: https://lnkd.in/gRxNJwWE

Checksum: https://lnkd.in/ghNc5pfn
My Microsoft interview experience for L61 Software Engineering role.

I have given Microsoft interviews twice.

Hereโ€™s my most recent interview experience (and result):

๐ŸŽฒ The process:
1๏ธโƒฃ Applied through referral.
2๏ธโƒฃ Recruiter reached out to me after a few weeks.
3๏ธโƒฃ 4 coding rounds.
4๏ธโƒฃ 3rd round had a small System Design problem at the end.

๐ŸŽข The interview breakdown:

1๏ธโƒฃ Coding round 1:
A backtracking problem involving an Array.
Medium difficulty.
It was over within 30 minutes because the interviewer had only 1 question for me.
- This round went well.

2๏ธโƒฃ Coding round 2:
This round had 2 questions:
First Question: A binary tree problem involving recursion and backtracking.ย 
Medium difficulty but could feel hard if you havenโ€™t done similar problem before.
Second question: A matrix based graph problem.
- I was able to answer the first problem but ran out of time for the second problem.

3๏ธโƒฃ Coding round 3:
A sorting-based counting problem.
The problem was phrased as a real world scenario and the trick was to convert it into a known algorithm.
Medium difficulty.
- Optimized time complexity from O(nlogn) to O(n) using extra space.

At the end, I was asked a small System Design problem related to batch processing which I answered after few hints.
- This was my best round.

4๏ธโƒฃ Coding round 4:
This round was with a hiring manager and it started with discussing about the team I was interviewing for.
I was asked one coding problem based on matrix traversal.
Medium difficulty. It had edge cases.
Writing and visualizing on pen and paper helped.
Behavioral questions at the end.
- This round went well.

๐ŸŽฏ Result:
Few days after the interview, I was informed that my interview feedback is positive and I was offered the role.
This was in 2021 and that time I had an offer from Adobe as well.

It was a difficult decision to make but I decided to join Adobe because of the team and the tech stack.

Overall, I enjoyed the interview process and found the questions interesting to solve.

๐Ÿ“š Few tips for a successful Microsoft interview:
- At Microsoft, the interview process might differ slightly from one team to other.ย 
- In general, you can expect 3-4 coding rounds and 1 system design round for senior roles. I didn't have a separate System Design round.
- Most of the problems I encountered were of medium difficulty.
- Communicate your thought process clearly during the interview.
- Prepare behavioral questions and be ready to answer questions related to your past experience and technologies you have worked with.

PS: I recently visited Microsoftโ€™s Headquarter in Redmond, Washington :)
Post image by Ashish Pratap Singh
4 GitHub repositories to help you prepare for 4 different types of Software Engineering interviews:

1. ๐’๐ฒ๐ฌ๐ญ๐ž๐ฆ ๐ƒ๐ž๐ฌ๐ข๐ ๐ง ๐ˆ๐ง๐ญ๐ž๐ซ๐ฏ๐ข๐ž๐ฐ๐ฌ: https://lnkd.in/gEVpTZKH

2. ๐‹๐จ๐ฐ ๐‹๐ž๐ฏ๐ž๐ฅ ๐ƒ๐ž๐ฌ๐ข๐ ๐ง ๐ˆ๐ง๐ญ๐ž๐ซ๐ฏ๐ข๐ž๐ฐ๐ฌ: https://lnkd.in/gb-r9vha

3. ๐‚๐จ๐๐ข๐ง๐  ๐ˆ๐ง๐ญ๐ž๐ซ๐ฏ๐ข๐ž๐ฐ๐ฌ: https://lnkd.in/g4x48ee9

4. ๐๐ž๐ก๐š๐ฏ๐ข๐จ๐ซ๐š๐ฅ ๐ˆ๐ง๐ญ๐ž๐ซ๐ฏ๐ข๐ž๐ฐ๐ฌ: https://lnkd.in/gJTs2Xsb

โ™ป๏ธ Repost to help others in your network.

Join 12,800+ readers of my free newsletter to master coding and system design interviews: https://lnkd.in/gmePGK_J
You become better at coding by writing more code.

Not by watching videos.
Not by reading articles.
Not by buying textbooks.

But by writing more code.

Itโ€™s not easy.
Itโ€™s going to be frustrating at times.
And most importantly, itโ€™s going to take time.

But like anything else, the more you do it the better you get.

So, open up your favorite editor and start coding away.
I have interviewed with Amazon, Google and Microsoft multiple times.

Here are the topics they asked me in the coding round (in the order of frequency):

1. HashMaps
2. Arrays
3. Binary Trees
4. Linked List
5. Sorting
6. Stacks
7. Recursion / DFS
8. Queues
9. Priority Queues
10. Binary Search Trees
11. Matrix
12. Strings
13. Binary Search
14. Tries
15. Dynamic Programming

I wasn't asked questions outside these topics.

But, it doesnโ€™t mean you shouldnโ€™t study other topics.

Your interviews will be different than mine, but I hope this gives you some idea on what to prioritize and where to focus your time and attention specially if you are targeting these companies.

Advanced data structures and algorithms are rarely asked so donโ€™t spend too much time learning them.
It took me 3 years to learn these 30 System Design interview lessons.

You can learn them in 3 minutes:

1. Clarify both functional and non-functional requirements before designing.
2. Assume everything can and will fail. Make it fault tolerant.
3. Don't add functionality until it's necessary. Avoid over-engineering.
4. There is no perfect solution. Itโ€™s all about tradeoffs.
5. Prefer horizontal scaling over vertical scaling for scalability.
6. Use load balancers to distribute traffic and ensure high availability.
7. Consider using SQL databases for structured data and ACID transactions.
8. Opt for NoSQL databases when dealing with unstructured data.
9. Use database sharding to scale SQL databases horizontally.
10. Use database indexing to optimize read queries.
11. Use rate limiting to prevent system overload and DOS attacks.
12. Use websockets for real-time communication.
13. Employ heartbeats / health checks for failure detection.
14. Consider using a message queue for asynchronous communication.
15. Implement data partitioning and sharding for large datasets.
16. Consider denormalizing databases for read-heavy workloads.
17. Consider using event-driven architecture for decoupled systems.
18. Use CDNs to reduce latency for a global user base.
19. Use write-through cache for write-heavy applications.
20. Use read-through cache for read-heavy applications.
21. Use blob storage to store media files like files, images, videos etc..
22. Implement data replication and redundancy to avoid single point of failures.
23. Implement autoscaling to handle traffic spikes smoothly.
24. Use asynchronous processing to run non-urgent/background tasks.
25. Make operations idempotent where possible to simplify retry logic and error handling.
26. Prefer microservices architecture over monoliths for scalability, modularity, and maintainability.
27. Consider using an API gateway when you have multiple microservices.
28. Use the circuit breaker pattern to prevent cascading failures
29. Design clear and consistent APIs and incorporate security.
30. Consider using a data lake or data warehouse for analytics and reporting.

---

โ™ป๏ธ Repost to help your network.

๐Ÿ‘‰ Subscribe to my newsletter and get a FREE System Design Interview Handbook in your inbox: blog.algomaster.io
When you get a coding problem in an interview that you've solved before.
I created a FREE resource to help you master Low Level Design (LLD) Interviews.

It includes structured resources to help you study:
- Object-Oriented Programming (OOP)
- Design Principles
- Design Patterns
- UML Concepts
- LLD Interview Problems, categorized by difficulty

You can also:
- Filter & searchย through topics
- Track your progressย by marking topics as complete or starring them for revision
- Experience resources based on your preferred programming language. Supports Java, Python, C++, C#, and Go

Check it out here: https://lnkd.in/gMEYSbFw

Previously, I shared LLD learning resources in aย GitHub repository (awesome-low-level-design) with 12,000+ stars, which many found valuable.

However, it had limitationsโ€”no filtering, no language-based experience, and no progress tracking.

I've added it to AlgoMaster.io to solve these issues and provide aย better learning experience.

I plan toย add UML diagrams, design patterns and more real-world use cases for each problem to make itย the best resource for mastering LLD interviews.
Post image by Ashish Pratap Singh

Related Influencers