// Field notes
Writing
Articles, postmortems, and notes on backend engineering, distributed systems, and platform work.
- ·41
ULID: the unique ID that sorts itself
Why random UUIDs wreck your database index, how a ULID's 48-bit timestamp + 80-bit randomness fixes it, and when to pick ULID over UUIDv4 and UUIDv7.
#ulid#uuid#databases#identifiers - ·167·Pinned
Distributed rate limiting at the edge with Cloudflare Durable Objects
Why the per-colo rate-limit binding leaked my API limits, and how one single-threaded Durable Object per key running a sliding window counter fixed it.
#Cloudflare#durable-objects#rate-limiting#edge - ·213·Pinned
Counting views at the edge for a dollar a month without a single cookie
A deep dive into the privacy-first view counter behind my portfolio: a Cloudflare Workers KV hot path, a D1 read model, two cron jobs, and a salted hash that forgets you at midnight.
#cloudflare-workers#Cloudflare KV#Cloudflare D1#analytics - ·122·Pinned
Postmortem: DocPipe v1 hung under load
A sanitised postmortem for the DocPipe v1 service hang — root cause, timeline, fix, and the soak test that prevents the failure mode from coming back. Google SRE Chapter 15 format.
#postmortem#docpipe#chromium#Go - ·57
Three bugs that hung my PDF service | DocPipe
My HTML-to-PDF service hung under load. The fix was three problems compounding — a zombie reaper, a chromedp lifetime gotcha, and a synchronously-fired event I was waiting for asynchronously.
#Go#chromedp#Docker#PDF - ·48
Beyond the Chat Window: How Claude Code Actually Persists Knowledge Between Sessions
Every Claude Code session starts blank. No memory, no continuity. Yet somehow it knows your stack, your conventions, your quirks. Here's exactly how that works.
#claude-code#ai-tools#developer-experience#productivity - ·56
EduQueue Deep Dive: OTP-Authenticated Operator Console & Append-Only Email Analytics
A platform-engineering deep dive into UIU EduQueue's operator surface — passwordless OTP login backed by Redis-TTL sessions, the append-only EmailEvent schema, on-demand analytics rollups, the campaign builder's draft → scheduled → sending → sent state machine, and the live "pause everything" toggle that runs over Redis pub/sub.
#Go#OTP#Passwordless Auth#Redis Sessions - ·47
EduQueue Deep Dive: The Asynq Worker Pool, ChromeDP PDF Pipeline & Live-Reload Settings
A platform-engineering deep dive into UIU EduQueue's async backbone — Asynq with a 10-permit global pool and a 2-permit ChromeDP semaphore, idempotent PDF generation, presigned R2 URLs, gocron-driven monitoring, and a Redis pub/sub settings service that live-reloads worker behavior without a redeploy.
#Go#Asynq#Redis#chromedp - ·72·Pinned
EduQueue Deep Dive: Multi-Provider Email Failover, Bounce Idempotency & Tracking Pixels
A platform-engineering deep dive into UIU EduQueue's email subsystem — the pluggable EmailProvider interface, per-provider sliding-window rate limiting in Redis, the AWS SES → Azure CS → custom Cloudflare Worker fallback chain, idempotent bounce-webhook handling, and the cache-defeating tracking pixel that survives Gmail's image proxy.
#Go#Email#AWS SES#Azure Communication Services - ·393·Pinned
From GitHub Actions to Self-Hosted CI/CD: My Woodpecker Migration Guide with Docker
A platform engineer's comprehensive guide to migrating from GitHub Actions to self-hosted Woodpecker CI with Docker Compose. Covers setup, pipeline configuration, security best practices, scaling strategies, and an honest cost comparison.
#CI/CD#Woodpecker CI#Docker#Self-Hosted - ·90·Pinned
Building a Privacy-First Media Sharing System: The Friniemy Architecture
In building Friniemy, a modern social media platform, one of our biggest challenges was creating a media sharing system that truly respects user privacy while maintaining excellent performance. This is the story of how we architected a solution using a dual-bucket storage strategy.
#Architecture#Privacy#Cloud Storage#Social media - ·141
Understanding IPFS: The InterPlanetary File System
The InterPlanetary File System (IPFS) is a groundbreaking protocol that redefines how we store and share files on the internet. It shifts from traditional centralized systems to a decentralized, peer-to-peer model. In this blog, we'll explore IPFS in depth.
#IPFS#Decentralization#Web3#Distributed Systems - ·97·Pinned
Architecting Distributed Real-Time Translation with WebSockets and Redis
In the world of global communication, real-time translation can be an indispensable feature. Whether you're building a chat app that connects users from different countries or an internal tool for multinational teams, a reliable and scalable architecture for instant translation is essential. In this post, I'll walk you through the architecture of a real-time translation chat application built using NestJS, Redis, and the Google Translate API.
#Real-time Translation#NestJS#Redis#WebSocket - ·142·Pinned
OpenChat's Architecture: Scaling Real-Time Chat with Go, Redis, and WebSockets
Discover how OpenChat scales real-time communication using Go, Redis, and WebSockets. From spam prevention to horizontal scaling, explore the architecture that powers this self-hosted, anonymous chat server.
#Go#Redis#WebSocket#Real-time - ·128·Pinned
Building an App in 5 hours | Experimenting with AI (claude.ai) Capabilities for Flutter
Discover how I leveraged AI (claude.ai) capabilities to build a real-time status update app in just 5 hours. Learn about the process, challenges, and insights into using AI for faster app development.
#Claude AI#AI#Appwrite#Flutter - ·43
dated - Simplifying DateTime Operations in Dart
The new Dart package 'dated' simplifies working with dates and times. It offers easy comparisons, 'time ago' calculations, and customization options for your projects. Check out the documentation and contribute on GitHub!
- ·113
GPG Signing git commits on macOS keeps asking for passphrase
This blog provides a solution for macOS users who encounter repetitive passphrase prompts when signing Git commits with GPG. By installing pinentry-mac via Homebrew and configuring GPG-agent to utilize it, users can seamlessly integrate passphrase management with the macOS keychain, streamlining the signing process.
- ·51·Pinned
IUT 11th National ICT Fest OpenAPI Hackathon Team DevSprint's Solution for the Preliminary Round
My team DevSprint has earned a place in the Preliminary Round of the IUT National ICT Fest OpenApi Hackathon, emerging from a pool of over 55 teams. Among them, only 10 were chosen to advance. We're excited to announce our invitation to the final round, taking place on April 26th and 27th. In this blog post, I'll be unveiling our solution for the preliminary round.
- ·66·Pinned
Working with JSON in Dart for Beginners
Learn the essentials of JSON manipulation in Dart using the dart:convert library parse JSON strings with jsonDecode, generate JSON strings with jsonEncode, and handle lists seamlessly. Mastering these fundamentals empowers efficient communication with APIs and data storage in Dart applications.
- ·48·Pinned
Dapr — Simplifying Distributed Application Development
Explore how Dapr streamlines the development of distributed applications through its sidecar architecture and rich set of building blocks. Learn how Dapr's platform-agnostic approach simplifies service orchestration across diverse cloud providers, empowering developers to focus on writing code while abstracting away the complexities of distributed systems.
- ·44
Securing Your Code with AWS CodeCommit | A Step-by-Step Guide
Learn how to set up AWS CodeCommit seamlessly with these step-by-step instructions, ensuring smooth integration and efficient collaboration for your development projects.
- ·36
Git And Github | A Comprehensive Guide
Git and GitHub are powerful tools for version control and collaborative software development. This comprehensive guide will walk you through the basics of using Git and GitHub, explain how they work together, and provide essential tips to enhance your workflow.
- ·124·Pinned
Setting Up Development Environment For Flutter A Step-by-step Guide
This blog provides a detailed guide on setting up a development environment for Flutter. From installing Git, GitHub CLI, OpenJDK, Flutter SDK, Visual Studio Code, and Android Studio, this comprehensive tutorial will help you set up all the necessary tools for Flutter development.
- ·37
A Step-by-step Guide | How To Use Unizim App
Unizim is an innovative app designed exclusively for UIU students, providing a seamless and efficient way to manage academic activities, collaborate with peers, and stay connected with the UIU community. In this step-by-step guide, we'll walk you through the process of using Unizim to make the most out of your educational journey. Let's get started!
- ·77
Build A Well-structured Flutter App With Mason Brick
Explore using Mason brick to structure Flutter projects—install Mason CLI, Flutter project, and A-project Mason bricks. Create a streamlined project with Riverpod, go_router, Google Fonts, and a custom theme. Dive into your next Flutter project effortlessly.
- ·43
How To Add Firebase To Your Flutter App?
In this lesson, we are going to learn how we can add Firebase to our flutter application. And we are going the follow the official documentation.
- ·60
Quick Setting Up Your Development Environment for Flutter
Flutter, a powerful and versatile framework for building cross-platform applications, requires a well-configured development environment to unleash its full potential. In this guide, we'll walk you through the step-by-step process of setting up your development environment for Flutter on both Windows and Linux machines.


















