235 Blog Posts To Learn About Go

cover
4 Aug 2026

Let's learn about Go via these 235 free blog posts. They are ordered by HackerNoon reader engagement data. Visit the Learn Repo or LearnRepo.com to find the most read blog posts about any technology.

Go is an open-source programming language developed by Google, known for its simplicity, efficiency, and strong support for concurrent programming. Go is increasingly popular for building scalable network services, microservices, and high-performance systems.

1. In-Memory Caching in Golang

How to implement in-memory cache in Golang App

2. ChatGPT Go Libraries: A Comparison With Examples

Comparison of ChatGPT API clients for Go language

3. Mastering Synchronization Primitives in Go

Golang's Goroutines make it easy to run code concurrently. We can simply add the keyword “go” in front of a function call to make it run in a separate routine, or asynchronously.

4. This 150-Line Go Script Is Actually a Full-On Load Balancer

This article will show you how to create a simple HTTP load balancer in Go, using only the standard library.

5. How To Create Golang REST API: Project Layout Configuration [Part 1]

During past couple of years I have worked on few projects written in GO. I noticed that the biggest challenge developers are facing is lack of constraints or standards when it comes to project layout. I'd like to share some findings and patterns that have worked best for me and my team. For better understanding I'll go through steps of creating a simple REST API.

6. GO Design Patterns: An Introduction to SOLID

Adopt SOLID design principles in GO for better code quality and easier software maintenance.

7. Some insights on Maps in Golang

Article is about maps internal structure, hashes and performance. How data is actually stored inside.

8. Go: Handling JSON in MySQL

9. PostgreSQL Transaction Isolation Levels with Go Examples

Illustration composed from MariaLetta/free-gophers-pack, original gopher by Renee French.

10. No-stress CUDA programming using Go and C

Programming CUDA using Go is a bit more complex than in other languages. Although there are some excellent packages, such as mumax, the documentation is poor, lacks examples and it’s difficult to use.

11. Understanding sync.Cond in Go: A Guide for Beginner's

Understanding sync.Cond in Go that is a synchronization primitive used for coordinating goroutines by allowing them to wait for a specific condition.

12. Generate Swagger Doc Files From Go Code Using Go-swagger

In this article, I will try to explain basic ideas on how to generate swagger docs using go-swagger package.

13. 6 Best Go Programming Books Ranked by Reviews

Learning Go and Black Hat Go are some of the best Go programming books based on their review scores.

14. Practice with Functional Programming in Go

Take a look at a functional programming paradigm in Go

15. A Comprehensive Guide for Using DuckDB With Go

A comprehensive guide how to use popular embedded OLAP database DuckDB with Go.

16. NATS JetStream — a New Way to Create Resilient Message Queue

Today, I'll walk you through how to use NATS JetStream with a Golang app.

17. Leveraging Multithreading To Read Large Files Faster In Go

The other day I was interviewing at one of the companies, and I was asked the following question, how can you count occurrences of a word in a 50gb file with 4gb of RAM. The trick is to not load the whole file into memory and keep processing each word as we keep on moving the pointer of the file. With this, we can easily process the whole file with a minimal amount of memory resources.

18. Comparing Optimistic and Pessimistic Locking With GO and PostgreSQL

Comparison between Optimistic and Pessimistic locking with Golang and PostgreSQL

19. Goroutines: How to Run Concurrency Code in Go

Try out concurrency in Go on a simple example. What are greenthreads and asynchronous preemtpion? Understanding channels by using worker-pool pattern.

20. GO Design Patterns: An Introduction to Builder

Streamlining Your Code: An Introduction to the Builder Pattern in Go

21. Introducing Bun: A Golang ORM

Bun is a SQL-first Golang ORM for PostgreSQL, MySQL/MariaDB, MSSQL, and SQLite. It supports migrations, fixtures, and performance monitoring.

22. How to Make Global Constant Maps and Slices in Go

For the most part, Go developers are pretty good about using constants for global configuration, rather than global variables. A problem arises however when we want a global constant slice or map. The go compiler doesn't allow these more complex types to be set as constant. Many developers, upon making this realization, decide to then use a dangerous global variable. In this article we will explore a better option.

23. Custom TraceID in Elastic APM

Elastic APM is extensively useful in monitoring the lifecycle of a HTTP request in a system especially in µservices architecture. Wide variety of web frameworks and databases are supported which is useful in tracking the request up to DB calls. The documentation is simple and concise which makes it easy to instrument the application.

This article aims to help or at least make it easy to trace the HTTP request lifecycle after instrumentation. Golang is used in this article for code snippets but the concept can be extended to other languages as well.

24. How to Detect and Delete Emojis in Golang

I encountered an issue when 10 million messages with emoji were written in the MySQL table with utf8 encoding.

25. Real Time Data Processing: Easily Processing 10 Million Messages With Golang, Kafka and MongoDB

How fast Golang can be for processing a high number of messages coming from a Kafka topic?

26. Golang Unsafe Type Conversions and Memory Access

Illustration composed from MariaLetta/free-gophers-pack, original gopher by Renee French.

27. How to Use Maps Safely in Go

Different ways to protect maps from concurrent access in Golang. Golang, concurrent programming, sync.Mutex, sync.RWMutex, sync.Map, channels

