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

Mastering the Singleton Pattern with Goroutines in Go

Mastering the Singleton Pattern with Goroutines in Go

In software development, design patterns provide proven solutions to common problems. One such pattern is the Singleton, which ensures a class has only one instance and provides a global point of access to it. When it comes to Go, implementing the Singleton pattern can be a bit tricky, especially when dealing with goroutines and concurrent programming.

Read More
Understanding the Go Concurrency Scheduler: A Deep Dive
go, golang, concurrency Noah Parker go, golang, concurrency Noah Parker

Understanding the Go Concurrency Scheduler: A Deep Dive

Concurrency is at the heart of many modern applications, especially those that require high throughput and efficiency. Go, a statically typed programming language developed by Google, has gained popularity for its simple and efficient approach to concurrency. Central to this approach is the Go concurrency scheduler, an intricate piece of the runtime that manages goroutines, Go's lightweight threads.

Read More
Understanding Variable Passing into Go Routines
go, golang, programming, concurrency Noah Parker go, golang, programming, concurrency Noah Parker

Understanding Variable Passing into Go Routines

Go is a statically typed, compiled programming language designed for simplicity and efficiency, with a particular emphasis on concurrent programming. One of the core features of Go's concurrency model is goroutines, which are functions capable of running concurrently with other functions. A common question among Go developers, especially those new to the language, is why and how to pass variables into a goroutine.

Read More
Using Go for Data Science: A Fresh Perspective
go, golang, data, data processing, data science Noah Parker go, golang, data, data processing, data science Noah Parker

Using Go for Data Science: A Fresh Perspective

In the ever-evolving landscape of data science, Python has long been the reigning champion, largely due to its simplicity and the vast array of libraries available. However, the tide is slowly turning, and other languages are making their mark in the data science realm. One such contender is Go. Go is gaining popularity for its efficiency, performance, and ease of use.

Read More
Mastering Concurrency in Go with errgroup: Simplifying Goroutine Management
go, golang, concurrency, error, example Noah Parker go, golang, concurrency, error, example Noah Parker

Mastering Concurrency in Go with errgroup: Simplifying Goroutine Management

Concurrency is a cornerstone of Go's design, granting it the power to handle multiple tasks simultaneously. However, managing concurrent operations can be complex, especially when dealing with errors and synchronization. Enter the errgroup package, a hidden gem in Go's ecosystem that simplifies handling goroutines, especially when they share a common error state.

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
Merge Sort Using Concurrency
go, golang, programming, concurrency, algorithm Noah Parker go, golang, programming, concurrency, algorithm Noah Parker

Merge Sort Using Concurrency

Concurrency can significantly enhance the performance of many algorithms, and merge sort is no exception. By parallelizing specific tasks, we can often gain faster results by harnessing the power of multiple processing units. This blog post will dive into the idea of improving the merge sort algorithm using concurrency and then illustrate it with an example written in Go.

Read More
Advanced Concurrency Patterns in Go
go, golang, concurrency Noah Parker go, golang, concurrency Noah Parker

Advanced Concurrency Patterns in Go

When developers start exploring Go (or "Golang"), they're often drawn to its simplicity and elegance, especially in handling concurrent programming. Thanks to goroutines and channels, Go makes concurrency a lot more manageable. But to truly tap into the power of Go's concurrency model, we need to dive deeper. This article will discuss advanced concurrency patterns like worker pools, fan-out/fan-in, and rate limiting.

Read More