Blog

Thoughts, tutorials, and insights from my development journey

6 min read

Storing Nested JSON Without Re-Serialization Costs Using RedisJSON

June 9, 2026

Store and update deeply nested JSON documents atomically in Redis without fetching and re-serializing the whole object. Learn JSON.SET, JSON.GET, JSON.NUMINCRBY, and JSONPath.

Read More
7 min read

Full-Text Search with RedisSearch

June 9, 2026

Add sub-millisecond full-text search to Redis without a separate search engine. Learn FT.CREATE, FT.SEARCH with fuzzy matching, tag filters, and FT.AGGREGATE using RedisSearch.

Read More
7 min read

Building a Social Network Timeline with Redis List Data Type

June 9, 2026

Build a Twitter-like feed using Redis Lists and the fan-out on write pattern. Learn LPUSH, LRANGE, and LTRIM to deliver pre-computed timelines with a single O(N) read.

Read More
7 min read

Data Analytics with Redis Time Series Data Type

June 9, 2026

Use RedisTimeSeries for metrics, IoT, and real-time analytics. Learn TS.CREATE, TS.ADD, TS.RANGE with aggregation, and automatic downsampling rules to keep storage lean.

Read More
6 min read

Finding Nearby Points with Redis Geospatial Index

June 9, 2026

Build store locators, ride-sharing, and proximity features with Redis. Learn GEOADD, GEODIST, and GEOSEARCH to find nearby locations in milliseconds across millions of points.

Read More
6 min read

Real-Time Messaging with Redis Pub-Sub

June 9, 2026

Broadcast real-time events with Redis PUBLISH and SUBSCRIBE. Learn channel and pattern subscriptions, cache invalidation broadcasts, and when to use Redis Streams instead.

Read More
6 min read

Approximate Cardinality of Large Sets Using Redis HyperLogLog

June 9, 2026

Count unique visitors, active users, and distinct events using only 12KB of memory. Learn PFADD, PFCOUNT, and PFMERGE to estimate cardinality with <1% error at any scale.

Read More
6 min read

Real-Time Leaderboard with Redis Sorted Sets

June 9, 2026

Build a globally-ranked leaderboard that updates in real time using Redis Sorted Sets. Learn ZADD, ZINCRBY, ZREVRANK, and ZREVRANGE to rank players in O(log N) time.

Read More
6 min read

Rate Limiting Web Server Requests with Redis

June 9, 2026

Protect your API from abuse with Redis-backed rate limiting middleware. Implement per-IP and per-user limits with proper HTTP 429 responses and X-RateLimit headers in Express and Flask.

Read More
6 min read

Redis Session Store for Fast Retrieval and Update of User Data

June 9, 2026

Replace sticky sessions with a shared Redis session store. Learn HSET, HGETALL, and sliding EXPIRE for fast, horizontally-scalable user session management.

Read More
7 min read

Redis Rate Limiting and Request Throttling for Load Smoothening

June 9, 2026

Smooth traffic spikes with Redis-backed rate limiting. Compare fixed window, sliding window, and token bucket algorithms — with Python implementations for each approach.

Read More
7 min read

Distributed Locking with Redis to Orchestrate Access for a Shared Resource

June 9, 2026

Coordinate access to shared resources across distributed services with Redis. Learn the SET NX EX pattern, atomic Lua release scripts, and the Redlock algorithm for multi-node safety.

Read More
7 min read

Redis as a Message Queue for Asynchronous Processing

June 9, 2026

Use Redis Lists and Streams as a lightweight message queue. Learn LPUSH, BRPOP, LMOVE for reliable queues, and XADD/XREADGROUP for durable, consumer-group-backed job processing.

Read More
7 min read

Redis Caching: How to Cache Database Queries and Web Page Responses

June 9, 2026

Speed up your application with Redis caching. Learn the cache-aside pattern, SETEX with TTL strategies, write-through caching, and cache invalidation techniques to eliminate slow queries.

Read More
5 min read

avgr.app: The Stock Average Calculator That Shows You the Real Math Before You Buy

April 27, 2026

