Showing posts with label Technical. Show all posts
Showing posts with label Technical. Show all posts

Book Review - Designing Data Intensive Applications by Martin Kleppmann

 

A tech book that sparks joy !

I personally don’t think a mere review of this book can do it any kind of justice given the sheer breadth of the topics it covers along with the in-depth technical details.

This book is a treasure trove of information, exploring complex concepts like distributed data storage, distributed transactions, challenges in replication, partitioning, consistency, batch processing, stream processing, concurrency, stale reads, database internals, B-trees, LSTM (the best explanation I have found so far), concurrent writes and handling conflict resolution, RAFT, Paxos, Avro, Thrift and Protocol Buffers, Byzantine Generals Problem, maintaining order of events with network failures and clock skew, consistent prefix reads, Elasticsearch with document-partitioned indexes and the list is seemingly endless !!!

I do consider that it has a steep learning/understanding curve and I am not even going to pretend that I truly profess to have complete understanding of all chapters.

Having said that I am eagerly anticipating the next edition of the book coming in Dec 2025 by O’Reilly Media!!!

This book’s foundational knowledge has caused the launch of a few thousand blogs/YouTube channels that have dissected every chapter of the book in depth.

Its core strength is that it is has a technology-agnostic approach when explaining concepts.

Each chapter begins with a clear definition of the concept, then comes the unravelling of its complexities one by one, much like a suspenseful mystery which disassembles the plot.

By the end of the chapter, you grasp the nuanced details that underpin each sanguine definition. A superb handling of the topic in the hands of an expert.

Reading the papers listed at the end of each chapter would have made finishing this book nearly impossible. I’ll consider this strategy for the 2025 book.

I don’t know any other tech book that I have enjoyed as much. A highly rewarding read.

A thank you to the reading club from discord with whom I read the book.

Recommended Daily Interview Problem Newsletter

TLDR; Subscribe to the daily interview problem newsletter at Quastor Daily. It is a wonderful newsletter to help prepare for technical interviews.

This is not a paid recommendation !!! All opinions are my own.

I don’t know where I came across this newsletter first but I have not regretted signing up for it. In fact I have now removed most other algorithm subscriptions in favor of this one.

What’s in the newsletter ?

One gets an interview problem in the mail along with the solution to the previous day’s problem (In Python3). Curated Tech News is also a part of the mail.

So why do I like it ? Let me list the reasons -

1. No sign-in required to view the solutions.

Yes, yes this is not a deal breaker if the content is really good but I like that even this small (grain in the shoe type of friction?) hindrance is removed. All solutions are found at a public repl.it link. No logging in required!!

2. Explanation of the logic

A through explanation of the logic followed in the code solution is part of the mail. Some oft repeating tips are very helpful in understanding how to approach particular type of problems. Basic test cases are also part of the solution.

3. Not restricted to only coding questions

Map Reduce, Rate Limiting, ACID, Leader Election etc. — the questions are not restricted solely to coding.

4. Clean Design

I like that the design is clean and not cluttered. After the recent change in the order of items it is even better.

5. Tech Dives

Newly added — this really helps round one’s preparation as well as understand concepts in greater depth.

6. Almost a one-stop solution

Because the questions are not limited to coding, it is almost like a one-stop solution to prepare for a programming interview. I say almost because language specific idiosyncrasies are not covered ! I think it should remain as is in this aspect.

7. Misc

- I was not able to get my head around a dynamic programming solution (work in progress) but the author responded with relevant links towards understanding this. Other queries were also met with helpful suggestions.

- I really like the Tech News section. Did not know Cryptokitties were a thing !!

- There was a recent chance to have a mock interview with a google engineer.

- I feel the newsletter improves a little bit everyday. Hope it continues to do so !

It is said the power of your routine is built in your daily habits.

I am happy to have found this newsletter which has helped me make this a daily habit ! (almost! I do miss a few days).

Stuck somewhere ? Check out program visualization of code at this awesome website. Support for other languages is also present but I have not checked them out.

Have fun !

Github profile readme

Github profile readme is an excellent way to create a short (or over-engineered !) introduction about yourself. This will be displayed above your pinned items in your github profile.

There are a plethora of choices to personalize since the readme is a markdown file. Profiles are having spotify lists, games, gifs etc.

I wanted something clean, simple and self-updating.

I created a technical blog and ‘Today-I-learnt’ blog towards this endeavor. 

The exact code and how-to can be found at this link — 

https://vidyabhandary.github.io/blog/github/2020/07/27/Self-updating-profile-readme.html

And this is how Github profile looks now — https://github.com/vidyabhandary

Self-updating Github profile readme (completely within Github ecosystem)