A Daily Worklog Changed Everything
A worklog is just a set of things you did grouped by the day. I have been doing this for the last 12 years, and it has been extremely helpful.
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.
A Daily Worklog Changed Everything
Maintain a Worklog! I cannot recommend this enough.
A worklog is just a set of things you did grouped by the day. I have been doing this for the last 12 years, and it has been extremely helpful.
By the way, this document is not just about tracking tasks; it will help you multi-fold. Let me elaborate.
Document key things that you have accomplished daily, not everything, but just the most important things you did. This keeps you structured and will be super helpful during standups as you'll always have a crisp, clear update, showing professionalism and accountability.
Worklog also makes your life simpler during review cycles as you won't scramble to remember what you accomplished; instead, you'll have a list of key contributions ready to be submitted for review and promo discussions.
As an extension, you can self-reflect and spot patterns in your work that keep you blocked or keep you busy with mundane work. You can now work on them and make yourself more efficient. (I am not doing this yet.)
I am sure now you see how this one simple document could be so useful across your career. This one simple habit compounds, making you more structured and self-aware, and helps you accelerate your career.
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 - Database Sharding and Partitioning
In the video, I discussed the importance of sharding and partitioning in scaling systems. Sharding distributes data across multiple machines for improved throughput and availability. We explored how databases evolve through stages, the differences between sharding and partitioning, and when to introduce these concepts.
Scaling databases vertically involves increasing resources, while horizontal scaling adds more servers for higher throughput. Sharding splits data across shards, while partitioning divides data within a shard.
Here's a paper I recently read
I spent some time reading Skip graphs
I find p2p networks fascinating and have already dissected a couple of papers. While skimming through a few papers to explore the topic further, I found a paper from Google talking about Skip Graphs.
Most DHT-based systems, like Chord or Pastry, are great for locating exact keys but completely fall apart when we need range queries. That's where skip graphs come in.
Skip graphs take our regular skip list, generalize it into a graph, and make it resilient enough to handle massive node failures. The data structure does not require a global view of the network - nodes just join, self-balance, and maintain efficient search paths.
The fault tolerance is insane. Even when 60% of the nodes fail, the largest connected component still holds up. Pretty neat. Search, insert, and delete operations all run in O(log n) time, keeping things scalable.
If you find distributed algorithms interesting. This is a must-read.
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.
Hi Arpit, can you post an example of how your worklog looks like?