Blog
Notes on code, products, and things I'm learning.
Why I Moved gookkis.com from Laravel to Astro
The reasoning behind migrating from a Laravel + database CMS to a lighter-to-maintain static Astro site.
Why I Like Working on Multiple Freelance Projects at Once
Why I keep more than one freelance project running at a time, and how I manage it without getting overwhelmed.
Being a Remote Software Engineer: What Years of Freelancing Taught Me
A few lessons on discipline, communication, and time management from remote freelance work.
Deploying Multiple Projects on One VPS: The Nginx Structure I Use
How I host multiple domains/projects on a single server using Nginx.
A Simple CI/CD Setup with GitHub Actions for a Static Site
The deploy workflow structure I use for this site — build, sync, done.
Choosing a VPS for a Side Project: What I Weigh
A few factors I check before deciding on a VPS for a side project.
Save Tokens, Save Time: Practical Tips for Coding Effectively with AI
A few practical lessons on communicating effectively with an AI coding assistant.
The AI Agent Coding Workflow I Use Now
How I integrate an AI coding agent into my everyday development process.
Agentic AI Experiment: Building dodolanan.com with Claude Code
The story of my experiment researching agentic AI workflows by building and shipping a real project.
Static Site vs Traditional CMS: When Should You Switch?
The considerations I used before deciding to migrate from a database-backed CMS to a static site.
PostgreSQL vs MySQL: When I Reach for Each
A practical comparison from experience using both across different projects.
React + Spring Boot: My Go-To Stack for Internal Applications
Why the combination of React on the frontend and Spring Boot on the backend is my reliable pick for internal web apps.
Astro Content Collections: Managing Content Without a Database
How Astro's content collections let a blog and portfolio run without a CMS or database at all.
Moving from Web to Android Development: What I Learned
A few mindset shifts I had to make when I first seriously got into Android development.
Why Privacy-First Matters for Personal Apps (Istiqomah Case Study)
The reasoning behind Istiqomah's 'no account, no server, no ads' design decisions.
Building Istiqomah: A Habit Tracker App with No Server and No Account
The story behind Istiqomah — a daily worship tracker that runs 100% on-device.
Swift vs Kotlin: A Comparison from a Developer Who Uses Both
After years working in Android and iOS, here's my honest comparison of Swift and Kotlin.
Python vs Go for Internal Backend Tools: My Experience
When I reach for Python, when I reach for Go, for internal tools and automation.
Learning from Scratch: Building a Remote Desktop Feature with Security in Mind
What I learned about encryption, authentication, and session handling while building a remote desktop feature.
Why Go Is a Good Fit for VPN and Remote Desktop Tools
Go's concurrency model and single-binary deployment make it a natural choice for networking tools.
Building a Cross-Platform Desktop App with Avalonia UI and C#
Why I moved from WPF to Avalonia for a desktop app that had to run on Windows, macOS, and Linux.