Articles

Logging in Go

Logging in Go

Go is a programming language that is often used in backend development. Backend services sometimes accept the path to a log file as a configuration parameter. In the Unix world this approach is not considered good design, because it ignores the power of the standard stdout and stderr streams available to every Unix program.

Go
Learn more
Wave Architecture in Practice

Wave Architecture in Practice

The Dragon of Complexity lives inside state machines. The Dragon is neither evil nor kind; it is part of the world's nature, and fighting it is pointless. The weak are devoured by complexity, and the strong, should they win, turn into Dragons themselves. This happens over and over again: OOP, FP, DDD—any approach or framework created to fight complexity eventually grows a complexity of its own that is no smaller than the original.

mobile app architecture
Learn more
Architecture for Cross-Functional Teams

Architecture for Cross-Functional Teams

Architectural questions in IT are usually divided into "best practices" and "reinventing the wheel", yet the boundary between the two stays blurry because architecture must evolve together with company growth, and the rise of cross-functional teams is one of the inevitable stages of that evolution.

mobile app architecture
Learn more
Architecture of Complex Client Applications

Architecture of Complex Client Applications

A modern view on the architecture and development methodology of complex client applications. Here, the word "client" means platform independence (iOS, Android, Web, Flutter, etc.), while "complex" implies both client state synchronized with the backend and multiple event sources.

mobile app architecture
Learn more