Lumochift Blog

The latest updates from the Lumochift team.

Practical Go: Learn about return interface

Break down how return performance vs return instance object can affect performance
Read more →

April 16, 2023

Husky for Go: Guard your commit against the bad codes

Introduction using husky in golang development workflow
Read more →

April 14, 2023

Getting Started with Colima

Start using colima
Read more →

April 12, 2023

Colima - container runtimes on macOS (and Linux)

Introduction of colima as docker alternative
Read more →

April 11, 2023

Book Review: Working in Public: The Making and Maintenance of Open Source Software by Nadia Eghbal

Working in Public" is a book about open source software that explores the challenges and opportunities facing the industry, offering practical advice for supporting and improving the ecosystem.
Read more →

April 11, 2023

Stateless Server: The Benefits of Storing Data Outside of the Server

Running a stateless server means that all persistent data is stored outside of the server.
Read more →

April 10, 2023

Understanding Different Authentication Methods: Password, Session, Cookie, Token, JWT, SSO, and OAuth

Learn about authentication methods: password, session, cookie, token, JWT, SSO, OAuth.
Read more →

April 8, 2023

Building a Rule Engine for a Loyalty Program in Golang

Learn how to build a simple rule engine for a loyalty program in Golang using an interface to define the rules.
Read more →

April 8, 2023

The Power of People: Why Building Relationships is Crucial for Your Career

Build relationships with great people for career success.
Read more →

April 7, 2023

The Blank Identifier in Go: A Swiss Army Knife for the Discerning Developer

Explore how the blank identifier can be used in multiple assignment, unused imports and variables, import for side effect, and interface checks.
Read more →

April 6, 2023

Practical Go: Impact of Data Structure Position on Size of Struct

How the Placement of the Data Structure Impacts the Size of Struct
Read more →

April 5, 2023

Using Parquet with Go: A Beginner's Guide

This article provides an introduction to the Parquet columnar storage format and demonstrates how to read and write Parquet files in Go using the `` package. It also covers enabling compression in Parquet files.
Read more →

April 4, 2023

Puzzle: Solve a cryptarithm problem with Go

Learn how to solve mathematical puzzle that involves the arrangement of letters and digits
Read more →

April 3, 2023

Kubernetes Resource Requests and Limits

Understanding setting request and limit on kubernetes
Read more →

April 2, 2023

Why a Strong Work Ethic Matters in Hiring Engineers

Work ethic is key in hiring engineers, and interviews alone may not reveal it; other factors like past experiences, body of work, and references should be evaluated.
Read more →

March 31, 2023

An Introduction to Go Modules

"An intro to Go modules: benefits, usage, and gotchas."
Read more →

March 30, 2023

Installing ArgoCD on k3s

Step by step guide setup k3 and argocd
Read more →

March 30, 2023

Introduction Profiling http server in go

Show profiling information with chi router in go
Read more →

March 29, 2023

Practical Go: Using return pointer or not?

Details explanation when to use return pointer or not?
Read more →

March 28, 2023

How to check if a type satisfies an interface at runtime in Go

Learn different approach check type that satisfies the interface at runtime in Go
Read more →

March 26, 2023

XID: The GUID Alternative

Introduces XID, a library for generating unique IDs in Go that are shorter and more URL-friendly than GUIDs
Read more →

March 26, 2023

Auto Scaling

A Guide to Efficiently Handling Traffic Spikes
Read more →

March 25, 2023

Unit Testing in Golang

Everything You Need to Know about unit test in golang
Read more →

March 24, 2023

Contains duplicate Problem

Solve the problem using Rust
Read more →

March 23, 2023

Slice vs Array

Difference between slice and array
Read more →

March 22, 2023

Build Directed Graph

Implement simple directed graph using golang
Read more →

March 21, 2023

Sudoku checker

Learn how to check sudoku is valid or not
Read more →

March 20, 2023

Implementing a Priority Queue Using Heap in Go

A Complete Guide with Example to build priority queue using stdlib go
Read more →

March 19, 2023

Introduction of generic in Golang

Learn how to use generic in golang
Read more →

March 18, 2023

Understanding Stack and Heap Memory in Go

A Comprehensive Guide what the stack and heap are, how they work, and how they are used.
Read more →

March 17, 2023

Soft Skills for Software Engineers

Why Communication and Collaboration Matter
Read more →

March 16, 2023