28. 'Hello, World!' in Golang - How to Develop a Simple Web App in Go

I'm going to show you how easy it is to develop a simple web application in Go, package it as a lightweight Docker image, and deploy it to Heroku.

29. How to Use Consul as a Host Resolver in gRPC

Recently, I faced with lack of documentation when I wanted to use Consul as a host resolver in gRPC connections. That’s why I wanted to write this story.

30. Go and sync.Pool

The garbage collector (GC) does not collect garbage constantly, but at certain intervals.

31. How to Encode a URL in Go

URL encoding in Go (Golang) is the process of converting a string into a URL-encoded format that is safe to include in a URL.

32. Concurrency in Golang And WorkerPool [Part 1]

Project Link: https://github.com/Joker666/goworkerpool

33. Unit Test AWS Lambda in Go

When I started working in Go and AWS Lambda, one of the difficulties that I faced was unit testing. I had a decent idea about what is unit testing and knew how to do it in Ruby but in Go, I had no idea because I was a beginner.

34. Validating Zero Enum Value in the Protocol Buffer

How to validate that an enum value field in Protobuf can not be empty? Turn out that is not supported directly by Protobuf!

35. Why Do Developers Love Working With Google's Go Programming Language?

With the extensive number of programming languages available out there, for any language to emerge among the best is no easy feat.

36. 5 Best Practices for Integrating with External APIs

the must-have practices if you use external APIs

37. Go and Protocol Buffers (Quick Tutorial)

How to use Protocol Buffers in Go using proto3.

38. Master the Art of Command Line: Your Ultimate Guide to Developing Powerful Tools

Command line tools are programs that can be executed from a terminal or command prompt, allowing users to interact with a computer system through typed commands

39. How to Remove Duplicates in Go Slices

Different ways to remove duplicates in slices in Go, a powerful language whose lack of tools makes learning this necessary if you want to make full use of it.

40. Understanding Mux and Handler by Writing Your Own RESTful Mux

In this article, we will try to understand two crucial Go concepts - mux and Handler.

41. Building a Media Streaming Server Using Go And HLS Protocol

In this tutorial, I'm going to walk you through building a streaming API using Golang. Don't worry, its surprisingly easy to build a robust streaming server, especially if we utilize one of the more modern protocols: HLS.

42. Golang ― More Error Handling with Less Checking

Error checks are essential but turn to noise without automatic propagation. Fixing Go's error-handling.

43. Golang: Using systemd for Zero Downtime Restarts and Deploys

By configuring a systemd socket, you can tell systemd to listen on the configured ports and start your service with a copy of the listening sockets.

44. How a Go Program Compiles down to Machine Code

Here at <a href="https://getstream.io" target="_blank">Stream</a>, we use Go extensively, and it has drastically improved our productivity. We have also found that by using Go, the speed is outstanding and since we started using it, we have implemented mission-critical portions of our stack, such as our in-house storage engine powered by gRPC, Raft, and RocksDB.

45. Concurrency in Golang And WorkerPool [Part 2]

Project Link: https://github.com/Joker666/goworkerpool

46. Generic Programming in Go

Generic Programming in Go using different methods: interfaces, typecasting, Generic Functions

47. Let’s Go tiny with tinyGo

Go was designed at Google in 2007, the evolution of this language is tremendous. Nowadays we are almost can create any kind of application using Go, from API, tooling, game, library, and so on. So how about the embedded system or today hot term as IoT, can we use Golang for this kind of application? The answer is yes, we can.

48. How to Connect a Python and Go App Using gRPC and Mutual TLS

This tutorial walks you through the process of connecting services written in Python and Go via the gRPC framework using mutual TLS authentication.

49. How To Generate A PDF Report From HTML with Go

HTML for PDF in Go for creating quality PDF reports with Table of Contents, Bookmarks and other important native PDF features.

50. How to Find and Fix Goroutine Leaks in Go

Learn how to identify and fix goroutine leaks in Go applications using techniques like monitoring, profiling, and tools like Prometheus and Grafana.

51. Security Considerations in Golang

Golang recently turned 10 and the success this language has created over the last 10 years is overwhelming. Today, many of the most popular DevOps tools are now written in Go. This proves that Go is a language that has a great future in the DevOps industry. It is meant for cloud network infrastructure practitioners - this was one of the primary goals of the Go creators. As a result, Every major cloud provider today has turned to Go for their core cloud infrastructure, to name some - Docker, Kubernetes, Istio, Etcd, Prometheus, and Terraform.

52. Billion-Dollar Mistake in Go?

The following sample code is from Go's standard library documentation:

53. Go's Cryptography Packages Were Audited: The Results

The audit produced a single low-severity finding, in the legacy and unsupported Go+BoringCrypto integration, and a handful of informational findings.

54. Is Go faster than Java? - The Wrong Question to Ask

This means to compare programming languages on what really matters, which in most cases, specifically in the enterprise world, is how efficient it is to develop

55. Modern Hashing With Go: A Guide

Let's break down everything you need to know about using hash functions in Go, with plenty of real-world examples you can start using today.

56. How To Create Golang REST API: Project Layout Configuration [Part 3]

