The blog
Writing
Notes on software, useful tools, and things learned while building.
Terminal Setup for macOS: ZSH + Oh My Zsh
ZSH setup with syntax highlighting, autosuggestions, and fuzzy history search.

My Journey to AWS Certified Cloud Practitioner: A Perfect Score
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
A practical guide to modernizing AWS Lambda functions from callbacks to async/await in TypeScript, with code examples.

Fixing DnsNameResolverTimeoutException in Spring Boot
Resolving DnsNameResolverTimeoutException in Spring Boot WebFlux by switching from Netty's DNS resolver to DefaultAddressResolverGroup.

Automatically Mute iPhone At Work
Automate iPhone muting at work using Apple Shortcuts and Focus mode, with automatic volume restoration when leaving.

LeetCode Tree Visualizer
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
Migrating a Vite React app to Next.js with SSR while keeping Ant Design components using the App Router approach.

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

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

