All posts
Terminal Setup for macOS: ZSH + Oh My Zsh
December 21, 2025
ZSH setup with syntax highlighting, autosuggestions, and fuzzy history search.

My Journey to AWS Certified Cloud Practitioner: A Perfect Score
March 28, 2025
My journey to achieving a perfect 1000/1000 score on the AWS Cloud Practitioner exam, with study resources and preparation tips.

From Callbacks to Async/Await in AWS Lambda
February 25, 2025
A practical guide to modernizing AWS Lambda functions from callbacks to async/await in TypeScript, with code examples.
DnsNameResolverTimeoutException in Spring Boot WebFlux
June 17, 2024
Resolving DnsNameResolverTimeoutException in Spring Boot WebFlux by switching from Netty's DNS resolver to DefaultAddressResolverGroup.
Automatically Mute iPhone At Work
May 30, 2024
Automate iPhone muting at work using Apple Shortcuts and Focus mode, with automatic volume restoration when leaving.

LeetCode Tree Visualizer
February 6, 2024
A custom tree visualizer that overcomes LeetCode's native limitations, supporting large trees, long node text, and diff visualization.

Migrating from Vite to Next.js While Retaining Ant Design
January 21, 2024
Migrating a Vite React app to Next.js with SSR while keeping Ant Design components using the App Router approach.

Notify After Command Finishes
December 17, 2023
A simple bash script to get notified when long-running terminal commands finish with a persistent macOS dialog box.

Safari Web Apps
October 15, 2023
Safari web apps on Mac let you turn websites like Fastmail and ChatGPT into standalone apps without third-party tools.
