RSSAmplifier

Blog

pmihaylov.com

Latest writing from Pres Mihaylov on software, product, and tech.

pmihaylov.comRSS feed ↗29 posts

Latest posts

Agents are meant to be shared

AI agents are most valuable when shared across a team, not kept as private side-tools.

What I've been working on

An overview of all my recent projects from the past few months.

I built my own AI code reviewer with Claude Code

How I built myself a code reviewer similar to Code Rabbit, Cursor Bugbot using Claude Code and a custom skill

Relaunching my site

How I rebuilt my personal site with Astro, Resend, and AI tools

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

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.

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. 👨‍💻

Thread-Safety in Go – an Overlooked Concern

When you first start tinkering with concurrency in any language, what’s the most sought after goal is extracting the maximum output from the hardware you have available.

Your Programming New Year’s Resolution

So it’s that time of the year when you make your new year’s resolution. As developers, that might revolve around filling some gaps in our understanding of systems we use or perhaps learning a new p...

My thoughts on Java Concurrency in Practice

One of my key goals this year was to gain a good understanding of concurrency and multithreading. I’ve always had a tangent understanding of it at best. The book Java Concurrency in Practice was on...

Eliminate the undocumented TODOs with todocheck

Yesterday, I released todocheck – a new kind of static code analyser for annotated TODOs.

Managing Shared Components in Go Microservices with Fx

This article is part of the series Dependency Injection in Go using Fx

Dependency Injection in Go using Fx

This article is part of the series Dependency Injection in Go using Fx

How to study effectively as a full-time developer

So you’ve graduated from university/bootcamp and you’ve landed your first job as a professional programmer. Congratulations, this is a huge milestone as it cost you years of perseverance to thoroug...

How can vim make you a better developer

The first time I encountered vim was during a Linux System Administrator course I attended a while ago.

How to properly use macros in C

One strange phenomenon when coding in C is using macros.

The build process of programming languages

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

The ultimate challenge for aspiring developers

When I first started programming, I started creating some simple console applications following some course materials. I had to create some simple algorithmic-type programs such as implementing fac...

Languages High and Low

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

Understanding Standard Input and Output

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

What you don’t know about sorting algorithms

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

Introduction to bitwise operations

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

What you need to know about character sets and encoding

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

How the binary nature of computers affects our data types

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

Floating point numbers

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

Negative binary numbers

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

Introduction to binary numbers

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

How does the processor work

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

Introduction to Computer Memory

This article is part of the sequence The Basics You Won’t Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.