Coding interviews are getting harder every day. A few years back, brushing up on key data structures and going through 50–75 practice coding interview questions was more than enough prep for an interview. Today, everyone has access to massive sets of coding problems, and they’ve gotten more difficult as well. The overall interview process has gotten more competitive.
In this post, I’d like to share a strategy I follow to prepare for coding interviews. My software engineering career spans around 15 years, in which I’ve switched jobs five times. I’ve given around 30 interview loops containing 120+ interviews. I have…
While designing a scalable system, one of the most important aspects is defining how the data will be partitioned and replicated across servers.
Let’s first define partitioning and replication so that we are on the same page.
Data partitioning: It is the process of distributing data across a set of servers. It improves the scalability and performance of the system.
Data replication: It is the process of making multiple copies of data and storing them on different servers. It improves the availability and durability of the data across the system.
Data partition and replication strategies lie at the core of…
Binary search, as we all know, is the easiest difficult algorithm to get right.
It is also one of the smartest searching algorithms with a guaranteed running time of
O(logN) for an input array containing
N sorted elements.
In this post, I will share three smart modifications of the binary search algorithm that will help you solve dozens of coding problems. I will share a few of these problems in this post too.
Whenever we encounter a sorted
Matrix in a coding problem and we are asked to find a specific number, we all know that the…
Worked @ Facebook, Microsoft, Hulu, Formulatrix — Entrepreneur, Software Engineer, Writer.