Good cake is the one you can easily slice into parts with no crumbs falling apart. That's all this project is about: 3 simple parts, no nasty additives. In part 1 and part 2 I've explained the basics of setting up golang project using docker, creating configurable server, interacting with DB, adding routes and handlers.

57. How to Build a Bitcoin Telegram Bot

I created a simple Telegram bot that could retrieve Bitcoin's Price to convince my friends that Telegram is far superior to Whatsapp.

58. How to Use GoReleaser to Automate GoLang Build Releases

This is a quick start for GoReleaser to automate the building and publishing GoLang projects.

59. Kong Plugins as Microservices: Writing a Single-Plugin Server for Kong in Go

Many developers and DevOps engineers have been deploying Kong Gateway in front of their microservices-based applications.

60. Protobuf Under the Hood: How Serialization and Deserialization Work in Go

Protocol Buffers (Protobuf) is a fast, efficient, and language-agnostic data serialization mechanism.

61. Getting to Know gRPC

Need a quick beginner's guide to gRPC? What is it? How do you set up a client and server, and make an RPC call? All your answers are here!

62. How to Develop a Facebook Messenger Bot in Golang

A comprehensive guide on how to create a Facebook Messenger bot in Golang.

63. Optimizing Memory Usage in Golang: When is a Variable Allocated to the Heap

Optimize memory usage in Golang by understanding stack vs heap allocation, escape analysis, and improving performance with efficient memory management

64. Introduction to RDS Proxy: Exploring with Benchmarks in Go

A deep dive into the performance characteristics of RDS Proxy vs RDS

65. Pointer and Nil in Go: Reasons Why You Should Be wary

The harmful part of Go that you might not be aware of.

66. Understanding the Basic Concepts of Heap Data Structure in GoLang

We are trying to learn the basic concepts about heaps like inserting and extracting data from heaps and also the time complexity of heaps.

67. Understanding Concurrency Patterns in Go

Explore Go’s concurrency patterns, including worker pools, fan-out/fan-in, and pipelines, to build efficient, robust, and scalable applications.

Everything is moving extremely quickly in the software industry, so it requires a lot of effort just to keep up. This is exactly why we, at Coding Sans, publish the State of Software Development survey every year. To learn what is happening in the industry at the moment, and see how trends are forming over time.

69. 5 Programming Languages To Kickstart your Software Development Career

5 Programming Languages To Learn In 2022. Python is in the boom, mainly due to Data Science and Machine Learning.

70. Making a Simple Service App for a Yocto-Based Linux Distro

I decided to make the first steps in Yocto-oriented software development and make a rather simple service app for Yocto-based Linux distro.

71. Purity in My Programming: Functions in Go

Pure functions are often hyped up in the Javascript world, probably because of the abundance of state in front end applications. While pure functions have their downsides (i.e. inconvenience, potentially large argument lists), I believe they should be used as much as reasonably possible, and I want to focus on pure functions in Go.

72. Flight Recorder: A New Go Execution Tracer

Flight recording is now available in Go 1.25, and it’s a powerful new tool in the Go diagnostics toolbox.

73. Checking Palindrome With Generics in Go 1.18

Palindrome checking function in go that can receive integer or string. Utilize new generics feature in Go 1.18.

74. Interfaces in Go

What are Interfaces in Golang?

75. Golang: Declarative Validation Made Similar to Ruby on Rails

Using declarative validation in Golang, in a similar way to Active Record validations.

76. 2 Error-Free Options for Decimal handling in Golang

CockroachDB and using a popular database are two error-free options for decimal handling in Golang.

77. How to Create a Dynamic Pipeline Route in Go

Is it possible to create a pipeline with dynamic routes in Go? How to do it?

78. Serverless API with Terraform, GO and AWS, Part 1

Knowing how to build REST API with latest tech is cool. You know what's even cooler? It's being able to deploy it to the cloud! I'll walk you through the process of building simple, server-less application using GO, AWS (Lambda, API Gateway, Dynamodb) and Terraform.

79. Creating Production Grade Microservices with Go and gRPC

Microservices have emerged as a powerful architectural paradigm for developing complex, scalable, and maintainable software systems.

80. How to Track Email Effectiveness in Mixpanel Analytics w/Latenode.com

Learn how to seamlessly incorporate Mixpanel analytics into your email communication by integrating it with Mailgun using Latenode.com automation platform.

81. Mastering Go Channels for Elegant Synchronization

Channels in Go are a core part of the language's concurrency model, which is built around the principles of Communicating Sequential Processes.

82. Everything You Need To Know About Managing Go Processes

Explore techniques for managing blocking processes in Go, focusing on signal handling, process groups, & platform-specific considerations in linux environments.

83. Node.js vs Go vs SpringBoot: Performance Comparison for I/O Bound App

Find out how Node.js, Go, and SpringBoot performs for I/O bound app (URL shortener service).

84. A Step-by-step Guide for Building a Simple TODO App With Gin-gonic in Zerops

Learn how to build a sample CRUD TODO API written in GO using gin-gonic, one of the most popular web frameworks, which saves data to a PostgreSQL database

85. Managing Go Module Pseudo-Versions in Go 1.13

Go modules have helped bring order to Go development, but there’s been some disorder lurking. Managing module pseudo-versions can be difficult, especially with some of the latest changes to Go.

