Muyiwa Johnson
Product Engineer
Writing
Product systems, infrastructure, and engineering notes.
CSS infinity in calc()
CSS now has infinity, -infinity, and NaN inside math functions. How to use them for pills, stacking, open clamps, and a number-to-boolean trick, with working examples.
Hidden Allocations in Go Hot Paths
Why hot paths in Kubernetes, Prometheus, and Hugo prefer strings.Builder and strconv over += and fmt.Sprintf—with links to the actual code and PRs.
How to Add Telegram Bot Notifications to Your Web Application
A quick tutorial on integrating Telegram bot notifications into your web application. Learn how to create a bot, get your chat ID, and send notifications from your server-side code using the Telegram Bot API.
Cloudflare R2 with Next.js: Public File Storage (Part 1)
Part 1 of a series on using Cloudflare R2 with Next.js. Learn how to set up R2 buckets, configure custom domains, and implement public file upload, delete, and retrieval operations using the S3-compatible API.
How to Set Up and Configure Vite Proxy for Local Development
A comprehensive guide to setting up Vite's development proxy to solve CORS issues and connect your frontend to your backend during local development. Learn common configurations, troubleshooting tips, and best practices.
Choosing Your Canonical URL: A Strategic Framework
How canonical URLs solve the identity crisis of modern websites. A practical guide with real-world case study from studentFirst showing how duplicate URLs diluted SEO authority and how canonical tags fixed it.
Designing Location-Intelligent Property Search with PostGIS
How treating location as geography rather than text solved inconsistent property search results in Nigeria's real estate market. A case study on spatial indexing, constraints, and technical decision-making.
Day.js: My Favorite Date Handling Library
Why Day.js became my go-to date library after years of working with JavaScript dates. A practical guide covering everything you need for everyday date handling.
Inversion of Control
Learn how Inversion of Control (IoC) helps create lighter, more reusable components by letting components handle when, and letting you decide how.