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

Interview Series: Understanding Deadlocks and Tools for Detection and Prevention
go, golang, programming, interview Noah Parker go, golang, programming, interview Noah Parker

Interview Series: Understanding Deadlocks and Tools for Detection and Prevention

Concurrency is a core feature of Go, enabling programs to handle multiple tasks simultaneously. It's a powerful component of modern programming that can, when used correctly, lead to efficient and high-performance applications. However, concurrency also introduces the potential for certain types of bugs that are not present in sequential programming—one of the most notorious being deadlocks.

Read More
Interview Series: Understanding Goroutines in Go
go, golang, interview Noah Parker go, golang, interview Noah Parker

Interview Series: Understanding Goroutines in Go

When it comes to concurrent programming, the concept of 'threads' is often one of the first that comes to mind. However, if you've dipped your toes into the Go programming language, you may have come across a curious term: 'goroutine'. This unique approach to concurrency is one of the features that sets Go apart from other programming languages. But what exactly is a goroutine, and how does it differ from a thread in traditional threading models?

Read More
Understanding Streaming Data in Go
go, golang, data Noah Parker go, golang, data Noah Parker

Understanding Streaming Data in Go

In the age of real-time analytics and big data, the ability to stream data efficiently is crucial for any application. Streaming data refers to a continuous flow of data that is processed sequentially and incrementally. Go with its lightweight goroutines and channels, is an excellent choice for building high-performance streaming data applications.

Read More
Leveraging Telemetry in Distributed Systems
devops, telemetry, distributed systems Benjamin Parrish devops, telemetry, distributed systems Benjamin Parrish

Leveraging Telemetry in Distributed Systems

In the realm of today's complex computing infrastructures, distributed systems stand tall as a crucial component. From e-commerce platforms to streaming services, distributed systems power many of the digital experiences we take for granted. However, with the sophistication of distributed systems comes the challenge of monitoring, managing, and optimizing their performance. This is where telemetry, a practice rooted in aerospace and automotive industries, finds its application.

Read More
Understanding Empty Interfaces in Go
go, golang, programming Noah Parker go, golang, programming Noah Parker

Understanding Empty Interfaces in Go

In many programming languages, interfaces are used to define a contract that types must fulfill. Go, commonly known as Golang, is no different. One unique and powerful feature in Go’s type system is the empty interface. For those coming from dynamically-typed languages or even some statically-typed languages, this can be a curious concept.

Read More
Manual Memory Management Techniques using unsafe in Go
go, golang, memory, programming Noah Parker go, golang, memory, programming Noah Parker

Manual Memory Management Techniques using unsafe in Go

Go is renowned for its simple and elegant design, particularly when it comes to memory management. The built-in garbage collector alleviates much of the manual memory management burdens found in languages like C and C++. However, there are times when developers might want to engage in manual memory management to extract more performance or for specific use-cases. This is where the unsafe package comes into play.

Read More