86. Passing and Returning Structured Datatypes to and From Go WebAssembly Module

We will write our guest application in Go, compile it to Wasm with TinyGo, and embed it with Wasmtime runtime into the host application, also written in Go.

87. Why Front End Developers Going Full Stack Should Choose Go

So you’re a front end developer, and you want to learn some backend stuff. You want to become a full stack developer someday, so where do you start? Google’s Go language is an excellent place.

88. Golang: a RESTful API Using Temporal Table With MariaDB

Temporal tables are a type of database table that store historical data, allowing users to query the data as it existed at specific points in time.

89. Bloom Filter Basics in Go

Learn about Bloom filters: memory-efficient data structures using hashing for fast set membership queries.

90. The 3 Important Lessons I Learned From Implementing Raft in Go

Implementing Raft was an overall great experience that added many practical tools under my belt and improved my proficiency with Go.

91. Native Fuzzing in Go 1.18

Go adds fuzzing as a part of its testing tools. This feature is planned for the 1.18 release and is already available for beta testing

92. fmt.Sprintf: Looks Simple But Will Burn A Hole in Your Pocket

Explore efficient string concatenation and conversion in Go using alternatives to fmt.Sprintf for better performance and lower memory usage.

93. Fixing Race Conditions in Go with Redis-Based Distributed Locks

Go's 'sync.Mutex' is a lock designed to lock critical sections of code.

94. How One ExpressJS Programmer Visited Go Land

I describe why Fiber it's really a good start for learn Go when you have experience in ExpressJS, what similarities and differences to expect, and what things I learned when building my first API on Go.

95. Pet Projects are Fun

I love pet projects, they are great excuse to use libraries and other technologies that you can’t use at work. Lately I’ve been working on a bigger pet project that needs to parse Go files, I’ve used ANTLR before to make this kind of things but unfortunately, ANTLR’s Go target has poor performance. So I began to search for alternatives written in pure Go and came across with this one, which took a different approach on creating parsers with Go, but before we’re going to understand how this library is different from others, let’s cover some basic concepts about parsing.

96. What Is so Great About Golang?

Check out why you should use golang for your next project

97. Choosing the Right Microservices Framework

Microservices architecture is a methodology that allows you to split a monolithic single application into small applications and services.

98. Spend Zero Time on DevOps with Render PaaS

Check out how efficient it is to create a new API using Go, and then deploy it to the Render PaaS, both for the first time with zero DevOps.

99. Filling And Flattening PDF Forms In Go With Examples

PDF forms are a convenient tool for gathering and storing information about your customers or users. This is a breakdown of how you can fill and flatten them.

100. What Heroku is Good For

You've probably heard about Heroku by now, but do you really know how Heroku works and when it should be a consideration?

101. Using the Events API to Build a Slack Bot

I’m a huge fan of automating working processes. I try to automate everything and save my coworkers time.

102. How to Embed Static Resources Into a Go Project

I wanted to create a small standalone web application in Go, the opposite of a regular web application

103. Building a Go Dependency Scanner From Scratch

Build a Go dependency scanner with the standard library: parse go.mod, query OSV for vulnerabilities, and analyze licenses.

104. A Guide to Familiarize Yourself With Workspaces in Go

Go 1.18 adds workspace mode to Go, which lets you work on multiple modules simultaneously.

105. The Noonification: How to Use React to Replace useEffect (12/31/2022)

12/31/2022: Top 5 stories on the Hackernoon homepage!

106. Go's New Experimental Packages: What to Know

This blog post is about Go 1.25’s new experimental encoding/json/v2 and encoding/json/jsontext packages, which bring long-awaited improvements and fixes.

107. Weird Things About GOLANG [Part 1]

On a first glance when I started working on go, for me it seems very very weird language. I am working on node-js for two and more years and then start working on golang is not so cool for me.

108. Implementing a Web Service With Go and Fiber

Let’s learn the basics of web development with the help of Go programming language and Fiber framework and write the most uncomplicated web service.

109. ES7-style Async/Await Implementation in Golang

In Golang, we use goroutines to execute asynchronous tasks while these goroutines communicate with each other via the data structure called Channel.

110. 3 Golang Pitfalls Every Developer Needs to Know

Over-viewing common coding pitfalls we've encountered when we started to use GoLang for production systems

111. Go 1.25 is released - The Go Programming Language

Go 1.25 comes with improvements over Go 1.24 across its tools, the runtime, compiler, linker, and the standard library

112. Go’s 16th Anniversary and the Major Highlights of 2025

The Go team is applying its thoughtful and uncompromising mindset to the problems and opportunities of this dynamic space.

113. Discover the Pros and Cons of the top Web Development Languages

Choosing the correct language for web development can be difficult.

114. What Is Go Protobuf? Exploring The New Opaque API

This blog post explains the motivation for creating a new API and shows you how to use it in your projects.

115. Does Golang Follow the Object Oriented Programming Paradigm?

Many are wondering whether Golang is a language that can apply the Object Oriented Programming paradigm. Let's discuss this here.

116. How To Prevent Server Overload In Go

An in-depth guide on server overload, rate limiting, load shedding, Golang, and resilience.

