Understanding Distributed Systems – Book Review

I recently finished reading Understanding Distributed Systems by Roberto Vitillo. I was quite impressed by the quality of the book. It is one of the best computer science books I’ve read so far. A handful of others classify as such in my eyes. But what makes this book so good, es … | Continue reading


@pmihaylov.com | 1 year ago

Lessons learnt from publishing my programming course

I’ve been working on my course – Learn Programming with Go, One Game at a Time, for nearly a year & made many mistakes along the way. Nevertheless, I finally published it & earned $2,158.25 in a month: Here’s what I’ve learnt along the way Getting started is scariest One of the … | Continue reading


@pmihaylov.com | 2 years ago

Learn Programming with Go, One Game at a Time

For nearly a year now, I’ve been building my first online programming course – it’s about learning to program with the Go (Golang) programming language. ‍ It contains nearly 26 hours of instructional video, covering the fundamentals of programming via the Go programming language. … | Continue reading


@pmihaylov.com | 2 years ago

Thread-Safety in Go – An Overlooked Concern @ The Go Conference, Japan, 2021

This year, I'll be making an appearance at The Go Conference Japan and I'll be discussing the subject of writing thread-safe code in Go. | Continue reading


@pmihaylov.com | 3 years ago

gRPC With Go Crash Course

a crash course on using gRPC with Go. The course focuses on giving you a bit of practice integrating and using the protocol. | Continue reading


@pmihaylov.com | 3 years ago

gRPC with Go Crash Course – Bidirectional Streams

The final part of the gRPC with Go Crash Course covers how to setup and use bidirectional streams in your gRPC servers and clients. | Continue reading


@pmihaylov.com | 3 years ago

gRPC With Go Crash Course – Unidirectional Streams

This part of the gRPC with Go crash course covers how to use unidirectional streams to achieve client-side or server-side pagination natively. | Continue reading


@pmihaylov.com | 3 years ago

gRPC With Go Crash Course – Basic RPC Routines

The second part of the gRPC with Go crash course covers using simple request-response style RPCs, similar to what you typically use in HTTP APIs. | Continue reading


@pmihaylov.com | 3 years ago

gRPC With Go Crash Course – Service Schemas

This article is part of the series gRPC With Go Crash Course In this article, you will create a gRPC/Protobuf schema for a small micro service system for an online casino.  The scope of the article is to:  Create the service schemas Correctly generate the protobuf Go sources Impl … | Continue reading


@pmihaylov.com | 3 years ago

gRPC With Go Crash Course – Introduction

gRPC with Go Crash Course will get you up to speed on using and integrating the gRPC protocol in your own Go web applications | Continue reading


@pmihaylov.com | 3 years ago

Hands-on gRPC at Gophercon Israel 2021

