RSS Amplifier

Arpit’s Newsletter · Jun 1, 2025

When In Doubt, Code It Out

0
Sign in to vote or save

Arpit Bhayani · Arpit’s Newsletter

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 June cohort are open. 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

Prototypes are not only great for learning concepts better, but they are also great for doing highly reliable project estimations. Here's how ...

Prototyping is about building fast and low-quality stuff that is never meant to be shipped to production, nor is expected to follow any best practices. They are meant to gather the information, build an understanding, and then be thrown away.

Project estimations are hard, as we all are guilty of making random guesses while estimating efforts. Instead, it is better to build a quick prototype and make an informed decision. Prototypes help us answer some critical questions.

  • what will be a tentative task breakdown

  • how long each task would take

  • what are the unknown unknowns

  • which parts of the system are hard, and where the risks lie

  • more importantly, can this even work

Beyond technical feasibility, prototypes also help in gauging whether people even care about the solution. Sometimes, showing a quick demo is enough to validate interest or reveal disinterest before you go all-in.

It's often better to spend a few hours testing an idea than to invest weeks in something doomed from the start.

If you are learning new things every day, Prototyping is the easiest way to build a practical understanding, be it around system design, advanced algorithms, or even an idea that you find interesting. You often learn faster by doing than by just reading or planning.

Remember, it's okay to discard prototypes. Their value is in what they teach you, not in their longevity. Make prototyping a habit. Most prototypes don't take more than 200 lines. Treat them as experiments and not polished products.

So, when in doubt, code it out.

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.

I published a video - An Engineering Deep-dive Into Atlassian's Mega Outage of April 2022

Two years ago, Atlassian had a mega outage where they "permanently" deleted the data for 400 of their paying cloud customers, and it will take them weeks to recover it.

I did an engineering deep dive into this outage, trying to understand their engineering systems and practices, and spoke about 6 key insights into how their engineering systems are built, their backup and restoration strategies, and, more importantly, why it is taking them so long to recover the data.

I spent some time reading Indexing Dataspaces

One interesting problem Google faced when they were starting up was indexing all kinds of data and querying it efficiently.

Dealing with messy, unstructured, and structured data all at one go was a pain, especially when the data systems at that time assumed a well-defined schema. This is where Google built Dataspaces.

Dataspaces index data of all shapes and sizes and provide an efficient way to query them without forcing strict integration. Instead of maintaining separate indexes for structured and unstructured data, it extends the classic inverted lists with structural metadata - capturing attributes, associations, and schema hierarchies.

If you find data systems and databases interesting, I would highly recommend reading this paper; pretty interesting.

You can download this and other papers I recommend from my papershelf.

I read a few engineering blogs almost every day, and here are the three articles I 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

  1. System Design Course for Beginners

  2. System Design Course for SDE-2, SDE-3, and above

  3. Redis Internals Course

I keep sharing no-fluff stuff across my socials, so if you resonate, do give me a follow on Twitter, LinkedIn, YouTube, and GitHub.

No posts

Read the original on arpit.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.