Author Archives: bullgare

DDD/Clean Architecture go linters

Origin (in Russian) Tech talk (paid access only, unfortunately): Presentation: Linters Dependencies between layers: Others: — to check using all microtypes in enums/switches. + — to prevent using struct tags in Domain models (Value Objects). — to prevent changing Value Objects (Domain models) from outside of the …

Read more

Protobuf: safer usage for buf

A drop-in replacement for buf issued by Ozon. Repository: Presentation (for subscribers only, unfortunately):

Maps internals in Go

Good article in Russian: Nice video (also in Russian):

mounterbank for mocking and stubbing http services (rest+graphql+grpc) can be used to stub http(s)/tcp/smtp protocols. And has community plugins for grpc, graphql, websockets. You can configure it with imposters.ejs like below:


HTTP Toolkit — another alternative to Charles Proxy for http calls interception It has a free version which does something similar to Charles Proxy, so you can hack into the middle of any request/response according to the rules specified.

YouType to show flag icon for current locale on MacOS

It has reacher functionality, but I use it only to show a flag for my current locale in a tray.

Add new video sticker pack to telegram

If you have an animated gif-file, you can convert it to webm video respecting rules described in the docs ( For stickers, one side must be exactly 512 pixels in size – the other side can be 512 pixels or less. For emoji, the video must be exactly 100×100 pixels in size Video duration must …

Read more

Protobuf: add header parameters

They finally added it to the grpc-gateway: So, to use it you can just update to the version 2.14.0 or above —, and add something like this to your protofile:

Go scheduler details

Scheduler was implemented by Dmitry Vyukov in go 1.1 and lives in runtime/proc.go. Good resources — video by Dmitry Vyukov (slides as pdf) — nice article by Bill Kennedy in 3 parts. Most of the images below are taken from this article. Main ideas Goroutines are very light weight (~2KB+) and very cheap …

Read more

Golang. Adding a json body to POST request in protofile

It could be a bit tricky, and I failed to find a good example for it.