logo image Faisal Rahman
ID EN
My profile picture taken in the summer

Faisal Rahman


Passionate learner of digital accessibility and web development. This is a space for sharing what I learn.

  1. We Must Care About Accessibility

    Delivering an inclusive digital experience is the right thing to do. Accessibility deserves to be a priority.

    • Archive
    • Tech
    • Accessibility (a11y)
    • Machine Translated

  2. Type Narrowing Techniques in TypeScript

    Type narrowing techniques can resolve the dilemma between type flexibility with union types and type certainty when processing them.

    • Archive
    • JavaScript
    • TypeScript
    • Machine Translated

  3. Two Approaches to Web Performance Measurement and Monitoring

    In monitoring performance, there are two approaches that can be adopted: synthetic monitoring and real user monitoring (RUM). The two complement each other.

    • Archive
    • Front End Architecture
    • Machine Translated

  4. Measuring Website Performance with Core Web Vitals

    Everything about Core Web Vitals, a guide to optimizing web performance and user experience (UX). A deep dive covering LCP, FID, and CLS.

    • Archive
    • Front End Architecture
    • Tech
    • Machine Translated

  5. Optional Chaining in JavaScript

    This time we will dive deeper into the Optional Chaining operator introduced in ES2020, covering the motivation, syntax, and use-case examples.

    • Archive
    • JavaScript
    • Tech
    • Machine Translated

  6. Working with Nullability in JavaScript: Objects and Question Mark Operators

    Nullish values require special attention when working with objects. ES2020 introduced optional chaining and nullish coalescing to handle this.

    • Archive
    • JavaScript
    • Machine Translated

  7. Working with Nullability in JavaScript: Variables and Functions

    Like many other programming languages, JavaScript has indicators of absence: null and undefined. What should we pay attention to about them?

    • Archive
    • JavaScript
    • Tech
    • Machine Translated

  8. Arrays Can Do That?

    Arrays in JavaScript are a fascinating thing. Arrays have many interesting and very useful prototype methods. What are they?

    • Archive
    • JavaScript
    • Machine Translated

  9. Serving Dark Mode Based on System Preferences

    Dark mode has become a modern interface trend. We can use the operating system's dark mode setting for our site using only a CSS media query.

    • Archive
    • CSS
    • Tech
    • Machine Translated

  10. Introduction to Unit Testing

    What is unit testing? What are the benefits of unit testing? What exactly is a unit? Let's discuss it here.

    • Archive
    • Tech
    • Machine Translated

  11. Level Up CSS with Sass

    If you're like me, you may find writing and managing CSS code to be exhausting work — not anymore with Sass!

    • Archive
    • CSS
    • Machine Translated

  12. A New Way to Iterate in ES6 with Iterables and Iterators

    ES6 introduced a new concept called protocols, with its first two being: Iterable and Iterator, which we can use to power up our iteration.

    • Archive
    • Tech
    • JavaScript
    • Machine Translated

  13. Web Fonts, and the FOIT and FOUT Phenomena

    With all their advantages, using web fonts requires careful attention. This is to prevent two web font-related phenomena: FOIT and FOUT. What are they? Find out here.

    • Archive
    • CSS
    • Front End Architecture
    • Machine Translated

  14. Quirks of the Number Type and toString in Javascript?

    When the number data type, weak typing, and primitive type coercion meet, they produce wonders. Wonders, in the sense of confusing phenomena.

    • Archive
    • JavaScript
    • Machine Translated

  15. Destructuring Assignment in JavaScript

    Learning about destructuring assignment in JavaScript, a feature introduced by ES6, which improves readability and shortens code.

    • Archive
    • JavaScript
    • Machine Translated

  16. Talking About Undefined, Null, Not Defined, and Undeclared

    In Javascript, there are several terms that sound superficially similar: undefined, null, not defined, and undeclared. See the differences here.

    • Archive
    • JavaScript
    • Machine Translated

  17. Understanding Git Diff Output Thoroughly

    After git commit, git pull and git push, git diff is the Git command I (probably) use most often. Running git diff before doing a git commit has become a routine I always follow, to make sure there are no mistakes before I record my changes in a commit.

    • Archive
    • Git
    • Machine Translated

  18. Notes from Geekcamp 2017

    Yesterday (Saturday, July 15) I had the opportunity to attend the Geekcamp 2017 conference at Senayan City. Geekcamp is a tech conference organized by...

    • Archive
    • Tech
    • Machine Translated

  19. Automation with Git Hooks

    Every task done repeatedly is a good candidate for automation. That includes working with Git — routines performed after running a Git command are perfect candidates for automation to boost our productivity.

    • Archive
    • Git
    • Machine Translated

  20. Metadata Elements in HTML

    Implementing metadata in your HTML document can improve semantic meaning, SEO ranking, and enrich your site. Learn how to do it here.

    • Archive
    • HTML
    • Machine Translated

  21. Updating a Ghost Installation in Docker

    Steps for updating your Ghost installation in Docker, which turns out to be more convenient than the standard installation method.

    • Archive
    • Tech
    • Machine Translated

  22. Installing Ghost in Docker on DigitalOcean

    Ghost can be installed more conveniently and modularly with Docker. Here we will create a Ghost-based blog on a DigitalOcean server.

    • Archive
    • Tech
    • Machine Translated

  23. Playing with Git Diff

    Generally, the git diff command is used to inspect changes we make when working on a Git repository. With the basic git diff command, Git will print all insertions and deletions we made...

    • Archive
    • Git
    • Machine Translated

  24. Lint Your Code!

    Back in the days of Unix V7, around 1979, a program called Lint was introduced and shipped with that operating system. Lint is a program that helps C language programmers analyze the code they write and points out parts of the code that might cause bugs in the program.

    • Archive
    • Tech
    • Git
    • Machine Translated

  25. IIFE-Based Modules

    > Good authors divide their books into chapters; good programmers divide their programs into modules. Linguistically, a module can be defined as a self-contained component of a system that supports the program of that system...

    • Archive
    • JavaScript
    • Machine Translated

  26. Immediately-Invoked Function Expression (IIFE) and Its Motivation

    The use of global variables in Javascript is strongly discouraged for many reasons [1]. Two of the main reasons are the difficulty of controlling access to resources available to the entire application...

    • Archive
    • JavaScript
    • Machine Translated

  27. Git Merge Disaster with the 'Ours' Strategy

    Some time ago, I experienced a disaster when trying to update the feature branch I was working on based on the master branch by running git merge master...

    • Archive
    • Git
    • Machine Translated