Tell me about a time you failed…

One of the most difficult questions in a job interview is: “Tell me about your failure(s)?” If you try to squirm around the question, it will signal negativity at the same time you need to elaborate just the right level of failure. 

Overall there has to be a balance, so how can we prepare for it? Here are some tips.

Start with “we”, not “me”. 

Always start with “we” instead of “me”, since a team failing as a group might seem more relatable (and excusable) than an individual failing because there was consensus behind the decision-making.

Describe a low-consequence event, and keep it brief.

Make sure the incident chosen is a low consequence not catastrophic, and keep it short. Don’t linger on many details.

Don’t be defensive, be thoughtful about the words you use.

Use words like learned, gleaned, grew, and overcame. Avoid defensive or regretful language.

Choose a circumstance, not a mistake.

Don’t draw attention to your character. When did something external not go as planned? When was a strategy ineffective? When did an approach miss the target?

Lastly, Focus on learning.

What the interviewer ultimately wants (and they may even state this explicitly) is not so much your story of failure but what you learned from it and how you turned that insight into a productive approach.

System Design Interview Process…

System Design Interview Process:

1. Ask Questions to understand requirements:

  • Functional Requirements
  • Non-Functional Requirements

2. Handle Data 

  • What’s the size of the data right now?
  • At what rate is the data expected to grow over time?
  • How will the data be consumed by other subsystems or end users?
  • Is the data read-heavy or write-heavy?
  • Do we need strict consistency of data, or will eventual consistency work?
  • What’s the durability target of the data?
  • What privacy and regulatory requirements do we require for storing or transmitting user data?

3. Divide and Conquer – Discuss the components and trade-offs

  • Different components have different pros and cons. We’ll need to carefully weigh what works for us.
  • Different choices have different costs in terms of money and technical complexity. We need to efficiently utilize our resources.
  • Every design has its weaknesses. As designers, we should be aware of all of them, and we should have a follow-up plan to tackle them.

What not to do in an interview

Here are a few things that we should avoid doing in a system design interview:

1. Don’t write code in a system design interview.

2. Don’t start building without a plan.

3. Don’t work in silence.

4. Don’t describe numbers without reason. We have to frame it.

5. If we don’t know something, we don’t paper over it, and we don’t pretend to know it.

Reverse Conway’s Law…

You can deliberately structure your team the way you want your code to look like.

Geographically distributed teams will tend toward more modular distributed software. 

Most importantly – Development teams that include product users will produce software that clearly reflects their involvement making it more relevant to the users. Whereas teams that don’t bother will reflect that in the product with not much relevancy to the users.

Focus on quality as AI beats quantity…

With more tasks being automated today with advent of AI (GPT3), the value of quality is enhanced much more now.

AI or bot can do only limited quality work but can easily beat humans in quantity. Hence as an expert in your field you will be valued more because you bring quality. Your uniqueness, your experience will have more value, since no one can copy or generate it.

At the same time quantity will be culled out more and more because of its abundance. And for those who go after quantity, beware of it, as it will hit roadblocks sooner or later and leave you stranded.

Best case will be, to have right mix of quality and quantity as you go along.

To increase productivity divide your tasks…

Every week jot down all the tasks you have completed over the week. And categorize them as:

1. Tasks that you hate doing and can hire others to do for you.

2. Tasks that you hate doing but cannot delegate to others.

3. Tasks that you like and want to do yourself.

Consolidate these over a period of 2-3 weeks for these task buckets:

  • Tasks in #1  –  Hire someone (Even if it’s a slow start), it will help in the long term.
  • Tasks in #2 –  Build a system where you can work on those tasks while multitasking like watching football matches, listening to music, watching shows, etc.
  • Tasks in #3 – Work with a focus on it and grow yourself, as this is your favorite list of tasks. Become an expert in these.

Race against time…

The value of time is much more critical than the value of money.

Money cannot buy time but time can always outrun money. 

Imagine what we can accomplish today with our knowledge, if we can do that 5 years ago, where we would be today? 

Instead of playing a catching game with time if we can value it now and envisage things in the future, that’s the real wisdom and value of time.

We always regret our past decisions; one of the main reasons for making the wrong decisions is at that moment we don’t value time, don’t value knowledge, and don’t value the effort to put into our decisions. Later we regret the same not even understanding that it is all on us since we couldn’t value the right time and see thru the future to make the right decisions.

So instead of racing against time, let’s value time, let’s value our current diligence to ensure we make the right decisions for our future.