The best resource does not exist.

The best resource does not exist.

This edition of the newsletter contains two quick write-ups about

  • The best resource is mythical
  • Convergent Encryption

I have also shared 3 super-interesting articles I read this week along with a paper that I am reading 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 October cohort are open and only 43 seats are left. 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


The best resource is mythical

The best resource is mythical, it doesn't exist. To be honest, it does not matter who you are learning from and from where, be it YouTube, books, papers, or blogs. The only thing that matters is that you are learning consistently.

You could be learning from a big-name tech influencer or some unknown engineer who just happens to explain things in a way that clicks for you. Some might explain certain concepts better than others, while others might have more up-to-date information.

Instead of waiting for the perfect, start with what's available to you. Pick something that seems reasonably good. You can always supplement it with other sources. This allows you to have a high bias for action and start making progress immediately, rather than being stuck.

But remember, everybody makes mistakes. The resources you are referring to will have some mistakes. So, build a habit of understanding what you are learning and thinking critically. If you have even an iota of doubt, refer to other resources, get your doubts cleared, and resume.

In any case, you should always be ready to unlearn what you thought you knew and relearn the correct information. Stay flexible, adapt, and continue to become better every single day.

You can find this post on my LinkedIn and Twitter ; do leave a like.


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.


?? Video I posted this week

This week I posted Introduction to RPC - Remote Procedure Calls

What are RPCs and why do they even exist? Here is my detailed explainer video about Remote Procedure Calls, how and why they were conceptualized, where they fit in the architecture, and the steps you need to take to integrate them.


?? Paper I read this week

This week I spent reading SQL Has Problems. We Can Fix Them: Pipe Syntax In SQL

Google wasn't very happy with standard SQL, so they added a new pipe operator to make it more readable, extensible, and debuggable. The database community is in splits with this idea, but I liked it.

The pipe operator (|>) essentially breaks down complex queries into steps, making them easier to understand and maintain. This enables operations to be composed arbitrarily, in any order, simplifying complex queries and improving readability.

I have skimmed the paper once already and it is a really easy read. Going through it will make you realize the issues and inconveniences of SQL that we got used to. It was definitely a good weekend read :)

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


What is Convergent Encryption?

While I was trying to figure out which paper to read this weekend, I got the answer to one question I have had for ages - how do cloud storage providers detect and delete duplicate files even when they are encrypted?

The worst they could do is to decrypt and compare, but that would be a huge lapse in security. Digging deeper I found they use an encryption scheme called Convergent Encryption, also called content hash keying, which is both simple and elegant.

The core idea is to produce identical encrypted output from identical plain data; and this is achieved by deriving encryption keys from the content instead of using a separate, randomly generated key. So, the flow is

  1. apply a hash function to plain data and generate the hash value
  2. use this hash value to derive a specific encryption key deterministically
  3. encrypt the pain data with this encryption key
  4. keep the hash or the key secured with some party, if required

With this approach, the identical files will produce the same encryption key, resulting in identical encrypted data. Now that we can de-duplicate redundant copies, we can leverage this to make storage and transmission efficient, without compromising on security.

Given that the encryption key is derived from the data itself, so there is no need to have a central provider and maintainer of original encryption keys, making the entire design simple, scalable, and much more secure.

You can find this post on my LinkedIn and Twitter ; do leave a like.


?? Interesting articles I read this week

I read a few engineering blogs almost every single 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

  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 .

Souvik Dey

Principal SDET @ Druva | Python Automation Specialist | AI/ML

2 个月

One of the more information-dense newsletters out there! Thanks Arpit Bhayani ??

Bipson Mukhiya

Specializing in Cisco Networking

2 个月

yes sir , we are going to waste tons of hours just to find one and get tired.

Admissions for my System Design October cohort are open. If you are SDE-2, SDE-3, and above and looking to build a rock-solid intuition to design any and every system, check out arpitbhayani.me/course I keep the seats limited to ensure I can answer every single question and have detailed brainstorming around the systems we discuss. System Design for SDE-1s: https://arpitbhayani.me/sys-design System Design for SDE-2s and above: https://arpitbhayani.me/course Redis Internals: https://arpitbhayani.me/redis-internals

回复

要查看或添加评论,请登录

社区洞察

其他会员也浏览了