Lorbic

Learn slow and steady.

Bitmasking In Go

Bitmasking is one of those computer science tricks that feels like wizardry—until you realize it’s just some clever shifting and binary math. This blog explores the idea, shows how we use it in Go, and why it's surprisingly useful when working with databases like Couchbase.

How to Backup and Restore Docker Volumes

When working with Docker, persistent data is often stored in volumes. Unlike container filesystems, volumes survive restarts and recreations. But what if you need to move this data from one machine to another? Here's a quick and reliable way to back up a Docker volume on one computer and restore it on another.

Testing Types

Understanding different types of software testing is crucial for delivering a reliable application. Smoke Testing checks basic stability after a new build, while Sanity Testing verifies specific bug fixes or minor updates. Functional Testing ensures that features work as expected based on business requirements. Regression Testing prevents new changes from breaking existing functionality. End-to-End (E2E) Testing simulates real-world user workflows, and Performance Testing checks system speed, load handling capacity, and responsiveness. Implementing these (some or all) test types helps maintain software quality and prevent critical failures.

Tools I Use on My Mac

Tools I Use on My MacAs a new Mac user, it has been a tough journey getting used to limitations of macOS compare to linux based os. I rely on a set of carefully chosen tools to …

Understanding T and *T method receivers in Go

In Go, method receivers determine whether a method acts on a copy of a value or a reference to it. This choice isn’t just about performance—it affects correctness and behavior, especially when dealing with synchronization primitives (mutex, wait group, etc), slices, and embedded types.

Analysis Paralysis in Engineering Teams

In engineering, progress is key. However, sometimes teams get stuck in endless discussions, over-planning, and constant changes, delaying actual work. This situation is called “Analysis Paralysis.” It happens when people focus too much on making perfect decisions instead of moving forward with practical solutions.

Go Clean Code Guidelines

When it comes to writing clean, maintainable code, there are a few fundamental rules that can help improve the overall structure and quality of your codebase. As engineers, our goal should be to keep things simple, clear, and scalable. With this in mind, here are some guidelines which prioritize code readability, functional clarity, and the overall maintainability of a project. These guidelines are based on principles from clean code, SOLID, and functional programming while emphasizing simplicity over unnecessary complexity.

SOLID and Functional Programming Principles in Go

SOLID and functional programming principles explained and implemented in Go

10 Essential Tips for Beginners Starting in IT

In the ever-evolving world of IT, prioritize mastering core concepts over chasing trends. Embrace hands-on learning through projects, stay curious, seek guidance when needed, and remember that problem-solving and persistence are key to success in this dynamic field.

NGINX: Building from Source and Installation on Linux (Updated)

In this blog we are going to build NGINX from source code. And we will configure NGINX’s settings, paths, and add or remove modules.