117. How to Deploy Go + Templ + HTMX + TailwindCSS to Production

In this article, I will be showing you how to deploy the GoTTH stack (Go Templ htmx tailwind) to production.

118. Publish Go Packages With Goreleaser

Goreleaser is awesome. It's a simple tool that allows you to release your go packages.

119. Daily Coding Problem: Remove the k-th Index From the Linked List in One Pass

Algorithm to remove an element from a linked list given its index in one pass only

120. Golang: A Short History of My Tech Journey

The journey of a thousand miles begins with a single step. That's how everything in our tech journey begins. We all got here with a single step, that slowly became multiple steps. Before we know it, we are a thousand miles in. When I first started my career, I was in helpdesk. Now, I’m a developer advocate. The way that happened was with thousands of steps.

121. Don't Procrastinate, GO Code!

This guide shows you how to write your first lines of GO code.

122. Go: The Testing/Synctest Package Explained

In Go 1.25, the testing/synctest package has graduated from experiment to general availability.

123. How to Force Slack to Make Your User Appear Online

How to get the green dot to turn on for slack users with a headless browser because their API just won't allow it.

124. What Are Generics? An Introduction for Beginners

Generics are a way of writing code that is independent of the specific types being used. Functions and types may now be written to use any of a set of types.

125. The All-Purpose Programmer: Episode 1 - "Hello World"

I love to learn, I love to code. I'm on a journey to learn (at least the basics of) several new languages to enhance my resume. Join me!

126. Prevent Errors From Growing With This New Framework

This is the story of how we started with a simple error handling approach, got thoroughly frustrated, and eventually built our own error framework.

127. gRPC Between Web and Server: A Simple gRPC Communication

A simple gRPC communication between a web browser and server with an Envoy proxy.

128. Go: When Should You Use Generics? When Shouldn't You?

I’ll provide general guidelines, not hard and fast rules. Use your own judgement. But if you aren’t sure, I recommend using the guidelines shown here.

129. Building a Type-Safe JSON Merge Pipeline in Go

A beginner-friendly walkthrough of a Go CLI tool that reads two JSON files, merges them, validates required fields, and writes the output based on my first real

130. Go 1.21: A Guide to Profile Guided Optimization

We will run through an example of using PGO to improve the performance of an application. Before we get to that, what exactly is “profile-guided optimization”?

131. testing.B.Loop: Some More Predictable Benchmarking for You

Go developers who have written benchmarks using the testing package might have encountered some of its various pitfalls.

132. Build a Go Web API with the New Digital Ocean App Platform: A How-To Guide

Recently, Digital Ocean announced they're entering the PaaS market with their new application platform. They've hosted virtual machines (droplets) and Kubernetes based services for years, but now they're creating a platform that's a simple point and click to get an application up and running.

133. Top 5 IDEs and Tools for Golang Development

Top 5 IDEs and Tools for Golang Development - here is the list of top Golang IDEs that are worth your attention.

134. Daily Coding Problem: Rotating Matrices

In this article we are building an algorithm to rotate a matrix by a certain degree, doing this with in-place and not-in-place algorithms

135. Some Things You Should Know About Maps in Go

Tips for working with go maps - deep copy and memory allocation.

136. Serverless API with Terraform: GO and AWS [Part 2]

In part 2, we'll go over deploying serverless API to AWS Cloud with Terraform.

137. Building a Multi-Language Monster Pipeline? Here’s the Smart Way to Do It

Instead of forcing every team or process to use the same tech stack, build a modular, interoperable pipeline where each function operates independently.

138. A Few Words on VS Code

Go has hard opinions about how you should style and format your code. The big upside of this is that you don't need to spend hours setting up tools like ESLint, Prettier, JSLint, etc. That said, in order to take advantage of the styling and listing tools available in the toolchain, you need a dev environment that makes them easy to use.

139. Understanding Concurrency in Golang with Goroutines: Latest Update in Version 1.23

Explore the power of Goroutines in Golang for concurrency management, including new enhancements in Golang 1.23 that optimize performance and memory usage.

140. What Is Type Inference? What It Is and How It Works

Here's everything you need to know about type inference, type pattern matching, type equations, and more.

141. Daily Coding Problem: Pascal’s Triangles and Space Complexity

Build Pascal's triangles with code, with different algorithms, analyze theirs speed and space complexity.

142. How to Find Unreachable Functions With Deadcode

Functions that are part of your project’s source code but can never be reached in any execution are called “dead code”

143. How to Build LLM-Powered Applications Using Go

This blog post works through an example of using Go for a simple LLM-powered application. It starts by describing the problem the demo application is solving

144. How Goroutines Behave on CPU-Bound vs I/O-Bound Tasks

Goroutines can supercharge Go apps—or slow them down. Learn when they help, when they hurt, and how to benchmark your workloads.

145. Go 1.22: Bringing Math/rand and Crypto/rand together

This post is about how Go 1.22 brings the two closer together, by using a cryptographic random number source in math/rand.

146. Go 1.21: An Inside Look at Forward Compatibility and Toolchain Management

Go 1.21 introduced toolchain management, so that different modules can use different Go toolchains just as they can use different versions of a required module.

147. Guide to Integrating With Non-AWS Cloud Storage Services Supporting the S3 Protocol using Golang

