golang
19 notes tagged golang in the Languages topic. Programming languages and runtimes we use: Go, Elixir, Rust and TypeScript.
- The Go bet worked, then we tried to double the team
A hindsight report on Dwarves' Go bet: headcount from 2015 to 2024, 43 start dates in four quarters, who stayed past a year, and the hiring rules we changed afterwards.…
- Package-first Go, part 1: packages and import paths
The package as the base unit of a Go service and the import path as its identity, the first two of five rules for structuring a Go service.
- Package-first Go, part 2: wrapping types and choosing error patterns
Extend a Go type by wrapping it instead of editing it, and pick one of eight error-handling patterns on purpose, with a rule of thumb and failure mode for each.
- Package-first Go, part 3: type safety with generics and a repo checklist
Use type parameters and constraints so the compiler rejects a wrong type, then run a nine-line checklist that covers all five package-first rules against your repo.
- Efficient union of finite automata in Golang: a practical approach
An in-depth guide on implementing the union of finite automata in Golang, focusing on practical efficiency and performance considerations.
- Why go?
An exploration of the reasons why Go is gaining traction as a preferred programming language for enterprise-level software development, including its simplicity,…
- A tour of Template method pattern with Golang
Template method: the problem, the concept, the solution, its use cases, implementations, pros & cons. The Template Method pattern in Go offers a powerful way to define…
- Gang of Four design patterns, notes on seven creational and behavioral patterns
Working notes on Singleton, Builder, Prototype, Strategy, State, Observer and Command, each with its problem, structure, examples, trade-offs and use cases.
- Leveraging Golang and WebRTC for high-performance video streaming
Explores using Golang and the Pion WebRTC library to build high-performance, scalable, low-latency video streaming infrastructure. Covers WebRTC basics (ICE, STUN,…
- Managing concurrent workloads in Go, part 1: worker pools and fan-out/fan-in
Two Go concurrency patterns for handling many tasks safely: the worker pool and fan-out/fan-in, each with a worked example.
- Managing concurrent workloads in Go, part 2: pipelines, semaphores and goroutine counts
The pipeline and semaphore patterns in Go, and how to choose the number of goroutines for a workload.
- Message queues and streaming platforms eg Kafka Nats Rabbitmq
An in-depth exploration of message brokers, their use cases, and implementation examples using RabbitMQ in Go. Covers the basics of message queues, their advantages and…
- Unit testing in Go, conventions and best practices
How to write unit tests in Go, from file and function naming to table-driven tests and mocking with gomock.
- Profiling in Go
Profiling in Go is a powerful tool that can help you identify and fix the subtle issues in your code quickly and efficiently. In this article, we'll explore the world of…
- Go JSON parser: number <-> interface
TLDR; be careful when using map[string]interface{} to hold json number value, use custom decoder with newDecoder.UseNumber() to decode the json string.
- Go in software engineering
An overview of Go's key features, including simplicity, concurrency support, and interface-driven OOP. Explores Go's strengths in cloud applications and utility…
- Go concurrency
A comprehensive guide to concurrency in Go, covering goroutines, channels, and the Go scheduler. This article explains the differences between concurrency and…
- Slice and array in Golang
An in-depth exploration of arrays and slices in Go, covering their differences, internal implementations, and key operations like append. Learn about fixed-length…