I’m super excited to announce that I’ll be leading a workshop at Gophercon Israel 2021 (https://www.gophercon.org.il/) this year with “Hands-on gRPC with Go”. In this workshop, participants will be building several web services, which are communicating using the gRPC protocol. Th … | Continue reading


@pmihaylov.com | 3 years ago

Thread-Safety in Go – an Overlooked Concern

One often overlooked concern in Go applications is thread-safety. Most people believe they don't need to understand it due to some wrong beliefs. | Continue reading


@pmihaylov.com | 3 years ago

Your Programming New Year’s Resolution

A new year's resolution is a serious undertaking. And most people fail. It's time to stop this vicious cycle and become a finisher. | Continue reading


@pmihaylov.com | 3 years ago

How to create a Github read-only API token

Learn how to create a Github read-only API token the right way and avoid all the pitfalls along the way to not compromise all your github projects. | Continue reading


@pmihaylov.com | 3 years ago

Good and Bad Practices – a Limiting Perspective

Certain patterns in software are condemned as good or bad practices. But this is a very limited, binary view of programming. | Continue reading


@pmihaylov.com | 3 years ago

Dependency Injection in Go using Fx Series

In these article series, you will learn how to use dependency injection in your Go application using the Fx framework. It is very hands-on! | Continue reading


@pmihaylov.com | 3 years ago

todocheck v0.3.0 is live!

The next release of todocheck – the tool that helps you track & keep TODOs actionable is live! First time you hear about it? – check this out first. What’s New? The major feature for v0.3.0 which I was aiming for is extending support for Windows. Previously, there was a cross-pla … | Continue reading


@pmihaylov.com | 3 years ago

My thoughts on Java Concurrency in Practice

Java Concurrency in Practice is one of the most popular books on learning Java concurrency. But is it a good read? Read my take on that... | Continue reading


@pmihaylov.com | 3 years ago

Speaking at Golab Conf this year!

This year, I’m going to be presenting at Golab Conf about Advanced Dependency Management in Go using Fx. I’m also hosting a workshop on integrating your Go service \w the ELK stack. In the talk, we’ll cover what the Fx framework is and how it can help you reduce some of the compo … | Continue reading


@pmihaylov.com | 3 years ago

How to remove the BS from your Facebook feed

This post is about an easy lifehack to optimize your facebook feed by muting all the people & groups whose posts are pointless or are distracting. | Continue reading


@pmihaylov.com | 3 years ago

[Series] Integrating your Go service with ELK

In these series, I've covered the integration between a Go service and the ELK stack from scratch. | Continue reading


@pmihaylov.com | 3 years ago

Using Kibana to Debug Production Issues

In this tutorial, you'll learn how to use Kibana to debug issues on your production services. | Continue reading


@pmihaylov.com | 3 years ago

How to create a Logging Dashboard with Kibana

Learn how to setup your Kibana dashboard to monitor your application's health based on its logs in production. Also impresses your colleagues. | Continue reading


@pmihaylov.com | 3 years ago

todocheck v0.2.0 is live!

todocheck v0.2.0 is out! Check out the latest release & changelog. Support is added for new programming languages & issue trackers and more. | Continue reading


@pmihaylov.com | 3 years ago

A Concise Guide to the Latest Go Generics Draft Design

Get up to date with the latest Go Generics draft design by going through the various features \w examples & go playground links for you to experiment with! | Continue reading


@pmihaylov.com | 3 years ago

How to Use Structured Logs in your Go Application

In this tutorial, you will learn what structured logs are, why they matter and how to use them inside your Go applications | Continue reading


@pmihaylov.com | 3 years ago

How to integrate your Go Service with ELK

In this article, I will walk you through how to integrate your Go application with the ELK stack step by step using docker containers. | Continue reading


@pmihaylov.com | 3 years ago

Getting The Most Out of Your Logs with ELK

In this article, you will learn how to capitalize on your logs using structured logging and ELK. Let's put an end to grepping your logs in prod. | Continue reading


@pmihaylov.com | 3 years ago

Managing Shared Components in Go Microservices with Fx

If you're working with Go microservices, one of the key challenges is reusing shared components across them. In this article, I will show you how. | Continue reading


@pmihaylov.com | 4 years ago

Dependency Injection in Go using Fx

At some point, your Go app won't scale by wiring all your components in the main function. At that point, you could use a dependency injection framework. | Continue reading


@pmihaylov.com | 4 years ago

Automate Your Initial OS Setup

Are you tired of installing the same software every time you reinstall your OS or losing your customised settings? Well, let's automate that! | Continue reading


@pmihaylov.com | 4 years ago

My Experience with Learning Golang

So you want to learn Golang? Well, I fear that the ride is quite bumpy as there aren't many good courses. But fear not, I will help you out. | Continue reading


@pmihaylov.com | 4 years ago

Incremental search in vim

The way default search in vim works is subpar compared to other IDEs, which use incremental search. In this article, I'll show you how to do that in vim. | Continue reading


@pmihaylov.com | 4 years ago

Creating Your Programming Study Plan

Having study time allocated is often not enough to reach your goals. The next step is to create a good plan and stick to it. Fear not, I'll show you how. | Continue reading


@pmihaylov.com | 4 years ago

How to study effectively as a full-time developer

Whenever we get into the 40-hour work week routine, it gets very hard to find quality study time. In this article, I will show you how to do it. | Continue reading


@pmihaylov.com | 4 years ago

A catch up on the past year

A catch up on what happened throughout the year for me. Why this blog was silent, what problems I faced and what's ahead. | Continue reading


@pmihaylov.com | 4 years ago

Blockchain – The Game Changer @PlovDev 2018

I had the opportunity to visit the city of Plovdiv last year for my talk at TEDxPlovdiv, and I have to say, I loved it. If you ever get a chance to visit it, I would suggest you go to their big statue atop a hill overlooking the whole city. And I am very excited … | Continue reading


@pmihaylov.com | 5 years ago

Introduction to Solidity Assembly @ Blockchain Developers Meetup

This week, I was invited to lead the Fourth Blockchain Developers Meetup in Sofia, Bulgaria. The Blockchain Developers Meetup is a series of events organized by some awesome crypto enthusiasts at Hack.bg. So far, I’ve watched their other meetups about zero-knowledge proofs, dark … | Continue reading


@pmihaylov.com | 5 years ago

Learn Blockchain By Building it @ Java2Days, 2018

Java2Days is the biggest annual Java conference in Bulgaria. There, you can meet some of the greatest professionals from the Java world in Bulgaria and not only. Apart from that, you will be able to hear some of the hottest topics from the Java world nowadays – Java Architecture, … | Continue reading


@pmihaylov.com | 5 years ago

Leading the Blockchain Dev Camp at Iloilo, Philippines

An article about my experience leading the Blockchain dev camp in the Philippines. Read about the curriculum, trainers, students and the country. | Continue reading


@pmihaylov.com | 5 years ago

Speaking at SoftUnit Conference about Blockchain

SoftUnit Conference, Bulgaria is one of the largest tech conferences in Bulgaria. The event will be hosted on the 28 and 29 September at Paradise Center, Sofia. This year, I was invited to the conference as a Blockchain speaker. The event is huge. There are more than 2000 attende … | Continue reading


@pmihaylov.com | 5 years ago

From Embedded Developer to Blockchain Training Manager

I switched from being an embedded developer to leading a team of blockchain trainers. Would you like to learn more about this new venture? | Continue reading


@pmihaylov.com | 5 years ago

Why Bother Presenting as a Developer?

Have you ever wondered what's the point presenting as a developer? Shouldn't I just focus on the code, not the talk? Read the article and see for yourself. | Continue reading


@pmihaylov.com | 5 years ago

Why bother presenting as a developer?

Have you ever wondered what's the point presenting as a developer? Shouldn't I just focus on the code, not the talk? Read the article and see for yourself. | Continue reading


@pmihaylov.com | 5 years ago

Pathogen – The Best Plugin Manager for vim

Continuing the series with the next cool plugin - pathogen. It's a plugin manager for vim which is extremely simple, easy to use and yet effective. | Continue reading


@pmihaylov.com | 5 years ago

Why Bother Presenting as a developer @Questers

I will be giving a talk about why you should care about presenting as a developer. Interested? Add the venue and the time and see you there! | Continue reading


@pmihaylov.com | 5 years ago

tmux – A Terminal Multiplexer

One of the best add-ons to vim is tmux - a terminal application that enables you to have separate terminal sessions in one window. Want to learn how to use it? Then check this article out. | Continue reading


@pmihaylov.com | 5 years ago