In this article we learn about S3 protocol, how to Integrate with Non-AWS Cloud Storage Service that supports S3 protocol, and a little bit about wrapper.

148. Go (Golang): Your Cheatsheet On Ways To Create New Maps And Slices

There are quite a few ways to create new maps and slices in Go. Which one is best? Or perhaps better asked, which one is best in your situation? Let's take a look.

149. Tracing Go’s Garbage Collection Journey: Reference Counting, Tri-Color, and Beyond

Garbage collection (GC) is one of the most critical components of any modern programming language runtime.

150. Creating Homebrew Formulas with GoReleaser

We chose to use GoReleaser with our distro of the OpenTelemetry Collector in order to simplify how we build and support many operating systems and architectures

151. Go 1.22: A Change in Loop Scoping

Go 1.21 includes a preview of a change to for loop scoping that we plan to ship in Go 1.22, removing one of the most common Go mistakes.

152. Training Neural Networks with Gorgonia

Deep learning and neural networks are very interesting subjects and Go language supports this technology using the framework Gorgonia.

153. How And When To Use Pointers in Go

Go has become increasingly popular in recent years, especially in my local area. It has been consistently displacing other backend languages like Ruby, Python, C# and Java. Go is wanted for its simplicity, explicitness, speed, and low memory consumption.

154. Pointer Pitfalls: A Simple Utility Function That Makes Pointers in Go Easier

Simpler way to deal with pointers in Go.

155. Backward Compatibility in Go: What to Know

This post is about the important work we shipped in Go 1.21 to keep Go boring.

156. New Feature in Go Makes it Easier to Iterate, Manipulate JSON Data

What if you could loop through your JSON data, grab the path of each item, and decide exactly what to do with it on the fly?

157. A Beginner's Guide to Code Coverage for Go Integration Tests

In this blog post we’ll give an example of how these new features work, and outline some of the use cases and workflow for collecting coverage profiles

158. Efficient Enterprise Data Solutions With Stream Processing

Enterprise data solutions—handling myriad data sources and massive data volume—are expensive. Stream processing reduces costs and brings real-time scalability.

159. Container-aware GOMAXPROCS: What it is and Why It's Important

In this post, we will dive into how Go schedules goroutines, how that scheduling interacts with container-level CPU controls, and how Go can perform better.

160. Daily Coding Problem: Computing Big Exponentials

Calculating high exponentials with a simple algorithm

161. How to Build a URL Shortener in Go: A Short Guide

In this article, I will be going through how to make a URL shortener in Go. The final result will look something like this shortr, source code.

162. Generic Alias Types: Why We Need Them

This post is about generic alias types, what they are, and why we need them.

163. Generic interfaces: When to Use Them

In this post, we’ll discuss the use of interfaces with type parameters in a couple of common scenarios.

164. A Tour of Slog: Everything You Need to Know About Structured Logging With Slog

By including structured logging in the standard library, we can provide a common framework that all the other structured logging packages can share.

165. Introduction to Numeral Systems in Go

numeral is a Go package. It gives you the ability to create custom (positional) numeral systems and perform operations on them.

166. Gopher Pythonista #1: Transitioning from Python to Go

The transition from one language to another doesn't need to be hard. Especially, when you are building backend apps in Python and you want to switch to Go.

167. Everything You Need to Know About Go 1.23

Go 1.23 comes with many improvements over Go 1.22. Some of the highlights include: language changes, tool improvements, and standard library improvements.

168. Here's How to Test Concurrent Code With Testing/Synctest: Go 1.24

This post will explain the motivation behind this experiment, demonstrate how to use the synctest package, and discuss its potential future.

169. The HackerNoon Newsletter: DevOps Isnt a Tool, Its a Chain Reaction (11/8/2025)

11/8/2025: Top 5 stories on the HackerNoon homepage!

170. How Order in iF Statement Impacts on Performance

Explore how optimizing condition order in code led to a 50% performance boost in Skaffold's latest update. Learn practical tips for improving code efficiency.

171. Go Context Timeouts and External Calls: Cook Them Properly

Optimizing external service calls in Go with context package: balancing timeouts and performance for efficient operations.

172. The Top 25 Golang Interview Questions That'll Make You Question Your Life Choices

Here's a list of 25 Golang interview questions that'll probably keep you up at night.

173. Get Certified by CIA for Exploring Archives — my Golang Solution for Web Archive Data Extraction

Get Certified by CIA for Exploring Archives — my Golang Solution for Web Archive Data Extraction

174. Walking You Through WASI Support in Go

Go 1.21 adds a new port targeting the WASI preview 1 syscall API through the new GOOS value wasip1. This port builds on the existing WebAssembly port

175. Everything You Have to Know About Go 1.24

Go 1.24 comes with many improvements over Go 1.23. Here are some of the notable changes; for the full list, refer to the release notes.

176. Hands-on IPLD Tutorial in Golang: Part 2

Quick recap from PART-1

177. Why I Switched to Table Driven Testing approach in Go

Table driven tests, also known as parameterized tests, have became very popular over the past few years due to their ability to eliminate repetition.

178. Go: Can It Mitigate Supply Chain Attacks?

