Sign in

Swift and general programming topics, Agile software development, soft skills

Often referred as the project management triangle, the model is widely known by both software managers and engineers. Though, through my career, I’ve met a lot of people who either don’t know it, or don’t understand it, or even don’t pay much attention to it.

This blogpost tries to explain the model basics to software engineers, so that they can reason their point of view in front of reckless management. The model has been in use since the early days of software development and still very useful.

Pic courtesy of Anna Lazareva-Zubova

The model is usually visualized as a triangle with three development constraints as…


Being a junior-ish developer, have you ever been told by your lead something like: Hey, just hide it behind a façade? I have, and — guess what? — it was one of the most important lessons in my career. I’m going to explain why, but first let’s talk about what the Façade pattern is.

Photo courtesy of Anna Lazareva-Zubova

Theory

Façade is one of the so-called structural design patters from the Gang of Four’s catalogue. Its purpose is to simplify interface of some subsystem. Here’s the UML class diagram from Wikipedia:


I’ve heard a couple of times kind words about me, that I’m effective and productive. Maybe I’m too naïve, but I took the words seriously. So, this time I decided to share with you a few things that help me stay effective. The most crucial thing is staying sane, happy and well-balanced. But how exactly you reach this nirvana?

Photo by lazarevazubova

I’ll be talking about things that helped me the most. Though, we all are different people, and some things work differently to us.

Also you have my apologies if these things are too obvious to you. But what I found out…


This blogpost is the sequel to my Books That Will Boost Your Programming Skills where I share my absolute top list of books that any software developer should read. The list was not exhaustive, none can be. This time I want to share with you my further reading experience.

Photo by Jason Leung on Unsplash

1. General Computer Literacy — How Networks Work

Introduction to Networking: How the Internet Works by Charles Severance

Let’s start with basics. This book is a very concise introduction to how computer networks work. Basically, it has everything you probably need to know about networks if you’re not a network engineer. The book speaks human language and explains complex things on the approproate to a non-specialist level of abstraction.


Photo by ThisisEngineering RAEng on Unsplash

Let’s start with the classic Hello-world piece of code which is, for instance, provided by Xcode when you create a command line tool:

print("Hello world!")

It works, though it’s not good enough for a serious enterprise. Let’s try and focus on maintainability and extendability this time. First, let’s wrap the call with a function:

(Added or changed code is given in italics.)

func printHelloWorld() {
print("Hello world!")
}
printHelloWorld()

Not bad for a start. However, it’s not good that the output is hardcoded inside the function implementation. Let’s pass it as an argument to make it more configurable:

func printMessage(_


Joshua Bloch’s Effective Java is commonly recognized among the top books about programming in Java. The book itself is a set of advices how to improve Java code’s maintenability, readabiliy, performance and reliability. It was said not once that Kotlin, the main Java’s successor, was developed with the Effective Java in mind. There’s already attempts to translate Effective Java’s advices to Kotlin. Marcin Moskala, the founder of the Kt. Academy, did another thing — he wrote Effective Kotlin. …


I’m a programmer and I read a lot. I read a lot of technical blog posts, too. But the truth is that I can’t finish the most of them. Too often, the language is so hard to read, the structure is so terrible… Even if the idea behind the post is good, it’s often hard to fully appreciate it.

Photo by Glenn Carstens-Peters on Unsplash

Let’s say you’re one those programmers who think that they have something important to tell to other programmers. However, it’s not enough to just write down your stream of conciousness. You could, of course, but the most of people will not…


When it comes to discussing the SOLID principles the first one that usually comes to mind is the Single-Responsibility Principle, or just SRP, the first letter of the acronym. It’s become so obvious, that no one really ponder it anymore, its importance is just taken for granted nowadays.

Here’s its original expression by Robert C. Martin (a.k.a Uncle Bob:)

A class should have only one reason to change.

Photo by call me hangry 🇫🇷 on Unsplash

In my early programming days I was so impressed by this simple idea, that it became my working mind set. Now it means for me much more than just “write small, testable…


Photo by Martin Sanchez on Unsplash

W hen iOS 14 was released, it became the second iOS’s major version that supports SwiftUI. It means that, in theory, you can use it in commercial app development while supporting two last major iOS versions. Although it’s true only for the first SwiftUI version, I wanted to give it a deeper try for a number of reasons. The most obvious one is that SwiftUI and its satellite tools are considered as the future of the iOS software development.

The so-called SwiftUI 2 is more mature, not to mention it contains more useful features. And most importantly, using SwiftUI 2…


As a reputed coach and consultant James Schiel said, a lot of agile organizations instead of being truely agile just using right words. The cause of that is general misunderstanding of the idea of what the Agile method actually is. This leads to a set of mistakes in organizing software development process. In this blogpost I tell about six ones I’ve been coming across most often and of which I think as of the most common and yet crucial.

Photo by Ashes Sitoula on Unsplash

1. Misinterpretation

People who got used to work with exhaustive requirements often interpret the word Agile wrongly. Programmers think that they are allowed…

Nikita Lazarev-Zubov

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store