Writing on software engineering and distributed systems.

All of my long-form thoughts on software engineering, collected in chronological order.

Securing gRPC Services with JWT Authentication in Go

Securing gRPC services is just as important as any other distributed system, thankfully gRPC provides several mechanisms to enhance the security of your services. In this blog post, we'll explore how to implement authentication in gRPC, focusing on interceptors, metadata, and JWTs (JSON Web Tokens) as the authentication mechanism.

Introduction to gRPC in Go

When building distributed systems, efficient and robust communication is crucial. gRPC makes this a breeze! What is gRPC and how to build a simple gRPC service in Go?

Launching My First Online Course!

I’m thrilled to announce the launch of my first online course: “Building Production-Ready Services with gRPC and Go”. I wanted to create a course that covers everything you need to know to build solid, scalable services using gRPC in Go

gRPC vs REST

At some point in a growing company, the debate between gRPC and REST becomes a focal point. Both technologies allow communication between distributed systems, yet they differ significantly in their design, functionality, and use cases.

Intelligent, automatic restarts for unhealthy Kafka consumers

At Cloudflare we are big Kafka adopters and we run Kafka at a massive scale. We deploy our microservices leveraging Kafka on Kubernetes, we have faced some interesting challenges when trying to keep the latter operational to avoid downtime.