It is an explicit security design goal of the Go toolchain that neither fetching nor building code will let that code execute, even if it is untrusted.

179. The 2022 State of Software Engineers Report

Hired released its 2022 State of Software Engineers, a report that analyzes key software engineering trends around demand, salaries, skills, and preferences.

180. Reproducible Go Toolchains: What You Need to Know

This post explains what goes into making builds reproducible, and then demonstrates one of the benefits of reproducibility by verifying the Ubuntu package

181. Should You Rust, or Should You Go?

Let’s talk about Go versus Rust in 2024, with our special guest, John Arundel.

182. A Quick Coding Lesson On Go's ‘WaitGroup’ (vs. JavaScript's ‘PromiseAll’)

In applications that are i/o heavy, it can get clunky to synchronously execute high-latency functions one after the other.

183. µjson — A minimal JSON parser and transformer in Go

µjson is a minimal JSON parser and transformer that works on unstructured (and trusted) JSON. It works by parsing input and calling the given callback function when encountering each item.

184. How I Built My First Go App and The Deployed it to Heroku

In this tutorial, we'll learn to build and deploy a Go web service to Heroku, showcasing the ease of use, speed, and power of Golang for modern web services.

185. How to Install Go on Linux - Tutorial

The Go programming language has become quite popular over the past few years. Why? The primary reason is that it has become the language of choice for distributed and highly scalable servers. Go was based on C and brings code efficiency to the table, which generates faster software and apps for businesses.

186. Go Interfaces – Stepping Beyond the Fundamentals

It's time to take a deeper dive into how interfaces work under the hood, common pitfalls, and advanced best practices.

187. What You Have to Know About Syntactic Support for Error Handling

One of the oldest and most persistent complaints about Go concerns the verbosity of error handling.

188. How To Create a Simple Application Using Golangspell

For a couple of years I've been working with Golang, is such a great experience, Golang is a great language, in my opinion, simple, fast, and focused on high performance. But, not only it can help us to create a microservice that is fast, but we can also code quite quickly.

189. Everything You Need to Know About All Comparable Types

In this blog post, we hope to shine some light on the language mechanics behind all comparable types.

190. Building CLI Tools with Go (Golang): A JSON File Formatter

191. The HackerNoon Newsletter: Gos New Experimental Packages: What to Know (12/20/2025)

12/20/2025: Top 5 stories on the HackerNoon homepage!

192. Go 1.21: Taking Your Go Apps to the Next Level

Discover Go 1.21's cutting-edge features: profile-guided optimization, min-max functions, clear function, loop variable enhancement, and more.

193. Overlapping Rectangles: A Daily Coding Problem

How to calculate the area size of two overlapping rectangles with an algorithm using go.

194. Go Concurrency Face-Off: Channels vs Mutexes

Demystify when to use channels and when to use mutexes, and why blindly following "Go concurrency patterns" can backfire.

195. Here's What You Need to Know About Go 1.22

Go 1.22 comes with several important new features and improvements. Here are some of the notable changes; for the full list, refer to the release notes.

196. Kickstarting Your GoLang Journey

Embark on a 100-day journey to master Go Lang, a modern programming language ideal for cloud computing, web development, and DevOps.

197. Here's What You Need to Know About Vulnerability Management for Go

Go provides tooling to analyze your codebase and surface known vulnerabilities. This tooling is backed by the Go vulnerability database

198. As the Go Ecosystem Continues to Grow, gopls Continues to Scale

Gopls provides language-agnostic editors with IDE-like features such as auto-completion, formatting, cross-references, and refactoring.

199. Implementing Red-Black Tree in Go — Part 2: The Delete Operation

We figured out how the search and insert operation works in the red-black tree in the first part. In this part, we figure out how the delete operation works.

200. Go Interfaces Are Just Like Magic

Discover how Go's implicit interface implementation simplifies code, reduces complexity, and promotes flexibility.

201. How Go 1.24 Enhances its WebAssembly Capabilities

Go 1.24 enhances its WebAssembly (Wasm) capabilities with the addition of the go:wasmexport directive and the ability to build a reactor for WebAssembly System

202. How to Organize Your Go Projects Like a Pro

Beginner’s guide to structuring Go projects with packages, internal folders, and imports — using a calculator project as an example.

203. The Noonification: Understanding sync.Cond in Go: A Guide for Beginners (4/29/2024)

4/29/2024: Top 5 stories on the HackerNoon homepage!

204. The Search Experience on pkg.go.dev: How It Works

Search results for packages in the same module are now grouped together. The most relevant package for the search request is highlighted.

205. Connecting Dots: Go, Docker and k8s [Part 2]

Nowadays, the successful application often consists of containers and some sort of container management system to ease scaling, reduce downtime, and more.

206. The Routing Enhancements for Go 1.22 That You Have to Know About

Go 1.22 brings two enhancements to the net/http package’s router: method matching and wildcards.

207. Boost Your API Development Skills: Implementing GraphQL in Go

GraphQL is a powerful tool for modern API development due to its flexibility, efficiency, and developer-friendly features.

208. Constants in Go Vs. Constants in Javascript

Constants can be confusing and easy to misuse in Go if you are coming from an untyped language. In this article we will learn what constants are, and when it is best to make use of them.

