Yuriy Bogomolov

Yuriy Bogomolov's personal blog

Hello, and welcome to my personal blog! I am a programmer passionate about functional programming, type theory and category theory.

I blog about functional programming in TypeScript, perform mentoring of developers who would like to study practical FP, and provide consultancy and architecture review for enterprises.

All Posts

Intro To Effect, Part 5: Software Transactional Memory in Effect

Software Transactional Memory (STM) offers a powerful and elegant solution to managing concurrency in functional programming environments. Through STM, you can create composable and maintainable concurrent applications with ease, effectively dealing with shared mutable state. In this article, we’ll dive into the concepts of STM, its core principles, and how it can be effectively utilized to build concurrent systems with data consistency and atomic operations.

Intro To Effect, Part 4: Concurrency in Effect

In this article, we will delve into the world of fibers and their role in functional effect systems like ZIO or Effect. By exploring fibers and their various features, we aim to equip you with the ability to handle concurrency effectively in functional programming environments. We will discuss different concurrency combinators and demonstrate how they simplify the management of concurrent and asynchronous operations.

Intro To Effect, Part 3: Managing Dependencies

When we’re writing programs, we usually deal with some kind of dependencies: databases, loggers, caches, telemetry… Setting up a full-blown Dependency Injection framework could be a solution to this, but Effect has some aces in its sleeves that make DI frameworks unnecessary. Let’s see how we can manage dependencies using Effect.

Intro To Effect, Part 2: Handling Errors

One of the most important aspects of programming is finding a reliable way of dealing with errors, making them visible, and making them actionable. In conventional TypeScript, we don’t have such means except, probably, @throws JSDoc annotation. Effect relieves this pain by bringing errors to the surface of type and giving you a lot of convenient instruments for handling them.

Intro To Effect, Part 1: What Is Effect?

Recently, Effect has gained incredible traction in the functional programming community. In this series of articles, I give an overview of Effect and its ecosystem. In the first article of the series, we take a look at what Effect<R, E, A> is, how to create, and how to compose effectful programs.

Primitives Were A Mistake

As developers, we deal with primitive data types — string, number, boolean — every day. But what if I tell you that in reality, you shouldn’t be using them at all? Using primitive types for data modelling is a dangerous practice that should be avoided.