Software engineer, author and open source contributor
Testing in Go
Suggest a topic
Make resilient Go net/http servers using timeouts, deadlines and context cancellation
When it comes to timeouts, there are two types of people: those who know how tricky they can be, and those who are yet ...
Testing in Go: Test Doubles by Example
One of the biggest misconceptions is that doubles are a specific implementation of mocks or other testing constructs th...
Testing in Go: Dependency Injection
In software engineering, over the years folks have developed many patterns, techniques and refactoring maneuvers. Some ...
Simple Golang database seeding abstraction for Gorm
One of the most feature-full ORMs for Go that I have worked with is Gorm. If you would like to learn more about it, I r...
Testing in Go: Fixtures
When I was researching the topic of test fixtures, I couldn't find much about their beginnings. My first search was abo...
Testing in Go: Subtests
_Before we begin: The content in this article assumes knowledge of table-driven tests in Go. If you are unfamiliar with...
Testing in Go: Table-Driven Tests
Coming from Ruby, which has excellent testing tools and libraries, the notion of table-driven tests was unusual for me....
Testing in Go: go test
As I was going down the stairs I remember feeling the temperature dropping. It was an astounding experience descending ...
Testing in Go: Naming Conventions
Programming languages and tools often have conventions. These conventions help make our work more straightforward. Just...
Testing in Go: Writing Practical Failure Messages
All developers appreciate code that works, yet we spend much of our working hours debugging existing code. When fixing ...
Testing in Go: Failing Tests
In the previous article on testing in Golang, titled [Testing in Go: First Principles](/testing-in-go-first-principles)...
Testing in Go: First Principles
If you have any programming experience, whether that's as a student or a professional, there's a good chance you have h...
Deep Dive in the Upcoming Go Error Inspection Changes
The team behind the language started working on a document titled ["Go 2 Draft Designs"](https://go.googlesource.com/pr...
Tell your team you are running late using Google Home, Google Cloud Functions, Golang and Twilio
In this age of cloud platforms, Internet of Things and SaaS products that are easy to integrate with, the effort of aut...
Barebones model of Spotify's 'Recently Played' screen using a Least Recently Used (LRU) cache in Golang
One of the most used caching schemes is Least Recently Used (LRU). Caches that use this eviction strategy will remove t...
When and Why to use a Least Frequently Used (LFU) cache with an implementation in Golang
Over the years, people involved in computer science and engineering have worked really hard on optimisations of various...
Golang Datastructures: Trees
You can spend quite a bit of your programming career without working with trees, or just by simply avoiding them if you...
Data structures in Go: Stacks and queues
In a previous post[^1], we took a look at linked lists and how we can apply them in a hypothetical use-case. In this po...
Data structures in Go: Linked lists
Data structures and algorithms are the bread and butter of computer science. Although sometimes they appear scary to pe...
Create and manage MacOS LaunchAgents using Go
If you have ever tried writing a daemon for MacOS you have met with `launchd`. For those that don't have the experience...
Packing multiple binaries in a Golang package
Recently, while writing a small Golang program for setting reminders I came across a small confusion that I guess most ...
Copyright © 2014 - 2019 Ilija Eftimov |