209. What You Have to Know About the New Features in Go 1.24: Cleanups and Weak Pointers

These new features are the runtime.AddCleanup function, which queues up a function to run when an object is no longer reachable, and the weak.Pointer type.

210. Happy 15th Birthday Go!

Go is going strong! Go’s user base has more than tripled in the past five years, making it one of the fastest growing languages.

211. The HackerNoon Newsletter: Flight Recorder: A New Go Execution Tracer (12/13/2025)

12/13/2025: Top 5 stories on the HackerNoon homepage!

212. Go Interfaces: Favoring Composition Over Inheritance (With a Dash of Common Sense)

Coming from a language like C# or JavaScript, interfaces in Go can feel like a cruel joke.

213. Using Go Defer and Rust Drop to Defer the Call to Rollback

Forgetting to close things off in Go can potentially come back to bite you. The most basic and straightforward method is to call rollback or commit.

214. Go Project Templates: How to Get Started

Anyone can write templates, which are packaged and distributed as modules, leveraging the Go module proxy and checksum database for better security

215. Generic Functions on Slices: A Guide to Help You Understand

In this blog post we’ll discuss how you can use these functions more effectively by understanding how slices are represented in memory

216. Breaking Down and Explaining Type Parameters

Since all Go types can be built up from component types, we can always use type parameters to deconstruct those types and constrain them as we like.

217. Go Execution Traces Have Become More Powerful

Thanks to work by Felix Geisendörfer and Nick Ripley on optimizing the efficiency of tracebacks, the run-time CPU overhead of execution traces has been cut

218. math/rand/v2: How It's Evolving the Go Standard Library

This blog post is about Go 1.22’s new math/rand/v2 package, the first “v2” in the standard library.

219. Telemetry in Go: How We've Improved It

Go 1.23 provides a new way for you to help improve the Go toolchain.

220. Go 1.23: The New, Unique Package That Comes With It

The standard library of Go 1.23 now includes the new unique package. The purpose behind this package is to enable the canonicalization of comparable values.

221. Webdevs Are Melting 🫠 Typescript Will Be 10x Faster Thanks To Go Language

There’s no other thing on earth that brings a smile to soon-cease-to-exist (apparently) developers as faster tools.

222. Go-CoNLLU Introduction: OSS Tool For Machine Learning Support in Go

Python is commonly seen as the AI/ML language, but is often a dull blade due to unsafe typing and being slow, like really slow. Many popular natural language processing toolkits only have Python APIs, and we want to see that change. At Nuvi, we use Go for the majority of our data processing tasks because we can write simple and fast code. Today we are open-sourcing a tool that has helped make our ML lives easier in Go. Say hello to go-conllu.

223. ZUSE Is What Happens When IRC Meets Go, Bubble Tea, and Lipgloss

ZUSE is an IRC client for your terminal crafted with the elegance and power of Go, Bubble Tea, and Lipgloss.

224. The HackerNoon Newsletter: How to Set Up Simhub With Gran Turismo 7 (4/27/2025)

4/27/2025: Top 5 stories on the HackerNoon homepage!

225. Let’s Have a Talk About Go Slices

Today we will discover Slices, one of the core data structures in Go.

226. Range Over Function Types: The New Feature in the Go 1.23 Release

Range over function types is a new language feature in the Go 1.23 release. This blog post will explain what exactly it is and how to use it.

227. I Made ezpkg.io: Simplify Your Go Projects with Reusable Packages

I created ezpkg.io to have all these utilities and packages in one place.

228. How to Get Faster Go Maps Using Swiss Tables

In this blog post, we’ll look at how Swiss Tables improve upon traditional hash tables

229. BitBanged Serial Peripheral Interface in Go on Raspberry Pi [Explained]

I’m going to focus mostly on some design decisions and also how I went about writing an SPI interface using Go on a Raspberry Pi. I assume my readers have a basic understanding of what a Raspberry Pi is, and how basic electronics work. If not, read on anyway and I will be sure to include some valuable resources below.

230. The HackerNoon Newsletter: Your Personality is a Lie (10/4/2025)

10/4/2025: Top 5 stories on the HackerNoon homepage!

231. This Lightweight Tool Flags Breaking Changes Before You Ship

Release Impact Analyzer for Go projects — catch breaking API changes, docs updates & important file diffs — fast.

232. The HackerNoon Newsletter: What The Heck is DeltaStream? (12/12/2024)

12/12/2024: Top 5 stories on the HackerNoon homepage!

233. Ritual Protocol Reimagines Secret Storage

What if your password couldn't be stolen — because it doesn't exist? Not hidden, not encrypted, not split between servers. Just... not there. Until you need it.

234. The HackerNoon Newsletter: My Experience With KCDC 2025: Is It Worth Going to? (8/23/2025)

8/23/2025: Top 5 stories on the HackerNoon homepage!

235. I Built A Handy Browser Plugin To Search Docs And Packages Directly From The Address Bar

Hi all. I'm so honored to introduce my product: Go Search Extension, a handy browser plugin to help every Go developer search docs and package in the address bar instantly.

Thank you for checking out the 235 most read blog posts about Go on HackerNoon.

Visit the /Learn Repo to find the most read blog posts about any technology.