RSSAmplifier

Blog

πŸ‘‹ Hey there! I’m Ilija. on Ilija Eftimov πŸ‘¨β€πŸš€

Recent content in πŸ‘‹ Hey there! I’m Ilija. on Ilija Eftimov πŸ‘¨β€πŸš€

ieftimov.com β†—RSS feed β†—94 posts

Latest posts

How to Make Reviewers Love Your Big Pull Requests

In this article, I will share my philosophy of making large pull requests palatable for reviewers.

Problem Solving Framework & Principles for Software Engineers

As I am reaching the 10-years-of-experience milestone in my career, there’s still a bunch of stuff that I am hopeless at.

Ditch old tools and habits for the golden tools of your new company

Q: A company I interview with said they only support one IDE for the entire company.

Identify & Escalate Risks: A Practical Framework for Software Engineers

Have you ever worked on a task where you felt that it would be a heavier lift than what others thought?

How to Make the Step up From Intermediate to Senior Engineer

We live in a world where we like to get fast (or even instant) gratification from our things.

Creating and testing gRPC server interceptors in Ruby

If your experience is rooted in HTTP-land, then you are probably familiar with the concept of server middleware.

Docker Compose, stray PID files, Rails and beyond

Docker Compose + local development = ❀️ # If you’re like me, you like a simple Docker Compose setup for your local project setup.

Conditional HTTP GET: The fastest requests need no response body

HTTP caching 101 # Every browser implements its own in-memory caching.

Deep dive in CORS: History, how it works, and best practices

The error in your browser’s console # No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

Testing in Go: Stop Leaking Files

No test suite is perfect.

Four Steps to Daemonize Your Go Programs

If you have ever worked with Ruby, or have maybe maintained a Rails application, I am sure the name Sidekiq will sound familiar.

Understanding bytes in Go by building a TCP protocol

Some of my newsletter subscribers have asked me a few times what is the easiest way to think about byte slices, or using Go’s syntax: []byte.

Testing in Go: WebSockets

WebSockets offer duplex communication from a non-trusted source to a server that we own across a TCP socket connection.

Testing in Go: HTTP Servers

Go’s a great hammer for a lot of nails, one of the areas where I find it fitting is building HTTP servers.

Testing in Go: Clean Tests Using t.Cleanup

Go v1.

Testing in Go: Golden Files

Hardcoding the expected values in an assertion is a straightforward approach in testing.

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 to find out.

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 that we use in testing.

Testing in Go: Dependency Injection

In software engineering, over the years folks have developed many patterns, techniques and refactoring maneuvers.

Simple Golang database seeding abstraction for Gorm

One of the most feature-full ORMs for Go that I have worked with is Gorm.

Testing in Go: Fixtures

When I was researching the topic of test fixtures, I couldn’t find much about their beginnings.

Testing in Go: Subtests

Before we begin: The content in this article assumes knowledge of table-driven tests in Go.

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

If you remember anything from this article, remember this: go test is a command that automates the execution of test files and functions in a Go project.

Testing in Go: Naming Conventions

Programming languages and tools often have conventions.

Testing in Go: Writing Practical Failure Messages

All developers appreciate code that works, yet we spend much of our working hours debugging existing code.

Testing in Go: Failing Tests

A short overview of the testing package # The testing package from Golang’s standard library provides support for automated testing of Go packages.

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 heard about testing.

Deep Dive in the Upcoming Go Error Inspection Changes

The team behind the language started working on a document titled “Go 2 Draft Designs”.

My First dotGo Conference

This year’s dotGo in Paris was awesome.

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 automating parts of your life is shrinking down substantially with every year that goes by.

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).

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 natures.

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 don’t understand them (which is what I had been doing for a while).

OTP in Elixir: Learn GenServer by Building Your Own URL Shortener

Looking at any programming language you will (hopefully!

Understanding the basics of Elixir's concurrency model

If you come from an object-oriented background, you might have tried concurrency in your favourite OO language before.

A deeper dive in Elixir's Plug

Being new to Elixir and Phoenix, I spend quite some time in the projects' documentation.

Validate your passwords using Elixir and haveibeenpwned.com's API

Unless you’ve been living under a rock for the last couple of years, you probably know what two-factor authentication (2FA) is.

Data structures in Go: Stacks and queues

In a previous post1, we took a look at linked lists and how we can apply them in a hypothetical use-case.

Data structures in Go: Linked lists

Data structures and algorithms are the bread and butter of computer science.

Create and manage MacOS LaunchAgents using Go

If you have ever tried writing a daemon for MacOS you have met with launchd.

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 newcomers to Golang will have - how to organise a package in a way that will enable it to cleanly contain two or more binaries.

Understanding why and how to add idempotent requests to your APIs

Idempotency is an often used term in computer science.

Versioning REST APIs: The Theory and Using Grape in Ruby

Nowadays, having an API on top of your application is considered common.

What happens when you DELETE a resource?

Have you ever found yourself publishing an API, either an internal or a public one?

Sprinkle some HATEOAS on your Rails APIs

REST as a concept was introduced by Roy Fielding in his doctoral thesis, named Architectural Styles and the Design of Network-based Software Architectures.

The practicality of designing and describing your APIs

The web, as we all know, is driven by APIs.

Learn your tools: Navigating your Git History

Starting a greenfield application everyday is nearly impossible, especially in your daily job.

How Rails handles status codes

Recently, I have been building an API as part of my day job.

A bit about decorators and presenters

Object-oriented programming and design is (or, was?