Skip to main content

BLOG / ALL

Coding and living in Finland.

Writing about engineering, life, and things I'm slowly figuring out.

40–52 of 192 articles

Mastering Intersection Observer for Lazy Loading
Tech
Jul 14, 2022

Mastering Intersection Observer for Lazy Loading

Stop listening to scroll—use Intersection Observer to efficiently handle lazy loading and viewport detection with clean, performant code.

Reads9.0kComments2
Read the full story
Force Docker to Use amd64 on Apple M1 Chips
Tech
Apr 14, 2022

Force Docker to Use amd64 on Apple M1 Chips

Learn how to force Docker to build amd64 images on Apple M1 chips to avoid compatibility issues on common cloud platforms.

Reads3.4kComments0
Read the full story
Aliyun FC Container Timeout on Macbook M1: A Platform Mismatch Story
Tech
Feb 14, 2022

Aliyun FC Container Timeout on Macbook M1: A Platform Mismatch Story

Running into timeout errors when deploying ARM-built Docker images to Aliyun FC? Here's a detailed story of debugging and fixing the platform mismatch.

Reads4.3kComments1
Read the full story
Why You Shouldn't Use Index as Key in React
Tech
Apr 15, 2021

Why You Shouldn't Use Index as Key in React

Using array index as a React key can lead to UI bugs and performance issues. Learn why it happens and what to do instead.

Reads6.3kComments0
Read the full story
Make Your GitHub Profile Stand Out
Tech
Apr 9, 2021

Make Your GitHub Profile Stand Out

Personalize your GitHub profile by creating a username-matching repo with a customized README. Here's how to get started!

Reads3.4kComments1
Read the full story
Understanding Python's __init__.py
Tech
Jan 21, 2021

Understanding Python's __init__.py

__init__.py files are more than just placeholders—they define packages, control imports, and can even initialize modules in Python projects.

Reads3.4kComments0
Read the full story
Understanding JavaScript Microtasks vs Macrotasks
Tech
Jan 14, 2021

Understanding JavaScript Microtasks vs Macrotasks

Master JavaScript's event loop with a deep dive into the execution order of async/await, Promises, and setTimeout.

Reads7.3kComments1
Read the full story
Set Up a Global .gitignore File
Tech
Jan 4, 2021

Set Up a Global .gitignore File

Keep your project .gitignore clean by configuring a global ignore file for system and editor-specific clutter.

Reads7.2kComments0
Read the full story
Build a Time Control UI with Canvas
Tech
Mar 22, 2020

Build a Time Control UI with Canvas

From high-DPI canvas scaling to hover/click interaction, this post explains how to implement a timeline UI using HTML5 Canvas.

Reads5.6kComments2
Read the full story
Visualizing the Pandemic with Maps
Tech
Feb 23, 2020

Visualizing the Pandemic with Maps

Behind the scenes of an interactive coronavirus map — from heatmaps to categorized visuals, a story of data visualization and design evolution.

Reads10kComments6
Read the full story
Building a Dot Map from Scratch
Tech
Aug 30, 2019

Building a Dot Map from Scratch

A full walkthrough on creating a custom dot map using QGIS, Canvas, and JavaScript — from data extraction to pixel rendering.

Reads13kComments4
Read the full story
How to Load Stunning Mapbox Maps in WeChat Mini Programs
Tech
Jun 6, 2019

How to Load Stunning Mapbox Maps in WeChat Mini Programs

Use web-view to embed Mapbox GL JS and unlock rich visual features like 3D, heatmaps, and clustering within your WeChat Mini Program.

Reads8.5kComments0
Read the full story
Greetings from the World
Life
Jan 22, 2019

Greetings from the World

An engineer’s story of building a postcard exchange platform—connecting strangers around the world through stories, creativity, and serendipitous messages.

Reads2.4kComments0
Read the full story

Coding, and living with intention.

Subscribe
© 2012–2026 Mofei·Privacy·Terms
Life compiled in code