Curious About Technology

Welcome to Coding Explorations, your go-to blog for all things software engineering, DevOps, CI/CD, and technology! Whether you're an experienced developer, a curious beginner, or simply someone with a passion for the ever-evolving world of technology, this blog is your gateway to valuable insights, practical tips, and thought-provoking discussions.

Recent Posts

Using Twirp with Go: A Quick Guide
go, golang, rpc, communication Noah Parker go, golang, rpc, communication Noah Parker

Using Twirp with Go: A Quick Guide

Twirp, developed by Twitch, is a framework for service-to-service communication that leverages Protocol Buffers (Protobuf) for defining and implementing RPC (Remote Procedure Call) APIs. In this guide, we'll take a quick dive into how you can use Twirp with Go (often referred to as Golang) to build efficient and maintainable microservices.

Read More
Understanding Sidecars in Kubernetes Pods
kubernetes, container Benjamin Hughes kubernetes, container Benjamin Hughes

Understanding Sidecars in Kubernetes Pods

In the world of Kubernetes, containers have revolutionized how we think about applications and deployments. Pods, the smallest deployable units in Kubernetes, can contain one or more containers. More often than not, we have multiple containers inside a pod to help our main application container. These helper containers are commonly referred to as "sidecar" containers.

Read More
Understanding the "go build" Command
go, golang, build Noah Parker go, golang, build Noah Parker

Understanding the "go build" Command

The Go programming language is popular for its simplicity, performance, and strong support for concurrency. One of the many tools that make Go development a breeze is the go build command. In this post, we will delve into the go build command, its arguments, how it determines which files to include/exclude, and the concept of build tags and constraints.

Read More
Taming Errors in Go with Panic and Recover
go, golang, programming, recovery Noah Parker go, golang, programming, recovery Noah Parker

Taming Errors in Go with Panic and Recover

In the world of software, errors are inevitable. In Go (or Golang), handling errors gracefully is fundamental to building resilient applications. One unique aspect of error handling in Go is the use of panic and recover. Understanding these mechanisms will give you a deeper insight into Go's philosophy and provide you with tools to write more robust code.

Read More
Understanding Function Variables in Go
go, golang, programming Noah Parker go, golang, programming Noah Parker

Understanding Function Variables in Go

In many programming languages, functions are first-class citizens. This means that they can be passed around just like any other value. Go, also known as Golang, is no exception. In Go, we can assign a function to a variable, pass it as an argument, or even return it from another function. This provides immense power to developers, enabling patterns like callbacks, higher-order functions, and more.

Read More
Exploring Go Fiber: A Fast Express.js Inspired Web Framework
go, golang, web, api, server Noah Parker go, golang, web, api, server Noah Parker

Exploring Go Fiber: A Fast Express.js Inspired Web Framework

Go has steadily gained traction in the world of server-side programming, offering a compelling blend of performance, strong typing, and concurrency tools. As Go's ecosystem grows, we're witnessing the emergence of robust web frameworks designed to simplify the development of Go applications. Among these is Go Fiber - an Express.js inspired framework that promises speed and flexibility.

Read More
Fuzz Testing in Go: An Introduction with Examples
go, golang, fuzz, testing Noah Parker go, golang, fuzz, testing Noah Parker

Fuzz Testing in Go: An Introduction with Examples

Fuzz testing, often simply called "fuzzing", is an automated software testing method that provides random and unexpected input data to a program to find potential issues. These issues can include crashes, unintended behaviors, or vulnerabilities. In this post, we'll explore fuzz testing in the context of the Go programming language, diving into how it's done, and providing real-world examples.

Read More
Mastering Navigation in Bash with pushd and popd
bash, basics Benjamin Hughes bash, basics Benjamin Hughes

Mastering Navigation in Bash with pushd and popd

If you've been working in the Linux or Unix environment for a while, you're probably familiar with the cd command to change directories. However, there are two lesser-known but incredibly useful commands in Bash that can simplify and enhance your directory navigation: pushd and popd.

Read More
Go Testing with Fake HTTP Requests and Responses
go, golang, testing, mocks Benjamin Parrish go, golang, testing, mocks Benjamin Parrish

Go Testing with Fake HTTP Requests and Responses

Go provides a robust testing framework right out of the box. When working with web applications or services, a common challenge developers face is testing code that involves HTTP requests and responses without actually hitting the real endpoints. In this post, we'll dive deep into creating and using fake HTTP requests and responses for testing in Go.

Read More
Table-Driven Testing in Go
go, golang, testing Noah Parker go, golang, testing Noah Parker

Table-Driven Testing in Go

In the realm of software development, particularly in Go, testing plays a pivotal role. One of the most effective and popular testing paradigms in the Go community is "Table-Driven Testing". Let's delve into what it is, its benefits, and how to effectively employ it.

Read More
Dependency Injection in Go: A Primer
go, golang, patterns Noah Parker go, golang, patterns Noah Parker

Dependency Injection in Go: A Primer

Dependency Injection (DI) is a software design pattern that allows for decoupling components and layers in a system. By providing dependencies from the outside rather than hard-coding them within a component, we achieve better modularity, testability, and flexibility. Go, despite its simplicity, can be enhanced with DI patterns to build scalable and maintainable applications. In this blog post, we'll explore what Dependency Injection is, why it's useful, and how to implement it in Go with code examples.

Read More
Implementing the Singleton Pattern in Go
go, golang, patterns Noah Parker go, golang, patterns Noah Parker

Implementing the Singleton Pattern in Go

The Singleton pattern ensures that a particular class has only one instance throughout the runtime of an application and provides a global point of access to that instance. In the Go programming language, often referred to as "Golang", implementing the Singleton pattern is relatively straightforward, thanks to its inherent concurrency and package-oriented nature.

Read More