
I Built a Break Reminder Because I Forgot How to Blink
The story of building AFK - a minimal macOS break reminder for developers who treat hydration as optional
Blog
Thoughts on distributed systems, backend engineering, and software development.

The story of building AFK - a minimal macOS break reminder for developers who treat hydration as optional

Fix the missing hcxdumptool and hcxpcapngtool issue in Kali Linux so Wifite can perform PMKID attacks.

How the Redlock algorithm solves distributed locking across multiple Redis instances, its safety guarantees, and Martin Kleppmann's critique.

A deep dive into the BitTorrent protocol — from .torrent files and tracker communication to peer handshakes and piece assembly.

Why unrealistic optimism is dangerous — through the lens of PV=nRT, mercury, and why the glass doesn't need to fly.

Weak isolation levels in databases can lead to anomalies like dirty reads, non-repeatable reads, and phantom reads. Understanding these anomalies can help you choose the right isolation level for your application.

Transactions group database operations into atomic units ensuring consistency and isolation. Safely handling errors and aborts requires deduplication, backoff, separating transient errors, and managing external side effects to avoid data loss or duplication.

Books that shaped my thinking as a software engineer — from system design to psychology and productivity.

Partitioning is the process of splitting a large database into smaller, more manageable parts called partitions.
.jpg)
Leaderless replication decentralizes data writes, allowing any replica to accept them. Examples include Amazon's Dynamo and open-source platforms like Riak and Cassandra. Mechanisms like read repair and anti-entropy ensure eventual consistency.

Quorums are the minimum number of votes required for the read or write to be valid. In distributed systems, quorums are used to ensure consistency and availability. This post explains how quorums are used in distributed systems.

Comprehensive lesson plan covering advanced concepts in Ruby on Rails for developing complex web applications.

This blog post explores how to implement a Least Recently Used (LRU) cache in Python, taking reference from the provided code.

Ruby functions support positional, default, keyword, and splat arguments with unique advantages and trade-offs for code flexibility and readability.

Essential resources for learning Ruby on Rails: 'The Well-Grounded Rubyist' book, Ruby style guide, YouTube video series for Rails and RSpec, and reading open-source Rails projects like Mastodon.

This article discusses the importance of naming conventions in Ruby and provides guidelines for consistent and readable code.
.jpg)
This blog explores multi-leader replication in distributed systems, highlighting its advantages and challenges. Approach with caution.

Step-by-step implementation of an OrderedHash class in Ruby that combines hash and list functionality while preserving insertion order.

"Handling Write Conflicts in Collaborative Editing" explores strategies and techniques for efficient conflict handling in distributed databases.

Exploring the differences between Ruby's dup and deep_dup methods for object copying.

This blog highlights the significance of unit testing in software development, emphasizing bug catching, code reliability, debugging, refactoring, and documentation.

10 powerful tips and tricks for Ruby on Rails development to optimize queries, leverage generators, employ caching, use background jobs, implement validations, and more.
.jpg)
This blog explains single leader replication, synchronous/asynchronous replication, setting up new followers, handling node outages, and ensuring read consistency in distributed systems.

Introduction to data warehousing, ETL process, star and snowflake schemas, column-oriented storage, compression, sort order, and trade-offs in writing to column-oriented storage.

This chapter discusses log-structured and page-oriented storage engines, their advantages, trade-offs, and considerations when choosing a storage engine.