Blog
Articles, guides, and notes on software engineering.
Difference Between Orphan Processes and Zombie Processes
Understand orphan and zombie processes in UNIX, process lifecycle, and system resource management implications.
Recent Posts
Creating a Slack Emoji Auto-Generation Bot with Golang, chromedp, and Slack
Build a Slack bot with Go and chromedp for automated emoji generation using canvas screenshots and Slack API integration.
Code Definition Jump Disabled After Enabling Go Language Server in VSCode
Fix VSCode Go language server issues with gopls by placing go.mod file correctly for code definition jumping.
Tools for Automatically Generating DB Documents (ER Diagrams, etc.) - schemaspy, tbls
Exploring and reviewing open-source tools for automatically generating DB documents.
Tool for Automatically Generating UML with PHP - phUML
Generate PHP class diagrams automatically using phUML to visualize design architecture and understand complex structures.
Introduction to Building Data Analysis Infrastructure
Introduction to Building Data Analysis Infrastructure
Production Deployment with VPS, Docker Compose, Docker Machine, Golang, Nginx, and Let's Encrypt
Deploy Golang applications with Docker Compose, Nginx reverse proxy, and Let's Encrypt SSL/TLS certificates on VPS.
Participated in ISUCON10
Learn performance optimization strategies for ISUCON competition including query tuning, MySQL upgrades, and database indexing techniques.
Algorithms and Data Structures - Bubble Sort
Learn Bubble Sort, a comparison-based sorting algorithm with O(n²) time complexity. Covers the adjacent-element swap logic and a complete Go implementation.
Algorithms and Data Structures - Heap Sort
Learn Heap Sort, which uses a binary heap tree to sort in O(n log n) time. Covers heap construction, root extraction, and a Go implementation.
Algorithm and Data Structures - Insertion Sort
Learn Insertion Sort, which divides the array into sorted and unsorted parts and builds the sorted sequence one element at a time. O(n²) time complexity with a Go implementation.
Algorithms and Data Structures - Merge Sort
Learn Merge Sort, a divide-and-conquer sorting algorithm with O(n log n) worst-case time complexity. Covers recursive splitting, merging steps, and a Go implementation.
Algorithms and Data Structures - Quick Sort
Understand Quick Sort: O(n log n) average, O(n²) worst-case time complexity. Covers pivot selection, partitioning into low/high ranges, and a randomized Go implementation.
Algorithms and Data Structures - Selection Sort
Understand Selection Sort, which repeatedly finds the minimum element and swaps it into position. Covers O(n²) time complexity and a Go implementation.
Created a URL Router called goblin in Golang
Implement a high-performance URL router in Go using trie trees with path parameters and regex pattern matching.
Algorithms and Data Structures - Binary Search Trees
Understand Binary Search Trees: O(log n) average search and insertion, DFS (preorder, inorder, postorder) and BFS traversal methods with a Go BST implementation.
Algorithms and Data Structures - Heap
Learn how min-heaps and max-heaps work as priority queue data structures. Covers O(log n) insertion and deletion with a Go heap implementation.
Reflection on 2019 and Goals for Next Year
Personal year-end reflection on 2019: key experiences, learnings as a software engineer, and resolutions heading into 2020.
Introduction to Custom URL Routing: Episode 2
Implement custom URL routing using trie and Patricia trees with path matching algorithms for HTTP routing.
Introduction to Building Your Own URL Routing - Episode 1
Learn URL routing fundamentals with tree data structures and trie algorithms for building custom application routers.