Learn how snowflake works and implement it using golang
Read more →

March 15, 2023

Date conversion

Learn processing date with different format
Read more →

March 14, 2023


Learn the pros and cons of each type database
Read more →

March 13, 2023

Avoiding Common Pitfalls in System Design Interviews

Tips to avoid common pitfall when doing system design interview
Read more →

March 12, 2023

System design interview

Overview system design and how to overcame the interview
Read more →

March 11, 2023

Street Play in HackerLand

Counting all vowel substring contains `aiueo`
Read more →

March 10, 2023

Vowel Substring

Counting all vowel substring contains `aiueo`
Read more →

March 9, 2023

Staircase problem

Learn coding pattern dynamic programming with solving staircase problem
Read more →

March 8, 2023

Hard: Sherlock and valid string

Solution of hard problem in string category hackerrank
Read more →

March 7, 2023

Decimal benchmark

Compare decimal package in go with benchmark
Read more →

March 6, 2023

Hard: Array manipulation

Learn how to solve problem with prefix-sum
Read more →

March 5, 2023

Handling decimal values

Explore the possibility solution to handle decimal values properly
Read more →

March 4, 2023

Easy: Pair with Target Sum

Learn how to solve problem with two-pointer pattern
Read more →

March 3, 2023

Easy: Pair with Target Sum

Learn how to solve problem with two-pointer pattern
Read more →

March 3, 2023

Easy: Single Number

Learn how to solve problem with xor pattern
Read more →

March 2, 2023

House Robber Problem

Determine the maximum amount of money you can rob in one night without triggering an alarm.
Read more →

March 1, 2023

Rearrange Last N

Given a singly linked list of integers l and a non-negative integer n, move the last n list nodes to the beginning of the linked list.
Read more →

February 28, 2023

Shrink virtual disk on WSL

Virtual disk WSL cannot auto shrink, do it manually
Read more →

February 27, 2023

sqlc: An Introduction to SQL Compilation

sqlc generates fully type-safe idiomatic code from SQL.
Read more →

February 26, 2023

Book Review: Ikigai - The Japanese Secret to a Long and Happy Life

The Japanese Secret to a Long and Happy Life by Héctor García and Francesc Miralles
Read more →

February 25, 2023

Hello GRPC

Introduction implementation grpc with go
Read more →

February 23, 2023

Book Review: Atomic Habits by James Clear

The comprehensive guide to building effective habits that can help individuals achieve their goals and improve their lives.
Read more →

February 22, 2023

Behavioral Questions

Preparing for behavioral questions
Read more →

February 21, 2023

Book Review: The Effective Engineer by Edmond Lau

This book is a guide for software engineers on how to leverage their efforts to make a meaningful impact.
Read more →

February 20, 2023

Digit anagrams

Find a total pair anagram from the given array of numbers
Read more →

February 16, 2023

Find substring

This is an Uber interview question and the solution implements tries, a data structure that you’ll see a lot in interview questions
Read more →

February 15, 2023

Restore binary tree

Construct Tree from given Inorder and Preorder traversals
Read more →

February 14, 2023

Fibonacci with dynamic programming

Fibonacci from recursion to dynamic programming
Read more →

February 13, 2023

Semver sort

Sorting version follow semver format
Read more →

February 12, 2023

Context Cancellation With Cause

Passing cancellation cause with a non-nil error (the "cause") records that error in ctx
Read more →

February 10, 2023

Race Condition

Introducing data race and how to handle
Read more →

February 8, 2023

ACID Properties in DBMS

Deep down Atomicity, Consistency, Isolation, Durability
Read more →

February 7, 2023

N Queens

Place n queens safely on the board n x n
Read more →

February 6, 2023

Word Boggle

Boggle is a popular word game in which players attempt to find words in sequences of adjacent letters on a rectangular board.
Read more →

February 5, 2023


Find smallest element in kth position
Read more →

February 3, 2023

Single linked list palindrome

How to determine whether or not the single linked-list is a palindrome
Read more →

February 2, 2023

Check 2 strings are following patterns

How to solve the areFollowingPatterns problem
Read more →

January 31, 2023

Median of Two Sorted Arrays

How to solve the problem with different time complexity for median of two sorted arrays
Read more →

January 30, 2023

Check symmetric binary tree

Determine whether binary tree is symmetric around its center, i.e. each side mirrors the other.
Read more →

