This edition of the newsletter contains
one quick write-up that will help you grow faster in your career
a video I posted
a paper I read
one SWE Math Weekly Question
I have also shared 3 super-interesting articles 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 February cohort are open. So, if you are SDE-2, SDE-3, and above and looking to build a rock-solid intuition to design any and every system, you will find my course super interesting.
Instead of drawing boxes, we go into 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. So, if you are looking for some real engineering discussions, or brainstorming, do check out my course.
Course curriculum and other key details - https://arpitbhayani.me/course
Ramping up faster in your new job
When you join a new org or switch teams in the same, it is quite an unsettling and borderline anxious experience. Here are a few things that I did to ramp up faster.
I consciously made an effort to remain unblocked
I read a ton of code and its history, sometimes even unrelated
I asked questions about the past, the present, and the future
I took up relatively mundane tasks - cross-team work, tests, and docs
I extended a helping hand in whatever capacity I could
I proactively met skip-level leaders and managers to understand the vision
Some companies do have a culture of pairing up with someone existing in the team, but even if you do not get a mentor, it is important that you still navigate the situation and ramp up as quickly as you can.
The above list is not exhaustive, by any means, and hence you can always add things that you find helpful in your context. but the lowest common denominator is to show extreme intent and interest to get output and drive outcomes.
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 the video I posted
I published a video - Saved 55% cost, 75% CPU, at 33x speed - Why and how Jira moved from JSON to Protobuf
Jira moved from JSON to Protobuf; reduced their cache infra cost by 50% and reduced their CPU utilization by 75% 🤯
To understand this better, I dissected Atlassian's engineering blog, which discussed this migration. Apart from the amazing numbers, the blog also covered their plan to make this transition smooth.
This strategy can be used without modification to do any kind of no-impact migrations, such as from one API version to another, one service to another, or even one format to another. It is generic, simple, and effective.
Paper I read and would highly recommend
I spent some time reading Millions of tiny databases
This week, I’m reading a paper about Physalia which is Amazon’s distributed database designed for EBS to handle high availability, consistency, and fault tolerance at massive scale. yes, all the buzzwords :-)
The paper covers the details of understanding the core foundation challenges of building cloud-native storage where failures are expected but downtime isn’t acceptable.
I skimmed the paper once and here are three things that I found super interesting
Topology-aware data placement to reduce the blast radius of failures
Paxos with optimistic concurrency to optimize throughput and latency
Ways to keep client connections adaptive and resilient
Physalia’s design is centered on "millions of databases" rather than one monolithic system, with data placement and resilience built into each layer. Some of the pointers mentioned in the paper will really blow your mind and will give you a different perspective on looking at databases.
definitely a good weekend read, if you have time :)
You can download this and other papers I recommend from my papershelf.
SWE Math Weekly
SWE Math Weekly is where I post one CP-style math question every week. The problem won't just be random theoretical math exercises. It focuses on topics that are actually and commonly used in AI, ML, and other advanced domains.
If this sounds exciting, hop along, and solve the problems. It's going to be fun, I promise! This week's question is - Too Hot, Too Humid, Too Many People
Too Hot, Too Humid, Too Many People
Imagine, you're working on an AI-powered smart home temperature control system. You need to optimize the comfort of the room by adjusting - temperature, humidity, or occupancy.
Given the current room readings, write Python code to determine which variable should be adjusted first to maximize comfort improvement and whether it should be increased or decreased.
The problem is super interesting and highly practical. It involves one concept of maths that we all studied but never knew where to apply it. Once you get it, you will have an Aha moment! that will give you a kick for the entire week :)
You can find this and other questions on SWE Math Weekly
Three interesting articles I read
I read a few engineering blogs almost every day, and here are the three articles I would recommend you to 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.