How We Handle Mistakes Defines Us
Instead of sweeping failures under the rug, own them. When we try to hide our mistakes, we miss out on growth opportunities. Owning up to what went wrong is the first step toward becoming a better eng
This edition of the newsletter contains
I have also shared 3 super-interesting articles to read over the weekend. Thank you once again for reading this edition of my Newsletter. Now, without further ado, let’s jump right in.
By the way, the admissions for my System Design August cohort are open, and about ~21 seats are left. If you are an SDE-2, SDE-3, or above, and looking to build a rock-solid intuition for designing any and every system, you will find my course extremely interesting.
Instead of drawing boxes, we go into the intricate details of every single system and build an end-to-end understanding. The learnings from the course can be applied at your workplace from day 1. If you're looking for genuine engineering discussions or brainstorming, be sure to check out my course.
Course curriculum and other key details: https://arpitbhayani.me/course
How We Handle Mistakes Defines Us
Mistakes are inevitable, but growth is optional.
Instead of sweeping failures under the rug, own them. When we try to hide our mistakes, we miss out on growth opportunities. Owning up to what went wrong is the first step toward becoming a better engineer.
Every mistake has something to teach us, but only if we take the time to reflect honestly. Ask yourself
what went wrong?
what decisions or assumptions led to this outcome?
what could have been done differently?
A few things that could help - talking it through with teammates, mentors, or even writing it out in a journal can bring clarity and a fresh perspective. Sometimes, the simple act of explaining a failure to someone else makes the lesson stick.
These moments of reflection do hold the power to turn setbacks into building blocks for growth. But reflection alone isn't enough...
Growth happens when we act on those lessons. It is one thing to know what you should have done, but you improve when you change how you approach similar situations in the future. That's how you become not just a better engineer, but a better teammate and leader too.
We all make mistakes. It's inevitable. What matters most is how we choose to respond: own it, learn it, fix it.
By the way,
Being hands-on is the best way for you to learn. Practice interesting programming challenges like building your own BitTorrent client, Redis, DNS server, and even SQLite from scratch on CodeCrafters.
Sign up, and become a better engineer.
Here's a video from me
I published a video - Synchronous and Asynchronous Communication between Microservices
In this video, I discussed the importance of communication patterns in microservices and covered both Synchronous and Asynchronous communication. I did a deep dive into implementation nuances for both.
In the video, I also covered scalability issues that come with both, along with the advantages and disadvantages of each. More importantly, I explained the concepts while taking various examples from various domains and involving various tools. Give it a watch.
Here's a paper I recently read
I spent some time reading Google News Personalization: Scalable Online Collaborative Filtering
I stumbled upon a paper from Google, talking about Google News' personalization from the 2007 days :)
First of all, skimming the paper today shows how complex the systems have become today, and the approach mentioned in the paper seems like a college assignment (minus scale).
The paper covers how Google News leveraged collaborative filtering to do user-level (almost) personalization. By the way, this is a pretty common approach taken by most recommender systems today, across domains.
What I found more amusing is how scalable and real-time this system is designed to be; how every user click updates the system almost instantly because recommendations had to be generated in milliseconds; and how they built a system that could learn from user behavior.
Three things you will absolutely find interesting from the paper are
clustering at millions of users scale using MinHash + MapReduce,
how jobs are distributed job so you could actually train it on live data
how real-time updates are stored, processed, and served instantly.
If you are interested in recommender systems and do not know where to start, this paper is a great starting point.
You can download this and other papers I recommend from my papershelf.
Three interesting articles I read
I read a few engineering blogs almost every day, and here are the three articles I read and would recommend you read.
Thank you so much for reading this edition of the newsletter 🔮 If you found it interesting, you will also love my courses
I keep sharing no-fluff stuff across my socials, so if you resonate, do give me a follow on Twitter, LinkedIn, YouTube, and GitHub.