January 29, 2023

Custom JSON marshal/unmarshal

Create custom primitive data type and customize the function marshal/unmarshal json
Read more →

January 28, 2023

Rotate Matrix

Solving rotate matrix by 90 degrees
Read more →

January 27, 2023

Custom Tree Traversal

Travese binary tree that ordered from the leftmost to the rightmost one
Read more →

January 26, 2023

Calculating the Sum of Squares of Integers in Go

This is recruitment challenge with unique requirement, no for or goto allowed
Read more →

January 25, 2023

XSS - Cross Site Scripting Vulnerability

Everything from user need to be validated to prevent XSS attack
Read more →

January 24, 2023

Leetcode biweekly contest 96

Golang solution of biweekly contest 96
Read more →

January 23, 2023

Rate limiter in Go

Rate limiter basic implementation
Read more →

January 22, 2023

TOTP based on RFC 6238

Detail implementation time-based one-time password (TOTP) algorithm
Read more →

January 21, 2023

Practical Go: Functional Options Pattern

Implement functional options using functional approach
Read more →

January 20, 2023


Generate value in minesweeper map
Read more →

January 19, 2023

Artificial Neural Network

Math explanation about artifical neural network
Read more →

January 18, 2023

What company you must choose ?

How to choose the right company
Read more →

January 17, 2023

Palindrome Rearrange

Given a string, find out if its characters can be rearranged to form a palindrome.
Read more →

January 16, 2023

Iterate digit by given integer

How to get digit from integer
Read more →

January 15, 2023

Text normalization

Text normalization in go
Read more →

January 14, 2023

Become the software engineer

How to jump into software engineer role
Read more →

January 13, 2023

Reverse In Parentheses

Solve a problem to reverses characters in (possibly nested) parentheses in the input string.
Read more →

January 12, 2023

Palindrome string

How to check string is palindrome or not
Read more →

January 11, 2023

Buffered vs non buffered file IO using go

Benchmark file io using buffer versus without buffer
Read more →

January 10, 2023

Data Structure: Tree

Basic tree data structure
Read more →

January 9, 2023

Practical Go: Dockerize go apps

Prepare golang from source to docker
Read more →

January 8, 2023

Go S.O.L.I.D: The Single Responsibility Principle

The Single Responsibility Principle (SRP) is principle states that a class should have only one reason to change
Read more →

January 7, 2023

Coding Practice: Minimum Number of Arrows to Burst Balloons

Minimum Number of Arrows to Burst Balloons solution using go
Read more →

January 6, 2023

Coding Practice: Word Search

Word Search solution using go
Read more →

January 5, 2023

Docker vs Virtual Machine

Difference between docker vs Virtual Machine
Read more →

January 3, 2023

Definitions of Sync Problems

Introducing deadlock, livelock, and starvation
Read more →

January 2, 2023


Head to head comparation between http and https
Read more →

January 1, 2023

pg_stat_statements in action

Learn how to utilize pg_stat_statements
Read more →

April 4, 2022

Prefer precise string types

When you declare a variable of type string, you should ask whether a narrower type would appropiate
Read more →

April 2, 2022

Golang SQL Database

Dasar SQL database menggunakan golang
Read more →

September 10, 2020

Binary Operator Hack and Tricks

Binary Operator Hack and Tricks
Read more →

August 30, 2020

Membuat Benchmark di Golang

Bagaimana melihat performa kode menggunakan benchmark?
Read more →

September 2, 2018

Tips dan trik unit test di Go

Tips dan trik menggunakan unit test di GO
Read more →

February 1, 2018

Golang Test Coverage

Golang Test Coverage
Read more →

January 3, 2018

Golang Om Telolet Om Server

Menambahkan header x-telolet menggunakan golang
Read more →

January 3, 2018

Golang Unit Test

Bagaimana menggunakan Unit Test pada bahasa pemrograman go?
Read more →

January 2, 2018


Konsep struct dalam go dan bagaimana digunakan dalam pemrograman berorientasi object
Read more →

December 17, 2017


Pointer explanation in golang
Read more →

November 5, 2017

Computer Science for Humanities

Computer science is no more about computers...
Read more →

November 25, 2014

Am I Lost?

The story behind my adventure of code
Read more →

November 24, 2014

Konsep synchronous dan asynchronous

Antara aku, async, dan sync
Read more →

October 12, 2013