Discover how avgr.app helps investors calculate their exact new average price, break-even point, and diminishing-returns curve before averaging down on stocks, ETFs, or crypto — free, no account needed.

Read More
14 min read

Chrome DevTools MCP vs agent-browser: Comprehensive Comparison Guide

March 13, 2026

In-depth comparison of Chrome DevTools MCP and agent-browser for AI-powered browser automation. Learn the key differences, installation guides, and which tool to choose for debugging vs production automation.

Read More
15 min read

TigerBeetle: High-Performance Financial Database for OLTP Workloads

March 10, 2026

Complete guide to TigerBeetle, a specialized financial database built for OLTP workloads. Learn about debit-credit accounting, performance optimization, safety guarantees, and real-world Elixir integration with payment processing examples.

Read More
8 min read

Detect Unused Public Functions in Elixir with This Simple Script

March 10, 2026

Learn how to identify and remove unused public functions in your Elixir codebase using a simple bash script. Improve code maintainability, reduce technical debt, and keep your project clean.

Read More
8 min read

Essential PostgreSQL Monitoring Extensions: pg_buffercache, pg_stat_statements, pgstattuple, pg_prewarm

January 30, 2026

Learn how to use PostgreSQL monitoring extensions pg_buffercache, pg_stat_statements, pgstattuple, and pg_prewarm to optimize database performance with practical examples.

Read More
15 min read

Oban as an Event Bus: Decoupled Communication in Elixir Umbrella Apps

January 5, 2026

Learn how to use Oban as an event bus for loose coupling in Elixir umbrella projects. Master async communication patterns, job queues, and event-driven architecture with practical examples.

Read More
10 min read

Dead Letter Queue Pattern with Broadway and RabbitMQ

December 15, 2025

Master the Dead Letter Queue pattern with Broadway and RabbitMQ. Learn retry strategies, exponential backoff, and failure isolation for resilient message processing in Elixir.

Read More
7 min read

expand_ex: Transform Your Elixir Code Organization with Automated Alias Expansion

December 15, 2025

Learn how expand_ex simplifies Elixir refactoring, Phoenix Context migrations, and improves code maintainability with automated module alias expansion. Essential tool for large-scale refactoring.

Read More
8 min read

Building a Hall of Fame Leaderboard: Three Approaches Compared

December 4, 2025

Compare three approaches to building a high-performance Hall of Fame leaderboard: Cachex distributed cache, PostgreSQL transactions, and Redis sorted sets. Learn pros, cons, and performance trade-offs.

Read More
10 min read

three.quarks Particle Behaviors: Complete Animation Reference

December 4, 2025

Master particle behaviors in three.quarks. Learn force & motion, visual properties, animations, and advanced techniques for creating dynamic WebGL effects like fire, smoke, and explosions.

Read More
8 min read

three.quarks Particle System Configuration Guide

December 4, 2025

Master WebGL particle effects with three.quarks. Learn how to configure emitter shapes, emission patterns, and create stunning visual effects like fire, explosions, and smoke.

Read More
7 min read

PostgreSQL Partitioning with pg_partman: Automate Partition Management

December 3, 2025

Master PostgreSQL partitioning with pg_partman. Learn how to automate time-based partition creation, implement retention policies, and optimize large table performance with practical examples.

Read More
6 min read

Understanding pg_repack: Eliminate PostgreSQL Table Bloat Without Downtime

December 3, 2025

Complete guide to pg_repack for PostgreSQL. Learn how to eliminate table and index bloat with minimal locking, understand the benefits over VACUUM FULL, and implement best practices.

Read More
7 min read

Mastering Parameter Validation in Elixir Phoenix Controllers

November 27, 2024

Complete guide to parameter validation in Elixir Phoenix controllers using Ecto.Changeset. Learn practical implementation patterns for building robust APIs.

Read More
9 min read

Building Mazex: Maze Generation with Elixir

November 25, 2024

Exploring seven maze generation algorithms in Elixir, from Binary Tree to Wilson's algorithm. Learn how different approaches create unique patterns and performance characteristics.

Read More

Get In Touch

Feel free to reach out for collaborations, opportunities, or just a friendly chat